The German industry information service Heise.de proclaims the most popular programming language in 2016. The winner is: Java. While this was less surprising for ingrained Java developers, especially younger developers will be skeptical about this result. Programming languages were always the subject of religious discussions (You can see that in the comments of the article). But it seems to me that recently these discussions intensified significantly because of the popularity of new languages.
As mentioned before in the last five years more and more programming languages have come into the market that were not used only in a niche. Golang, Erland, Elixir or Scala have built a steady fan base. And especially when more applications are transformed from a monolith to an architecture with autonomous service every of this service could be theoretically build in another language. Still an exception are the mobile apps because here the languages (Java and Objective-C resp. Swift) are set by the platforms.
Which programming language you should use?
But what does that mean for the prospective developer, which language he should learn first? And which language should you consider for your startup or the refactoring of the legacy application? There is no easy and universal answer for both questions. This depends on the requirements and the goals you want to achieve. But there are some hints you can get.
Besides of that at least knowing a more common language will increase the chances to find a job. Due to the fact that there are still a lot of legacy projects in C, Java or Python (and new projects will using these anyway, see next paragraph) you can start with that and maybe introduce a new one later on by yourself.
Make an educated guess at new projects
And what about the startup? Here the choose of the programming language could be a fundamental part of the success. It is not about the language itself but more because of the ecosystem of the language. Normally two to three developers are working in an average startup at the beginning. Every single one of them is very important for the company and in case he will leave he has to be replaced as fast as possible. If you then introduced a very exotic language it could be even harder to find a suitable successor. In the worst case a third-party agency has built the first version of the application and made the decision for a more unknown language. Later on, you have to pick up that by your own and find experts to overtake the development work.
Additionally, you should take care that the number of used programming languages is as low as possible. The possibility that your frontend developers could also work in the backend area (and vice versa) could be very valuable especially in a small team. If every backend service is developed in its own niche language it will be much harder for new developers to catch up and get the overview.
Another thing you should have in mind are the availability of connectors for databases, services and other tools. There is an implementation for nearly every programming language. But sometimes this is the side project of a single developer that was updated seven months ago. It might be a good idea to look out for an active developer community. Otherwise you might not get any support in case of updates or bugs.
The “best” programming language doesn’t exist
Also in the future discussions about the “right” programming language will be driven by ideologies and prejudices. But besides that, especially in small organizations you should be careful not to follow every trend because the new programming language is so hip. It might be boring to choose the traditional language but your risk will be lower. Particularly if single developer demand to use the bight new and shiny XYZ-lang because it is so much better than the other ones you should only consider to do that if you have thought about that day when these people will not be around anymore.