tecosystems

The RedMonk Programming Language Rankings: September 2012

Share via Twitter Share via Facebook Share via Linkedin Share via Reddit

In December of 2010, Drew Conway decided to explore in quantitative fashion one of the more popular and contentious subjects debated by developers: the relative popularity of programming languages. To do this, he compared the traction of the languages on both GitHub and StackOverflow, communities that are both popular with developers and yet have somewhat distinct communities. GitHub’s rankings are based on GitHub’s own stacking of the individual languages, while the languages on StackOverflow are ranked according to the volume of tags associated with each language.

The result was a plot that featured a high correlation; the popularity on GitHub tended to correlate with the popularity on StackOverflow. Ten months later, we repeated this analysis, and again in February. These analyses have proven very popular with developers; the latter post was linked to on Twitter nearly six hundred times.

The truth, however, is that with respect to language popularity, very little changes on a month to month basis. While we do snapshot the necessary data monthly in the event that we require it for more detailed analysis, then, the more interesting insights come when we can examine the data over longer periods of time. Which, having been collecting data over a period of years, we are now able to do.

Here, to begin with, is an up-to-date plot of programming language popularity (click the image for the full size version).

With more languages being tracked than previously, it can be difficult to process this plot effectively. As has traditionally been the case, rough groupings or tiers of languages are apparent. And if one compares this plot to previous iterations, it’s possible to detect progress amongst specific languages. Scala, as one example, seems to be gradually progressing to the top of the second language tier.

But because this plot can be difficult to decipher by itself, we’ve extracted a list of the Top 20 programming languages by popularity here.

  1. JavaScript
  2. Java
  3. PHP
  4. Python
  5. Ruby
  6. C#
  7. C++
  8. C
  9. Objective-C
  10. Shell
  11. Perl
  12. Scala
  13. Haskell
  14. ASP
  15. Assembly
  16. ActionScript
  17. R
  18. Visual Basic
  19. CoffeeScript
  20. Groovy

But while there may be a few surprises on this list – the continued traction of Java, as an example, is unexpected for some – by and large this list seems like nothing more or less than a reasonable representation of programming languages in use today. It is an inclusive list, from compiled to interpreted and everything in between, and thus more evidence of the runtime fragmentation that has been rampant for several years [coverage].

What is interesting, on the other hand, is observing how these rankings have changed over time. From December of 2010 to September of 2011, for example, the popularity of Actionscript, Emacs Lisp, Haskell, JavaScript, Objective-C, Ruby, Scala and Shell script remained unchanged. ASP and Groovy, however, jumped one spot in the rankings, Java 2 and Assembly and C# 5. C, C++, PHP, and Python on the other hand dropped 1 spot, R and Lua 2, while Clojure and Perl dropped 3 spots.

Comparing this September to last, the big winners were CoffeeScript (9 spots), Visual Basic (5), and ASP, Assembly, C++, Haskell and Scala, which all moved up one place. C#, Java, JavaScript, Objective-C, Perl, PHP, Python, R, Ruby and Shell were unchanged. This year’s losers, meanwhile, include Groovy (dropped 1 spot), C (1), Clojure (3), ActionScript (4), and Emacs Lisp (6).

But what if we compare this September 2012 to Drew’s original analysis in December of 2010, just shy of three years ago? What has changed with these languages overall in three years?

  1. Clojure -6 (Dropped out of the Top 20)
  2. Emacs Lisp -6 (Dropped out of the Top 20)
  3. ActionScript -4
  4. Lua -3 (Dropped out of the Top 20)
  5. Perl -3
  6. C -2
  7. R -2
  8. PHP -1
  9. Python -1
  10. C++ 0
  11. Groovy 0
  12. JavaScript 0
  13. Objective-C 0
  14. Ruby 0
  15. Shell 0
  16. Haskell 1
  17. Scala 1
  18. ASP 2
  19. Java 2
  20. C# 5
  21. Visual Basic 5 (Added to the Top 20)
  22. Assembly 6 (Added to the Top 20)
  23. CoffeeScript 18 (Added to the Top 20)

The more popular languages on this list – JavaScript, Ruby and the like are notable for their lack of movement. What is very interesting is that the two biggest jumps come from languages that could not be more unlike one another; CoffeeScript is a simplied version of JavaScript that infuriates technologists with its technical compromises, while Assembly is as close to the bare metal as most developers today are likely to get. That this study in contrasts should comprise the biggest gains over a three year period is interesting.

Outside of movement in the Top 20, there have been questions recently around Go, a language introduced late in 2009. Apcera’s Derek Collison, in particular, is bullish on the language, saying:

The numbers are not quite so bullish, but do provide some grounds for optimism for advocates of the language. Our rankings have Go jumping from #32 in 2010 to #30 today, a number that sounds modest but means that in that time it has improved more in popularity than Scala or Haskell and as much as Java, at least from a rankings standpoint (obviously growth becomes more difficult the more popular the language becomes). Second, there’s its age. At a bit less than three years of age, Go’s position as a solidly second tier language is enviable, given the fact that there are much older languages like Smalltalk that have yet to break that barrier.

Ultimately, these rankings are intended to serve as a datapoint, a snapshot of traction within two particular communities that happen to be substantial centers of gravity from a development perspective. While not strictly representative, they do confirm one of the more important developer trends observed within the past decade: fragmentation. As with so many areas of technology today, the programming language landscape is wildly diverse, with multiple languages being employed simultaneously by individual developers, often on the same project. Whatever your feelings on the specifics of the rankings above or the merits of the languages themselves, be aware that all of the listed languages are present, and present in volume, within today’s developer populations.

42 comments

  1. I want a rosling-style animation of how the graph evolves over time and how the languages travel! Pretty please.

    1. +1 to this, would be very interesting!

      1. We’ve gotten a couple of requests for that, and we may well do it in future. The problem, however, is that it’s not clear that the rankings change sufficiently to make Rosling-style motion charts work well.

  2. Excellent.  Is the raw data available anywhere?  I’m interested in seeing the trends of some of the other languages who are farther from the top.  ColdFusion, specifically.
    Thanks for the thorough breakdown.

    1. We haven’t cleaned the data up for publication, but it looks like ColdFusion went from 27 to 32 over the ~3 year period.

  3. December 2010 to September 2012 is almost two years, not almost three years…

    1. The intent is to present one snapshot for each of the last three years: 2010, 2011, and 2012. 

  4. The “analysis” is just as broken as it was in February.

    The “popularity” of most of those languages is being grossly distorted when
    you convert the “# of Tags” and “# of Projects” data to rankings.

    The range in rank value for the stackoverflow tags was from 1 to 56, but
    the range in “# of Tags” that rank is based upon was from 0 to 82,923
    and the data was so skewed that only 11 of 56 languages had above
    average “# of Tags”.

    Haskell was well below average for “# of Tags” and Java was well above average for “# of Tags” —

    #56 Java = 82,923

    >>> mean = 18,770 <<<

    #40 Haskell = 1,896

    # 1 F# = 0 

    (The story was the same for the github "# of Projects" rank numbers.)

    1. Agreed, the rankings are not linearly weighted. 

      1. Do you agree that readers might describe this — “Our rankings have Go jumping from #32 in 2010 to #30 today, a number that sounds modest but…” — not as “modest” but as irrelevant if they knew it was based on ~0.05% of stackoverflow tagcounts?

        The ranking distorts the data, preventing readers from seeing what’s really happening.

        1. I don’t believe readers are terribly concerned about the data volume behind the 30th ranked programming language, no. 

  5. >>we’ve extracted a list of the Top 20 programming languages by popularity here<<

    You don't say what you mean by "popularity". You don't say whether that list is based on "# of Tags", or  "# of Projects", or some combination of the two, or something else entirely.

  6. Hold on, C# is clearly the leader in stackoverflow.com; and not may C# projects are hosted on github, they are on codeplex. This ranking is inaccurate.

  7. I suspect the absence of Smalltalk has as much to do with their being strong community sites specialising in ST. I’d go to one of those rather than SO or github for Smalltalk related questions.

  8. >>What is interesting, on the other hand, is observing how these rankings have changed over time.<<

    Whether or not rankings were appropriate for Drew Conway's purpose, they are not appropriate as a way of understanding change over time.

    When you talk about "Go jumping from #32 in 2010 to #30 today" you don't show whether that's because Go so.tagcounts are being added at a faster rate or because so.tagcounts for #30 and #31 are being added at a slower rate.

    We don't know whether that's real change for Go or just an artifact of the way you processed the data.

    Instead of rankings, express the so.tagcounts as a fraction of the total so.tagcounts. That way, changes over time will show how much faster or slower so.tagcounts are being added for just one language, compared to the overall rate of growth.

    (You could use the geometric mean to combine "# of Tags" and "# of Projects" data.)

  9. I’ve been keeping track of this list for some times. Congratulations for the work on this. By the way, with 14 years porgramming Coldfusion I must say: “Adobe, change your licensing policies or give up on Coldfusion”. It’s an amazing language, condemned to a puny future

  10. Interesting findings!

  11. […] The RedMonk Programming Language Rankings: September 2012 […]

  12. […] its durability as illustrated in a post last year by RedMonk’s Steve O’Grady and his most recent post last week which Klint Finley wrote about on […]

  13. […] programming languages, it was great bait for the Internet masses to poke holes in, and since then Stephen O’Grady at Redmonk has been re-running the analysis to show changes in the relative position of languages over […]

  14. Next time you do a GitHub vs StackOverflow plot, it would be nice to see a connecting line for the language on GitHub to the matching language on StackOverflow.

  15. […] September, Redmonk analyst Stephen O’Grady used data from Github and Stackoverflow to show Scala on its way to becoming a top-tier language, along with Java, Javascript, PHP, and Python. Other functional languages such as Erlang and Haskel […]

  16. […] September, Redmonk analyst Stephen O’Grady used data from Github and Stackoverflow to show Scala on its way to becoming a top-tier language, along with Java, Javascript, PHP, and Python. Other functional languages such as Erlang and Haskel […]

  17. […] The RedMonk Programming Language Rankings: September 2012 – tecosystems – while there may be a few surprises on this list – the continued traction of Java, as an example, is unexpected for some – by and large this list seems like nothing more or less than a reasonable representation of programming languages in use today […]

  18. […] are the most common languages used by not only developers integrating into IBMs portfolio but in general as well.  Javascript is also used in almost every web app.  It doesn't matter if you are a Java, PHP, […]

  19. Visual Basic 5 appearing suddenly in 2010? Come on. VB5 was a minuscule spark between VB4 and VB6, somewhere in the middle of the 90’s. You are 20 years late. Were do you get those numbers from? Some kind of time e travel algorithm?

    1.  It’s not VB 5, it’s “VB” +5 (ranking spots).

    2.  It’s not VB 5, it’s “VB” +5 (ranking spots).

  20. […] there is the Redmonk September 2012 ranking of programming languages who list of most used programming languages is insightful. Their listing places JavaScript at the […]

  21. […] to RedMonk, the most popular scripting language in September 2012 is JavaScript. My language of choice – […]

  22. Could you please the raw data? Any machine-readable format is welcome.
    Raw counts, and thus graphs in log-scale for absolute number of tags or projects, can be very useful in deciding the next language to learn.

  23. […] The RedMonk Programming Language Rankings: September 2012 最多留言日志测试FLV Embed播放器如何适应不同大小的视频推荐几款在线应用程序 Web App Web Service多点触控俗称触摸屏都支持哪些操作 This entry was posted in 程序设计 by SoulSheng. Bookmark the permalink. […]

  24. […] Google是Python程式語言最著名的使用者,現在許多企業及開發商皆使用之,Python在行業分析機構RedMonk的常用語言排行中排名第四,熱門的怪咖網路四格漫畫XKCD甚至用漫畫寫了一封情書給Python程式語言。 […]

  25. […] is the one of the more popular programming languages (and no… I am not just basing it on the RedMonk survey alone). This makes it easy to find folks to staff […]

  26. […] is the one of the more popular programming languages (and no… I am not just basing it on the RedMonk survey alone). This makes it easy to find folks to staff […]

  27. […] technologies) raconte comment JavaScript a vu sa popularité décoller depuis quelques années et vient de passer juste devant Java. Java n’est pas prêt de disparaître mais il donne quelques indicateurs pouvant entraîner des […]

  28. […] programming language’s and their popularity among the users. Here is the link to the source: http://redmonk.com/sogrady/2012/09/12/language-rankings-9-12/. Do note that not all technologies handle the same jobs meaning that they are good for different […]

  29. […] extremely kind to the JavaScript developer. Not only has JavaScript become the dominant language now surpassing even Java, but the level of tooling that is available in the space is absolutely unprecedented. When it comes […]

  30. […] popularity rankings with other metrics of programming language popularity, such as PYPL, TIOBE, and RedMonk. All of these rankings (and the ones in the graph here) seem to agree on a small cluster of […]

Leave a Reply

Your email address will not be published. Required fields are marked *