samedi 17 janvier 2015

On learning languages

At work, in most of the situations, you may use a limited set of programming languages. And if you work on enterprise software, these languages are often mainstream like Java or C#. These languages are pretty rigid to me: static typing, mainly object oriented. Both language are also very close in their logic. Therefore they do not encourage openness.

Learning and using alternative languages on your spare time can bring a lot for your programming skills. Here are some example of what Python brought me:

  • Dynamic / duck typing made me relativize the importance of the interfaces. Do they help us are are they getting in the way?
  • List comprehension helped me to be familiar with linq as I was learning C#. It is also pretty close to list comprehension in Erlang, so it's an open door to the world functional programming. It also makes me familiar with streams that appeared recently in Java.
  • Being able to pass functions everywhere. Here again, it is quite new in Java. It's natural to me also when I code in JavaScript.

I learnt a lot more but I thing you've got it.

Thus, learning a new language can make you to discover new paradigms and new ways to solve problems. It will build a set of features you will be waiting for in programming language in general. Then, you'll be able to find similarities and then learn more and more languages, quicker and quicker.