Food for thought

Software Polyglots

When we start to work in the IT industry we usually select a development language and stick to it. At least that’s what I did. And my language of choice was Java. Never wanted to hear about any other languages. Focused my time and energy into learning as much as I could about it. Was the de-facto language for starting any project. For years I kept it like this. And I still find it one of the most complete and mature programming language. And now it’s evolving super fast and we need to keep the pace with it.


Started with JSF(Java Server Faces) and I found it cool. All the projects I started with JSF. Then I learned JSP(Java Server Pages) and found a different paradigm. The explosion of JavaScript came and suddenly I was only using C from the Spring MVC paradigm. The MV suddenly passed to the front-end. Of course at this point I was thinking why did I ever used JSF? What was wrong with me? Why did I used JSP? What was wrong with me? Why would I want the server to render UI components? I must have been mad. Then wrote my first javascript lines of code and I was in love with it’s flexibility. Sure it was hard to follow the code, you didn’t know how many parameters has the method or if the parameter it’s a function or not. You didn’t know about the object types. Or care for that matter. I learned about promises and callbacks. When typescript appear I was like why you are asking me for the type? Leave me alone. I want to go back to javascript. But we need types to understand what the hell we’re doing. At some point I needed to write css code. Yuck. I still hate it, but I learned about scss and specificity. Then jenkins, terraform, maven etc etc.

Coming back to Java and it’s rapid evolvement. It needed a change. There was talks for years that Java is gonna die. It’s more alive than ever. Why? Because they looked at the other languages and “stealed” all the good concepts. Just look at Java 8. Now at a conference I was talking to Venkat and I asked him why should we look at other languages if all the good stuff will eventually come to Java? He said because when it will eventually arrived in Java we will be already familiar with it and our learning curve will flatten. I recommend you to watch this presentation.


So what did I do? Well I was lucky enough that I was needed into another team were the projects were mainly based in GO and Python. And was lucky even more where the feature I worked on required me to write code in Java, Go and Python. Immediately my mind opened and saw a bunch of interesting features that you get them out of the box. Also it open my eyes and changed the way I think now. Simplicity of python code, the indentation, the accumulator pattern, the fact we have not threads and just getting more with less code. With Go I found out the a function that return as many parameters as we want, shadowed variables(not necessary a good thing), it’s verbosity when it comes to error handling, table driven tests, its portability, go routines and much more.

Embrace Change

One thing is certain in our industry. CHANGE. Either you embrace it and adapt or you’re a dinosaur. What’s today valid tomorrow might be deprecated. What’s today a pattern, tomorrow might be an anti-pattern. At least we don’t get bored.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.