These days I was thinking how some people can be so fanatic about programming languages. They choose one language to learn and all of sudden all other languages become garbage. Probably you've heard people saying things such as "C# > Java", "You can't make a real project in JavaScript" and "Goodbye X hello Y". That's just sad.

There is nothing wrong enjoying to work with one specific programming language and specializing in it. The problem is when you start looking down to other technologies and close yourself to alternatives.

Every language has a strong and a weak suit. If you rely on one single language you will be bounded by its weaknesses. "If all you have is a hammer, everything looks like a nail."

Learning a new language may bring challenges, but it also brings a new ecosystem with different patterns, structures and techniques. A good example to think about is how different languages deal with same situations such as asynchronicity, IO, mutability, concurrence, parallelism and persistence.

But can you be a good programmer not focusing in one single language? Sure. However in the end all boils down to one word: balance.

Understanding deeply how one specific language works is as important as knowing how to code in different languages. First you focus, then you expand.

With time every interface bureaucrat recognise the benefits of dynamic languages and every duck typing hippie admits the power of strongly typed languages.

Thanks for reading. I know this subject can have many branches, but for now I'm just leaving this simple thought. Comments and suggestions are welcome.

Photo by Rock'n Roll Monkey on Unsplash