There are a number of resources out there which show trends and hard data (albeit estimations for the most part) on the most common programming languages out there. This data can be used by engineers to determine what, if any, languages we should research and educate ourselves on.
Keep in mind, simply looking at the top language and focusing on that is probably not a great plan. The most popular languages, if trending downwards, might not be the best use of time. Additionally, just because something is trending up (Visual Basic!) doesn’t mean that is the future of development.
Let’s get started…
The TIOBE Index
The TIOBE Index uses data gathered by looking at search terms for programming languages. This is a good indication of popularity, but has some issues.
The GO language is probably over reported, simply because that is a very common word. In fact, if you are thinking of creating a language, it might not be a bad idea to name it, say, One Direction, 🙂
Another issue with this approach, using web searches, is that some languages my be more self documenting or intuitive and, as a result, be underrepresented.
The PYPL report also uses web search data, but specifically for tutorials on the given language. This can, potentially, run into similar problems that TIOBE has.
Many tutorials are focused on introductory topics, which lends itself to languages which are popular with “hobbyists”. PHP, Python, etc. Note: I am not saying these aren’t real languages or commercial ready, only that the barrier to access is much lower than, say, the Apple dev stack or Visual Studio.
Redmonk addresses the concerns above regarding “hobbyist” or “introductory” languages. Redmonk uses GitHub, a software source repository, and StackOverflow, one of the most respected developer Q and A sites on the web.
By looking at the prevalence of languages on both these sites, it can be determined which languages are most used. With that said, there is one issue… The GitHub rankings are based on lines of code. The obvious flaw here is that it favors either languages which are more verbose or developers writing excessive (read: bad) code.
Top Languages (scatter graph, list contains top languages in no order):
There are some clear winners is you amalgamate the above results. Java, C and C# are present in all of these top fives. If you only look at average salary, the top looks like this:
- Ruby On Rails
THEN, if you consider the trending adoption of languages which is somewhat difficult to do (although there is a good blog series at RegularGeek which is done very well), you can see that adoption rates for Java, C and c# are much higher…. but trending down.
At some point we may see an intersection of the big three with the languages on the quickest rise (PHP, Ruby and Python), but can they continue their trajectories?
It is pretty apparent from the data above that the real players, at the moment, are Java, C and C#. These are the dominating languages of our day….but for how long?
The bottom line is this: Don’t choose a language based on money, choose a language based on your enjoyment and it’s effectiveness. Don’t dust off your old copy of Hypercard and then wait for the calls to come in. But DO choose a language that will enable you to succeed and continue innovating.