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.
- JavaScript
- Java
- PHP
- Python
- Ruby
- C#
- C++
- C
- Objective-C
- Shell
- Perl
- Scala
- Haskell
- ASP
- Assembly
- ActionScript
- R
- Visual Basic
- CoffeeScript
- 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?
- Clojure -6 (Dropped out of the Top 20)
- Emacs Lisp -6 (Dropped out of the Top 20)
- ActionScript -4
- Lua -3 (Dropped out of the Top 20)
- Perl -3
- C -2
- R -2
- PHP -1
- Python -1
- C++ 0
- Groovy 0
- JavaScript 0
- Objective-C 0
- Ruby 0
- Shell 0
- Haskell 1
- Scala 1
- ASP 2
- Java 2
- C# 5
- Visual Basic 5 (Added to the Top 20)
- Assembly 6 (Added to the Top 20)
- 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:
Prediction: Go will become the dominant language for systems work in IaaS, Orchestration, and PaaS in 24 months. #golang
— Derek Collison (@derekcollison) September 11, 2012
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.
Andreas Mueller says:
September 13, 2012 at 9:43 am
I want a rosling-style animation of how the graph evolves over time and how the languages travel! Pretty please.
Martijn Verburg says:
September 13, 2012 at 11:27 am
+1 to this, would be very interesting!
steve o'grady says:
September 13, 2012 at 1:50 pm
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.
Brad Wood says:
September 13, 2012 at 2:03 pm
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.
steve o'grady says:
September 13, 2012 at 2:26 pm
We haven’t cleaned the data up for publication, but it looks like ColdFusion went from 27 to 32 over the ~3 year period.
Adam Connor says:
September 13, 2012 at 3:15 pm
December 2010 to September 2012 is almost two years, not almost three years…
steve o'grady says:
September 13, 2012 at 8:41 pm
The intent is to present one snapshot for each of the last three years: 2010, 2011, and 2012.
Isaac Gouy says:
September 13, 2012 at 3:37 pm
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.)
steve o'grady says:
September 13, 2012 at 8:40 pm
Agreed, the rankings are not linearly weighted.
Isaac Gouy says:
September 14, 2012 at 3:15 pm
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.
steve o'grady says:
September 14, 2012 at 3:29 pm
I don’t believe readers are terribly concerned about the data volume behind the 30th ranked programming language, no.
Isaac Gouy says:
September 13, 2012 at 11:01 pm
>>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.
Velocity888 says:
September 14, 2012 at 1:17 pm
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.
Rob G says:
September 14, 2012 at 2:28 pm
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.
Isaac Gouy says:
September 14, 2012 at 3:42 pm
>>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.)
Alexei Martchenko says:
September 17, 2012 at 1:51 pm
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
Faisal says:
September 17, 2012 at 3:06 pm
Interesting findings!
Links 22/9/2012: September Catchup | Techrights says:
September 22, 2012 at 8:57 am
[…] The RedMonk Programming Language Rankings: September 2012 […]
Heroku Enterprise For Java – A New Play In A Crowded Market | TechCrunch says:
September 24, 2012 at 5:03 pm
[…] 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 […]
Revisiting “Ranking the popularity of programming languages”: creating tiers « Another Word For It says:
October 7, 2012 at 9:06 pm
[…] 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 […]
Drhuffman12 says:
October 26, 2012 at 2:50 pm
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.
How Martin Odersky rewrote the rules of coding for a mobile world — Cloud Computing News says:
November 27, 2012 at 1:06 pm
[…] 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 […]
How Martin Odersky rewrote the rules of coding for a mobile world ← techtings says:
November 27, 2012 at 1:20 pm
[…] 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 […]
Links for November 22nd through November 30th says:
December 1, 2012 at 12:34 am
[…] 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 […]
First Release Of The IBM Social Business Toolkit SDK « Ryan J Baxter's Blog says:
December 4, 2012 at 5:47 pm
[…] 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, […]
JamesBurger says:
December 8, 2012 at 4:12 am
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?
badger2012 says:
December 12, 2012 at 10:24 pm
It’s not VB 5, it’s “VB” +5 (ranking spots).
badger2012 says:
December 12, 2012 at 10:24 pm
It’s not VB 5, it’s “VB” +5 (ranking spots).
Program Building – The Best Language « Gautier Talks Technology says:
December 24, 2012 at 10:33 am
[…] 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 […]
New Year 2013 | Dustin Moorman says:
January 3, 2013 at 4:45 am
[…] to RedMonk, the most popular scripting language in September 2012 is JavaScript. My language of choice – […]
Chris says:
January 6, 2013 at 12:36 am
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.
最受欢迎编程语言排名 | SoulSheng iT says:
January 6, 2013 at 11:51 am
[…] The RedMonk Programming Language Rankings: September 2012 最多留言日志测试FLV Embed播放器如何适应不同大小的视频推荐几款在线应用程序 Web App Web Service多点触控俗称触摸屏都支持哪些操作 This entry was posted in 程序设计 by SoulSheng. Bookmark the permalink. […]
程式語言Python之父告別Google,今年起加入Dropbox團隊 | WIRED.tw says:
January 21, 2013 at 6:01 am
[…] Google是Python程式語言最著名的使用者,現在許多企業及開發商皆使用之,Python在行業分析機構RedMonk的常用語言排行中排名第四,熱門的怪咖網路四格漫畫XKCD甚至用漫畫寫了一封情書給Python程式語言。 […]
Why I Prefer to Build My Windows Store Apps in HTML | Applied Information Sciences Blog says:
January 23, 2013 at 2:27 pm
[…] 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 […]
Why I Prefer to Build My Windows Store Apps in HTML | iPlayCloud.org says:
February 2, 2013 at 11:02 am
[…] 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 […]
Valtech Blog | Compte-rendu de ma première FOSDEM says:
February 5, 2013 at 11:52 am
[…] 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 […]
Choosing a Programming Language: So easy, a caveman can do it | the world is says:
February 20, 2013 at 8:09 am
[…] courtesy of RedMonk. Online available: http://redmonk.com/sogrady/2012/09/12/language-rankings-9-12/ (Accessed February 15, […]
Introduction to C++ part 2 | kuroshfarsimadan says:
March 22, 2013 at 2:22 pm
[…] 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 […]
AngularJS Directives and The Computer Science of JavaScript | Tengfei's Blog says:
March 30, 2013 at 3:30 am
[…] 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 […]
» Programming languages: quality, popularity, and versatility Interesting Question says:
April 12, 2013 at 5:39 am
[…] 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 […]
Is JavaScript the most popular programming language in the world | Resume Rewriter Free says:
October 1, 2013 at 2:50 am
[…] More Resources on Is JavaScript the most popular programming language in the world: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html http://langpop.com/ http://www.google.com/trends?q=javascript%2C+js%2C+c%2B%2B%2C+php%2C+java http://javascript.crockford.com/popular.html http://googleblog.blogspot.com/2008/07/we-knew-web-was-big.html https://github.com/languages http://redmonk.com/sogrady/2012/09/12/language-rankings-9-12/ […]
How does Python compare to C | Resume Rewriter Free says:
October 2, 2013 at 12:44 am
[…] More Resources on How does Python compare to C: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html http://langpop.com/ http://www.google.com/trends?q=javascript%2C+js%2C+c%2B%2B%2C+php%2C+java http://javascript.crockford.com/popular.html http://googleblog.blogspot.com/2008/07/we-knew-web-was-big.html https://github.com/languages http://redmonk.com/sogrady/2012/09/12/language-rankings-9-12/ […]