Although it is now February, almost March, the language ranking numbers below were actually run in January in keeping with our roughly quarterly pace for updates. As we have done since 2011, we’re repeating the analysis originally performed by Drew Conway and John Myles White in December of 2010. Measurement of performance depends, of course, on what you measure. In this case, the rankings are derived from a correlation of programming traction on GitHub and Stack Overflow.
While there are many approaches to measuring language performance, none perfect, GitHub and Stack Overflow collectively represent statistically significant volumes of data. More importantly for our purposes, their respective communities, while overlapping, remain distinct and thus provide some balance to a measurement of one on a stand alone basis. The statistical correlation between the two properties has remained strong; it was .78 during the first analysis and has never been weaker since – the results below also feature a correlation of .78.
A few necessary caveats before proceeding.
- No claims are made here that these rankings are representative of general usage more broadly. They are nothing more or less than an examination of the correlation between two populations we believe to be predictive of future use, hence their value.
- There are many potential communities that could be surveyed for this analysis. GitHub and Stack Overflow are used here first because of their size and second because of their public exposure of the data necessary for the analysis. We encourage, however, interested parties to perform their own analyses using other sources.
- The further down the rankings one goes, the less data available to rank languages by. The difference between spots #1 and #2, therefore, is much greater than #99 versus #100. Keep this in mind when perusing third or fourth tier languages. Exact placement is less important than tier.
With that, here is the first quarter plot for 2013.
Because of the number of languages now included in the survey and because of the nature of the plot, the above can be difficult to process even when rendered full size. Here then is a simple list of the Top 20 Programming Languages as determined by the above analysis.
- Visual Basic
While there was effectively no change within the Top 10 languages – although it’s worth noting that Java picked up a ranking point since the last analysis, the only one in the Top 10 to do so – there was actually substantial movement in the bottom half of the Top 20.
- Shell lost ground slightly, dropping into an effective tie with Perl.
- Haskell likewise lost some ground.
- CoffeeScript, meanwhile, benefitted from a slight retrenchment of Visual Basic.
- Lastly, MATLAB knocked Groovy back one spot and vaulted into the Top 20, and is within two spots of its competitor R.
Notable performers outside of the Top 20 include Go, which jumped two spots to 28 (up from 32 in 2010), Ada which dropped four to 48, PowerShell which climbed two spots to 26 and Dart which jumped from 55 to 47, cracking the Top 50 for the first time. As cautioned, however, be careful about reading much into the lower rankings giving the small sample sizes involved.
In general, we see the rankings more or less stratified at the upper levels. The obvious first tier of languages does not appear to be relinquishing its hold on developer time and attention – nor moving much within that tier, but competition outside of that area is fierce. This is particularly true in specialized domains, as with statistical analysis where R has seen steady traction but little growth with competitive platforms like MATLAB showing signs of improvement.
Overall, however, the analysis of both language usage (GitHub) and discussion (Stack Overflow) confirms what we have been arguing for some time: that full scale fragmentation of language adoption is the new reality. Much as PaaS providers are currently grappling with the challenge of maximizing their addressable market via support for multiple runtimes, so too must vendors and projects in other categories work to service as many programming languages as possible. Given the opportunity to choose, developers are making choices: lots of them.