It does not cease to amaze me how many developers only master a SINGLE programming language. I have seen it with Java and PHP Mainly, but not only.
Declaring yourself a “Java developer” is patently absurd, it is as strange as someone declaring he is a “Toyota taxi driver”: makes no sense.
And the shocking part is that pretty much every developer I have ever met is always happy to learn a new framework of his/her preferred programming language. How can it be that developers are so eager to use the new version of Spring but are scared of diving into python?
From a professional perspective, the advantages of mastering several programming languages are multiple: to begin with it makes you more productive, also you became way more versatile, but more importantly, you start thinking different, there is a VAST difference between a developer used to the idioms and solutions of a single programming language vs a developer who has mastered several programming languages. Let me illustrate this with a simple example.
Say you are given a large json document that is unformatted and you need to format it, we are taking about a document of around 100MB, how would you do it? Sure, you can use java and the excellent jackson library, modify the default behaviour of the ObjectMapper class to pretty print and then write it into a file… However that is going to take quite a while, you need to start a project, add the jackson dependencies and so on… What happens when you are comfortable with python and bash?
python -m json.tool bigJsonFile > bigJsonFile.pretty
Now, do not take me wrong, I LOVE java, it is possibly one of the best languages in history, and I think it is not going anywhere, my whole point here is that it might not be the best language for every situation, that’s all.
The same can be said of people using PHP for pretty much for everything, including command line executions… while you can do that with PHP chances are you are much better off with python (which has a much better multithreading support, for example).
And again, the same goes when you have a COMPLEX project, in that case Java is possibly the best choice as it has great support out there and a solid set of libraries, not to mention the foundation classes which are simply great.
So why is it that there are still so many developers out there who only code in a single language? I found that incredibly limiting, furthermore it kind of tells me that those devs are either fanboys of a language/platform or simply not passionate enough to learn a different technology.
A final note: The hardest language to learn is the first one, once you have got the grasp of a general programming language, learning another one is normally much easier.
In short: push yourself to learn new things, if possible try to learn something radically different, try to get out of the JVM (which we all love, but there is life outside of it) and discover some new worlds.