Throughout my professional career i have mainly used object oriented, statically typed programming languages. The likes of Java and C# were ideal for big scale projects. Such languages have a massive active community behind them, developing frameworks, tools, writing articles about it and responding to questions in online forums. Hence it is really hard to advocate against using them. It is rare that someone would stumble upon a problem that someone else hasn’t solved already.
It was not until recently that i had to switch to a different paradigm of language. A dynamically typed language which can be used as an object oriented one, but also having functional abilities.
This blog post is not about advocating which style is better, as i believe there is no silver bullet out there. Every problem is different and can be solved in multiple ways.
However, this blog post is about the benefits of being a polyglot developer, or using different styles of programming languages. At the beginning, i found myself struggling to get used to the new one. I tended to try make it work using the approach i already knew, which was not the right mentality. After a couple of weeks and as i got more familiar with the language its features and its ‘mentality’ i found myself trying to approach the problems from a different perspective. I was combining the various different programming styles and nice ideas were coming out of those. Even when i was going back and solving problems in the object oriented way, i found out that i could apply new techniques which were making the solution much more elegant and fun to program.
I believe that being open to different languages is a great thing for a software engineer. It opens new perspectives, adding new fundamental knowledge and giving agility on how someone approaches a problem. Having said that, I was looking at a new programming language to learn or at least get a bit familiar with. I heard really positive things about Haskell. A functional, statically type language. Even though i know i might not use such a language for a project at my workplace, i believe that i will benefit a lot by at least spending a couple of months playing with it.
Concluding, i would urge everyone to try a different programming language than the one he/she is used to. The benefits are enormous and is really fun too.