For years now, it has been self-evident to us at RedMonk that programming language usage and adoption has been fragmenting at an accelerating rate [coverage]. As traditional barriers to technology procurement have eroded [coverage], developers have been empowered to leverage the runtimes they chose rather than those that were chosen for them. This has led to a sea change in the programming language landscape, with traditional language choices increasingly competing for attention with newer, more dynamic competitors.
While the question is obvious – which languages should I support? – the answer, and mechanisms for determining an answer, have been considerably less so. There is no canonical metric for determining platform traction; we employ half a dozen or more internally at RedMonk, depending on context, which incorporate everything from GitHub LOC rankings to LinkedIn group membership data.
But one of our favorites is the one originally developed by Drew Conway in 2010. It compares and contrasts the rankings of programming languages on GitHub and Stack Overflow to provide a broader view of language popularity. Our first snapshot using this model came in September. Five months later, we recompiled the data and plotted it to see what – if anything – had changed. Herewith the updated plot.
In general, the addition of languages like Dylan, Turing or Rust aside, little has changed six months on. We still have two clearly defined upper language tiers, with two to three less visible below that. There are, however, several developments worth discussing in more detail.
- Java: as recently as a year ago, Java was widely regarded as a language with a limited future. Between the increased competition from dynamic languages and JVM based Java alternatives, while the JVM had a clearly projectable future, even conservative, enterprise buyer oriented analysts – the constituency most predispoed to defend Java – were writing its obituary. As we argued at FOSDEM last February, however, these conclusions were premature according to our data. One year in, and the data continues to validate that assertion.
Apart from being the second highest growth language on GitHub next to CoffeeScript, Java – already the language with the second most associated tags on Stack Overflow – outpaced the the median tag volume growth rate of 23%. This growth is supported elsewhere; on LinkedIn, the Java user group grew members faster than every other tracked programming language excepting C# and Java. This chart, for example, depicts the percentage of LinkedIn user group growth for Java and JVM based alternatives since November of 2011.
This outperformance is even more impressive when the overall member numbers are factored in.
Our data, then, indicates that Java remains – in spite of the fragmented programming language landscape – a viable, growing language.
- Rust: a C/C++ like syntactical language originally developer in 2006, with the 0.1 of its compiler completed only last month, Rust has surprising traction on GitHub. On February 1st, it sat at 21 on GitHub Explore, ahead of Clojure, Groovy, Erglang, R, Go and a half dozen other relatively popular languages. While this is almost certainly a product of Mozilla’s involvement in the project, it has caught the eye of more than a few prominent technologists. There are a mere 4 questions tagged with Rust on Stack Overflow, so it’s clearly early days, but Rust is on the radar.
Other quick hit observations:
- C dropped 2 spots on GitHub’s rankings, from 5 to 7
- Go posted the fourth highest growth percentage on Stack Overflow, R was sixth
- Java passed PHP
- Prolog jumped six spots on GitHub from 30 to 24
- Scala may be separating itself from the other Tier 2 languages
- Viml is popular on GitHub