[January 22, 2014: these rankings have been updated here]
A week away from August, below are our programming language ranking numbers from June, which represent our Q3 snapshot. The attentive may have noticed that we never ran numbers for Q2; this is because little changed. Which is not to imply that a great deal changed between Q1 and Q3, please note, but rather than turn this into an annual exercise snapshots every six months should provide adequate insight into the relevant language developments occuring over a given time period.
For those that are new to this analysis, it is simply a repetition of the technique originally described by Drew Conway and John Myles White in December of 2010. It seeks to correlate two distinct developer communities, Github and Stack Overflow, with one another. Since that analysis, they have published a more real time version of their data available for those who wish day to day insights. In all of the times that this analysis has been performed, the correlation has never been less than .78, with this quarter’s correlation .79.
As always, there are caveats to be aware of.
- 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.
- All numerical rankings should be taken with a grain of salt. We rank by numbers here strictly for the sake of interest. In general, the numerical ranking is substantially less relevant than the language’s tier or grouping. In many cases, one spot on the list is not distinuishable from the next. The separation between language tiers, however, is representative of substantial differences in relative popularity.
- In addition, the further down the rankings one goes, the less data available to rank languages by. Beyond the top 20 to 30 languages, depending on the snapshot, the amount of data to assess is minute, and the actual placement of languages becomes less reliable the further down the list one proceeds.
With that, here is the third quarter plot for 2013.
(embiggen the chart by clicking on it)
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.
- Java *
- PHP *
- Python *
- Ruby *
- C# *
- C++ *
- C *
- Objective-C *
- Shell *
- Perl *
- Visual Basic
(* denotes a Tier 1 language)
Elsewhere, other findings of note.
- Outside of Java, nothing in the Top 10 has changed since the Q1 snapshot.
- For the second time in a row, ASP lost ground, declining one spot.
- For the first time in three periods, R gained a spot.
- Visual Basic dropped two spots after rising one.
- Assembly language, interestingly, jumped two spots.
- After breaking into the Top 20 in our last analysis, Groovy jumped up to #18.
- After placing 16th the last two periods, ActionScript dropped out of the Top 20 entirely.
Outside of the Top 20, Clojure held steady at 22 and Go at 28, while D dropped 5 spots and Arduino jumped 4.
In general, then, the takeaways from this look at programming language traction and popularity are consistent with earlier findings. Language fragmentation, as evidenced by the sheer number of languages populating the first two tiers, is fully underway. The inevitable result of which is greater language diversity within businesses and other institutions, and the need for vendors to adopt multiple-runtime solutions. More specifically, this analysis indicates a best tool for the job strategy; rather than apply a single language to a wide range of problems, multiple languages are leveraged in an effort to take advantage of specialized capabilities.