Delving into new languages

I've always thought it important to explore other languages. To be taken out of your comfort zone is the most efficient way to improve in the least amount of time. As developers we should become comfortable with this feeling. The feeling that "I actually don't know anything" is very powerful, for me at least; that's when I make the most improvements.

Now, I’m not talking about abandoning your "main" development language, but I am suggesting you go spend a few hours/days playing around in the unknown; with something new.
You will come out a stronger dev, most likely bringing back new perspectives to your project, colleagues etc...

Why another language?

It's ignorant to think which ever language you know most, is the best language for every task. That's just not true.

There is also an argument that it's easier and in all likelihood quicker; to solve a problem using a language you know very well.
A part of that might be true, but since when does a problem in software just need to be 'solved'?

Rarely.

It needs to perform, it needs to be robust and easy to understand and maintain etc...

The swiss army language

So what tends to happen, is popular languages keep adding new features, in order to compete with newer languages and newer programming concepts. Most of the time these languages don't excel in these added concepts.

Take JavaScript as an example - EcmaScript6 will introduce the concept of a class. This really goes against the grain for a prototypical language, but it's mainly been added to help object orientated programmers become more comfortable with using it. As the use of JavaScript has evolved, people have requested this. Since JavaScript is a prototypical language and not object orientated (even though everything in JavaScript is an object) it's just a clever trick, an abstraction over prototypical inheritance (which to be fair is horrible).

I'm not suggesting this is a bad thing. Especially not for such a widespread language like JavaScript. Sometimes adding multiple programming concepts into a language can make it stronger. Though for the majority, it's seen as a defensive move - Bringing these new concepts into the language to prevent people from feeling the need to move on.


I've found looking at other languages opens up a complete new level of learning.

Remember being a child. At 10 years of age we felt that we pretty much knew everything we needed to live our life. There wasn't much to learn by comparison. Yeah, there may have been the odd piece of homework to complete but none of this seemed essential, we had most things done for us.
Then a couple of years later - Secondary/High School came. All of a sudden the world opened up that little bit more. A whole new set of subjects to study. Not only that, there were new concepts around the whole experience we needed to master, timekeeping for example.

What I’m getting at is, until you explore; you won't unlock any possible learning which might be connected.