Blogs

RedMonk

Skip to content

The RedMonk Programming Language Rankings: June 2014

As we settle into a roughly bi-annual schedule for our programming language rankings, it is now time for the second drop of the year. This being the second run since GitHub retired its own rankings forcing us to replicate them by querying the GitHub archive, we are continuing to monitor the rankings for material differences between current and past rankings. While we’ve had slightly more movement than is typical, however, by and large the results have remained fairly consistent.

One important trend worth tracking, however, is the correlation between the GitHub and Stack Overflow rankings. This is the second consecutive period in which the relationship between how popular a language is on GitHub versus Stack Overflow has weakened; this run’s .74 is in fact the lowest observed correlation to date. Historically, the number has been closer to .80. With only two datapoints indicating a weakening – and given the fact that at nearly .75, the correlation remains strong – it is premature to speculate as to cause. But it will be interesting to monitor this relationship over time; should GitHub and Stack Overflow continue to drift apart in terms of programming language traction, it would be news.

For the time being, however, the focus will remain on the current rankings. Before we continue, please keep in mind the usual caveats.

  • To be included in this analysis, a language must be observable within both GitHub and Stack Overflow.
  • 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 distinguishable from the next. The separation between language tiers on the plot, however, is generally representative of substantial differences in relative popularity.
  • GitHub language rankings are based on raw lines of code, which means that repositories written in a given language that include a greater number amount of code in a second language (e.g. JavaScript) will be read as the latter rather than the former.
  • In addition, the further down the rankings one goes, the less data available to rank languages by. Beyond the top tiers of 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.

lang-rank-614-wm

(click to embiggen the chart)

Besides the above plot, which can be difficult to parse even at full size, we offer the following numerical rankings. As will be observed, this run produced several ties which are reflected below.

1 Java / JavaScript
3 PHP
4 Python
5 C#
6 C++ / Ruby
8 CSS
9 C
10 Objective-C
11 Shell
12 Perl
13 R
14 Scala
15 Haskell
16 Matlab
17 Visual Basic
18 CoffeeScript
19 Clojure / Groovy

Most notable for advocates of either Java or JavaScript is the tie atop these rankings. This finding is not surprising in light of the fact that one or the other – most commonly JavaScript – has been atop our rankings as long as we have had them, with the loser invariably finishing in second place. For this run, however, the two languages find themselves in a statistical tie. While the actual placement is, as mentioned above, not particularly significant from an overall share perspective, the continued, sustained popularity of these two runtimes is notable.

Aside from that tie, the rest of the Top 10 is relatively stable. Python retook fourth place from C#, and CSS pushed back C and Objective-C, but these changes notwithstanding the elite performers in this ranking remain elite performers. PHP, as one example, remains rock steady in third behind the Java/JavaScript tandem, and aside from a slight decline from Ruby (5 in 2013, 7 today) little else has changed. Which means that the majority of the interesting activity occurred further down the spectrum. A few notes below on notable movements from selected languages.

  • R: Advocates of R will be pleased by the language’s fourth consecutive gain in the rankings. From 18 in January of 2013 to 13 in this run, the R language continues to rise. Astute observers might note by comparing plots that this is in part due to growth on GitHub; while R has always performed well on Stack Overflow due to the volume of questions and answers, it has tended to be under-represented on GitHub. This appears to be slowly changing, however, in spite of competition from Python, issues with the runtime itself and so on.
  • Go: Like R, Go is sustaining its upward trajectory in the rankings. It didn’t match its six place jump from our last run, but the language moved up another spot and sits just outside the Top 20 at 21. While we caution against reading much into the actual placement on these rankings, where differences between spots can over-represent only marginal differences in performance, we do track changes in trajectory closely. While its 21st spot, therefore, may not distinguish it materially from the languages directly above or behind it, its trendline within these rankings does. Given the movement to date, as well as the qualitative evidence we see in terms of projects moving to Go from other alternatives, it is not unreasonable to expect Go to be a Top 20 language within the next six to twelve months.
  • Perl: Perl, on the other hand, is trending in the opposite direction. Its decline has been slow, to be fair, dropping from 10 only down to 12 in our latest rankings, but it’s one of the few Tier 1 languages that has experienced a decline with no offsetting growth since we have been conducting these rankings. While Perl was the glue that pulled together the early web, many believe the Perl 5 versus Perl 6 divide has fractured that userbase, and at the very least has throttled adoption. While the causative factors are debatable, however, the evidence – both quantitative and qualitative – points to a runtime that is less competitive and significant than it once was.
  • Julia/Rust: Two of the first quarter’s three languages to watch – Elixir didn’t demonstrate the same improvement – continued to their rise. Each jumped 5 spots from 62/63 to 57/58. This leaves them still well outside the second tier of languages, but they continue to climb in our rankings. For differing reasons, these two languages are proving to be popular sources of investigation and experimentation, and it’s certainly possible that one or both could follow in Go’s footsteps and make their way up the rankings into the second tier of languages at a minimum.
  • Dart: Dart, Google’s potential replacement for JavaScript, is a language we receive period inquiries about, although not as a high a volume of them as might be expected. It experienced no movement since our last ranking, placing 39 in both of our last two runs. And while solidly in the second tier at that score, it hasn’t demonstrated to date the same potential for rapid uptake that Go has – in all likelihood because its intended target, JavaScript, has sustained its overwhelming popularity.
  • Swift: Making its debut on our rankings in the wake of its announcement at WWDC is Swift, which checks in at 68 on our board. Depending on your perspective, this is either low for a language this significant or impressive for a language that is a few weeks old. Either way, it seems clear that – whatever its technical issues and limitations – Swift is a language that is going to be a lot more popular, and very soon. It might be cheating, but Swift is our language to watch this quarter.

Big picture, the takeaway from the rankings is that the language diversity explored most recently by my colleague remains the norm. While the Top 20 continues to be relatively static, we do see longer term trends adding new players (e.g. Go) to this mix. Whatever the resulting mix, however, it will ultimately be a reflection of developers’ desires to use the best tool for the job.

Categories: Programming Languages.

  • http://redmonk.com/dberkholz Donnie Berkholz

    Unsurprisingly Swift has much more conversational volume than usage at
    this point. But I find it interesting that it’s already above 1,150
    GitHub repos in the short time span since its announcement:
    https://github.com/search?q=language%3Aswift&ref=simplesearch

    • João Carias

      There are now 1,418 projects. In 5 days it has grown 23.3 %!

  • ponkhead

    swift is shit, go is shit, rust is shit, php is shit, javascript is shit, dart is shit, perl is shit, R is shit, Everything 10 and below is super shit and everything 9 and above is doubly shit shit. Number 10 is the only scripting language id consider to programme in and only if i cant get an assembler for the target platform im programming for. If you cant do this: move eas,10 then there is no hope for you as a programmer at all. consider yourselves warned and those who are recalcitrant are on suspension immediately.

    • gerdi bot

      haha .. spoken like a true apple fancheese. Its only shit because ,well .. you are probably a shit developer, with a hater mentality but no sense nor knowledge to actually write your own language. Do us all a favour and try write a graphic intense game in anything other then c++ .. i dare n00b, or just crawl back to your mp3 player IDE .. whats it called … derp-code

    • http://www.opwernby.com/ Dan Sutton

      It’s “program” not “programme”. “Programme” is a word for a British TV show.

    • Rufus V. Smith

      Python is THE shit!

    • http://crsw.com markwagner

      Out of touch!

  • Philip Oakley

    It may be more interesting to look at the anti-correlated axis to see the difference in focus of the two ‘tools’ (github vs stackoverflow).

    Awk, Io SQL and XML have lots of questions rather than code storage, while Common LISP, Tex and VimL have stored code rather than Q&A.

    You can see which languages have their own independent Q&A forums (e.g. Lua, below the line), along with which languages are the new/popular kids on the block that folk want to know about (Swift, above the line).

    Interesting, thought provoking, hopefully.

  • Fred Bakker

    Where did you leave Cobol and Basic or QBasic ?

    • ponkhead

      I left my QBasic on my old 386 when i gave it away to the gardner in 1998 and got myself a new shiny IBM pentium pro computer with a bigger 17 inch monitor for only $3500 Australian dollars on a 18 month interest free deal with GE Credit. I then proceeded to buy a copy of Visual Basic Pro version 6 and use that instead. Almost the same language as QBasic and with a real GUI and database. I re-implemented my lotto program and began working of real games with all that power availiable. As for Cobol, never used it and Basic, well GW Basic was left quite a while before that.

      • Fred Bakker

        Those languages are necessary for the charts, I think.

    • http://redmonk.com/sogrady stephen o’grady

      GitHub is currently listing 42 repositories total containing COBOL, and 0 for Basic or QBasic, which means that they’re not showing sufficient usage to be included in these rankings.

      • Fred Bakker

        For Basic, I can understand that, but it is still used.

  • rajeem cariazo

    Python is overrated

  • Terry

    Wait, so if I commit a small C# MVC project, in which I reference (and thus commit) known javascript libraries such as JQuery and AngularJs (whose collective linecount > c# code linecount), the project gets tagged as javascript? No wonder it’s so popular. Should you modify your aggregator to ignore common libraries?

  • Vikas

    Can the upward trend in R in github (and not on SF) due to the Coursera MOOC asking students to post the solutions on github ?. Those number of submissions are really huge and this can skew the results we are seeing.

  • http://www.opwernby.com/ Dan Sutton

    How are Java and JavaScript the same language? I mean, they are… in every respect except for nearly all respects.

    • Terry

      They weren’t grouped, they are tied for spots 1 and 2.

      • http://www.opwernby.com/ Dan Sutton

        Ahhh… Oh yes – I see that now. Interesting, since they’re actually completely different in terms of what they’re supposed to be used for — I mean, why those two, specifically and not, say, C# and JavaScript or something. Synchronicity…

  • disqus_zXLbNfw1Yi

    I spent 30 years writing code in that god-awful IBM RPG. Thank God I’m retired.

    • Craig

      Somebody was asking me the other day if I wanted some freelance work in RPG. They’re porting it to dotnet. Using a dotnet version of RPG….

    • swhirsch

      column counting! ugh! RPG IV wasn’t *THAT* bad though ….

  • fatman45

    Visual Basic is still in the top 20! I guess reports of it’s death have been greatly exaggerated!

    • André

      I think that it’s most due to VB.NET. But I also agree w/ you… we will always have people in IT proclaiming the death of some language.

  • ZAchary Initial Z

    Another stupid story ,.. CSS?

    • Richard Eng

      Agreed. In what deluded mind is CSS a “programming” language??

      • jleader

        That probably depends how you define “programming language”. The most academic answer would be that anything Turing-complete is a programming language. By that measure, CSS is just as much a programming language as any other. On the other hand, by that measure so is the Magic: The Gathering card game! (http://beza1e1.tuxen.de/articles/accidentally_turing_complete.html is an amusing list)

      • CreationTribe

        CSS has conditionals – limited, yes – conditionals nonetheless. It has a syntax, strings, integers, commands, and it’s used to alter and manipulate DOM structures as well as other utilities. I wouldn’t say it’s delusional to count it among programming languages. It’s definitely a more hybrid markup/language – obviously “Style Sheet” is 2/3 of the acronym, but it still has programatic properties. I mean, sure you can’t write device drivers with it, and you probably can’t use it to run inode table analyses, set a css script as a cron job, or run chip level op codes with it … but it has it’s place just like everything else. I think most people who know how to program also know CSS and know where its place is. To include it isn’t a big deal and it’s not taking away from any other language by any means.
        I don’t really care either way – I’m not going to get all bent out of shape over it, but to each their own I guess.

    • http://kalbarczyk.co/ Adrian Kalbarczyk

      Even more stupid is XML here.

  • Ian Fellows

    just a note… since it looks like you made the plot in R, you can clean up the overplotting with the wordcloud package (http://blog.fellstat.com/?p=248). (disclosure: I’m the author of that package)

  • jgmitzen

    Is there a full list of the numerical rankings anywhere? I’m curious about Delphi’s trend, especially as one of the last proprietary languages left in existence.

    It would also be interesting to weight some of these figures by age of language. It would seem to be meaningful if a newer language has eclipsed an older one in popularity. A ranking achieved/years in existence metric might be informative.

  • Richard Eng

    It’s all fine and good to choose the “best tool for the job”, but one cannot ignore commercial reality. Using an obscure language, no matter how well suited to the particular task, has many drawbacks. Like in the Linux universe with its hundreds of distros, there are far too many programming languages out in the wild…and more are coming every year!

    I understand the concept of ‘competition’. With all of these languages competing in the ‘marketplace’, we can expect the best of the best to rise to the top. And we can expect the list of top-tier languages to change over time, as Darwinian evolution sorts out the newest and most successful adaptations.

    That said, most developers should focus on using the top-tier languages in order to get work done and to improve their resumes. Exploring new and obscure languages is a distraction in terms of TIME and ENERGY and sometimes MONEY, commodities that most of us have in short supply. There will always be geeks who love to tinker with new languages such as Rust, Nimrod, Cobra, etc., but they are in such a small minority that we can ignore them for the black sheep that they are.

  • sayth

    Something doesn’t relate with the rankings especially with a commercial and job oriented focus. If I take Sydney as an example

    Language | Jobs
    Java 606
    C#/Net 675
    Javascript 838
    Python 209
    Rails 376
    c++ 199
    objective-c 121

    While Java and Javscript do still come towards the top, the reality of jobs seems to show C#/.net being more used than your graph indiicates.

    Maybe github isn’t the place c# devs are going for version control. There may need to be another element added to reflect commercial jobs.

    • Craig

      Using stats from SO and Github is never going to give you stats on jobs or what’s being used in production. Most production code will be in private repo’s, even it if is on Github. Even then, there are other repos that these stats ignore. The best these stats can do is give an unscientific measure of comparative “buzz” around languages. Even then, if developers in a particular language favor sourceforge or googlecode over Github, they’re not going to be well represented here,

      My job involves coding in both Delphi and C#, but I typically wouldn’t “choose” to use them for an open source project. The licensing costs are way too high for “hobbyist” work, and they’re not “fun” languages to code. I’d much rather use something totally different like Ruby, Rust, Go or Haskell for that sort of project. But, I would still ask and answer Delphi/C# questions on SO. I think that explains the ranking of languages like Delphi, with a high number of SO questions, but relatively few Github repos.

  • KrashGA

    CSS is not a programming language any more than HTML or XML is a programming language

  • Pingback: Our Polyglot Nightmare | TechCrunch

  • Richard Eng

    Here is a really interesting article about choosing a programming language that is directly relevant to the discussion here: http://outspeaking.com/words-of-technology/the-lemon-market-of-programming-language-adoption.html

  • Pingback: Here's Apple to Teach You About Swift - Dice News

  • Pingback: Friday links: Lego academics vs. admin, ESA vs. other summer conferences, greatest syllabus ever, a taxonomy of papers, and more | Dynamic Ecology

  • Pingback: Python Community Support | Beginning Programming with Python For Dummies |

  • Pingback: Apache Software program Thought-about Helpful | PakUltimate

  • Pingback: Programming Language Popularity… What should you learn? | Sean Ottey

  • Pingback: Emmanuel Ehis Blog