I'm quite proficient with Java, C/C++, JavaScript/jQuery and decently good at Objective-C. I'm quite productive with the languages and their corresponding frameworks too and do produce enterprise level systems (and also small scale ones) with sufficient ease all the while keeping code 'clean' and maintainable (yes, I can read my own code after six months :)

Unless mandated by the platform (iPhone, iPad, etc.) or by the client/implementation organization, just "why" should I learn a new programming language? Just for "fun"? And do what with that fun if I'm not going to do anything worthwhile with it?

A lot of my peers are ready to dive in to learn the "next new thing/language" and it's usually Python, Ruby or PHP (just naming a few popular ones). Now, just knowing the language by itself is futile IMHO. You also need to know the frameworks, learn their usage/APIs as well as 'good implementation practices', etc.

So from an 'economic' sense, is there any benefit in learning a new programming language? If the language is learned in a quick and dirty fashion, it'll probably also be used for quick and dirty prototyping/implementation - but I don't see THAT as a justifiable investment of time/effort.

So just WHY should I (or anyone for that matter) learn a new programming language other than "it's fun so let's try it out" - if the investment of time may not be worth it in the long run?

From The Pragmatic Programmer, Tip #8 "Invest Regularly in Your Knowledge Portfolio":


  Learn at least one new language every year. Different languages
  solve the same problems in different ways. By learning several different
  approaches, you can help broaden your thinking and avoid
  getting stuck in a rut. Additionally, learning many languages is far
  easier now, thanks to the wealth of freely available software on the
  Internet


It's not about the next "new thing".  It's about thinking in different ways outside of your normal thought patterns.

There is a saying, "When you're a hammer, everything looks like a nail".  Maybe there is a better way to solve a problem using some other technology.  If you don't explore, you may not know that it was available.
