tecosystems

The RedMonk Programming Language Rankings: January 2018

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

This iteration of the RedMonk Programming Language Rankings is brought to you by YLD. Experts in custom software development and pioneers in cutting edge technologies (Node, React); we enable you to innovate and stay ahead of the competition. Get in touch.


Given that we’re into March, it seems like a reasonable time to publish our Q1 Programming Language Rankings. As always, these are a continuation of the work originally performed by Drew Conway and John Myles White late in 2010. While the means of collection has changed, the basic process remains the same: we extract language rankings from GitHub and Stack Overflow, and combine them for a ranking that attempts to reflect both code (GitHub) and discussion (Stack Overflow) traction. The idea is not to offer a statistically valid representation of current usage, but rather to correlate language discussion and usage in an effort to extract insights into potential future adoption trends.

In January 2014 and again in January 2017, we were forced to make a change to the way that GitHub’s rankings were collected due to changes in the data’s availability. For more on these changes and the history of our rankings, see the summary from our last run. In the meantime, here’s how the rankings are performed currently.

Our Current Process

The data source used for these queries is the GitHub Archive. We query languages by pull request in a manner similar to the one GitHub used to assemble the 2016 State of the Octoverse. Our query is designed to be as comparable as possible to the previous process.

  • Language is based on the base repository language. While this continues to have the caveats outlined below, it does have the benefit of cohesion with our previous methodology.
  • We exclude forked repos.
  • We use the aggregated history to determine ranking (though based on the table structure changes this can no longer be accomplished via a single query.)

The primary change is that the GitHub portion of the language ranking is now based on pull requests rather than repos. While this means we cannot replicate the rankings as they were prior to 2017, the results were generally correlated with our past runs and are the best method available. On the positive side, it also eliminates the most common complaint regarding the rankings historically: that measurements by repo might overestimate a given language’s importance – JavaScript, most frequently.

We also had one other minor change for this run. Historically, our Stack Overflow tag counts have been collected direct from the source – stackoverflow.com. While this was the initial collection process, the spreadsheet containing our January 2018 tag counts became corrupted and unusable. With a helpful pointer from Stack Overflow itself, however, we were able to collect the required metrics using their useful data explorer tool. The results differed slightly from the website, but not materially as far as we can tell, but bear that it mind as a potential influence.

With those updates out of the way, please keep in mind the other 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.
  • 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.

With that, here is the first quarter plot for 2018.

(Click to embiggen)

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 (they are listed out here alphabetically rather than consolidated as ties because the latter approach led to misunderstandings).

1 JavaScript
2 Java
3 Python
4 PHP
5 C#
6 C++
7 CSS
8 Ruby
9 C
10 Swift
10 Objective-C
12 Shell
12 R
14 TypeScript
14 Scala
16 Go
17 PowerShell
18 Perl
19 Haskell
20 Lua

As always, the consistent performance of our Tier 1 languages – the top ten, more or less – is at once surprising and unsurprising. The relatively static nature of the top ten languages is interesting, certainly, in a technology landscape that is best characterized not by the high level of change but the increasing pace of same. Conversely, however, it’s important to note that the numbers measured are accretive, and as with financial metrics rates of growth are fastest when projects are new and harder and harder to come by over time. New language entrants are behind from the day they are released, in other words, which makes displacing the most popular languages a significant and uphill battle.

In our Top Ten, then, with one exception which we’ll come to, there is little to note. Outside of the top tier, however, there are several changes worth discussing.

  • Go (-1): Since it burst onto the scene a little less than a decade ago, Go has been one of the fastest growing languages we’ve seen this side of Swift. Very few other languages have been able to vault themselves into the Top 20 as quickly as Go, a testament to its rock solid reputation as a back end systems language. That reputation notwithstanding, however, the evidence suggests that Go may have plateaued. After holding steady at 15 for two quarters, Go has watched Swift leapfrog it and for the first time in our rankings, actually fell off a spot down to #16. To be clear, we don’t recommend reading too much into the difference between one spot or another, even at the top of the rankings, but the trajectory doesn’t give much hope that Go will resume its rapid upward climb anytime soon. Nor does the language itself; while its reputation as a back end language is unquestioned, it lacks the versatility of comparable languages like Java that would grant it access to new markets and thus new growth.

  • Kotlin: As we noted in our last run, the combination of Kotlin’s attractiveness to Java developers and its elevation to first class citizen on the Android platform seemed to indicate the language was poised for a major jump. In the course of little more than a year, Kotlin has gone from #65 to #46 in our Q3 run to #27 as of January. It didn’t quite match the performance of Swift, which managed a #68 to #22 jump in half that time, but Kotlin is now the second fastest growing language we have seen after Apple’s successor to Objective-C. Interestingly, the two languages have taken distinctively different paths to their respective rankings. Swift got its rankings largely through outperforming on the Stack Overflow axis of our rankings. This is the exact inverse of Kotlin, which performs well on GitHub, but whose relative community traction outside of Stack Overflow under-represents the language on that axis. Either way, Kotlin is one of the fastest growing languages in the world at present, and for good reason. What will be particularly interesting to watch is whether Kotlin can achieve a foothold in mainstream enterprise applications. This would give it an avenue for growth that Swift lacks at present.

  • Powershell (+1) / R (+2) / TypeScript (+3): Of all of the vendors represented on this list, Microsoft has by a fair margin the most to crow about. Its ops-oriented language Powershell continues its steady rise, and R had a bounceback from earlier slight declines. TypeScript, meanwhile, pulled off a contextually impressive three spot jump from #17 to #14. Given that growth in the top twenty comes at a premium, hitting the ranking that a widespread language like R enjoyed in our last rankings is an impressive achievement. From a macro perspective, it’s also worth noting that Microsoft is seeing growth across three distinct categories in operations, analytics/data science and application development. More on this later, but it’s a strong indication that Microsoft’s multi-language approach to the broader market is paying dividends.

  • Rust (+3): The tortoise to Go’s original hare, Rust has continued its slow and steady ascent, checking in just inside the Top 25 for the first time at #23. This makes it more popular in these rankings than Clojure, Groovy, or Visual Basic, which is a significant achievement for a language that is prized for its safety but not considered as easy to pick up as other languages on this list. The question for Rust, much like Go, is what its broader appeal will be: that will determine whether it peaks in the back end of the top twenty or can continue to grow.

  • Scala (-2): The question we asked about Scala in the first quarter’s rankings was simple: “the question facing Scala advocates and observers is whether or not this quarter’s decline is merely another blip, or the shape of things to come.” If this quarter’s run is any indication, the answer is the latter. For the third quarter in a row, it dropped, this time two spots to a tie for #14 with TypeScript. It’s unclear what the causative factors are here, and it’s important to note that a #14 ranking is still extremely high. That said, it will be interesting to see how much of the available oxygen for Scala is consumed by Kotlin as the latter continues to rocket up these rankings.

  • Swift (+1): Finally, the apprentice is now the master. Technically, this isn’t entirely accurate, as Swift merely tied the language it effectively replaced – Objective C – rather than passing it. Still, it’s difficult to view this run as anything but a changing of the guard. Apple’s support for Objective C and the consequent opportunities it created via the iOS platform have kept the language in a high profile role almost as long as we’ve been doing these rankings. Even as Swift grew at an incredible rate, Objective C’s history kept it out in front of its replacement. Eventually, however, the trajectories had to intersect, and this quarter’s run is the first occasion in which this has happened. In a world in which it’s incredibly difficult to break into the Top 25 of language rankings, let alone the Top 10, Swift managed the chore in less than four years. It remains a growth phenomenon, even if its ability to penetrate the server side has not met expectations.

Credit: My colleague Rachel Stephens evaluated the available options for extracting rankings from GitHub data, and wrote and executed the queries that are responsible for the GitHub axis in these rankings. She is also responsible for the query design and collection for the Stack Overflow data.

41 comments

  1. while ( javascript.rank!=1){
    console.log(” React, Vue, AngularJS .. ……. … “);
    }

    1. But then is it javascript? Calling a framework javascript is like calling everything (literally everything not directly written in assembly) C because it started out based on C…

      1. Those are all clearly frameworks, they are still dependent on the developer writing some JavaScript code to function. It’s not a complete abstraction.

        1. That’s not the point. If you need a framework over a library, than you’re trying to avoid writting javascript. Unless, of course, you disagree that one bad coder creates two more jobs.

        2. Don’t get me wrong, frameworks have their place, but reinventing the wheel 3 dozen times doesn’t make a new tool, it just forces you to figure out how to use each wheel correctly. That’s going to add thousands of questions that are nothing more than extra work or an alias for another question.

          PHP developers don’t generally reinvent the wheel, and when they do, they usually call it a different language when the language pattern changes as much as it does from one framework to another.

          Javascript has by far the lowest barrier of entry, and the WET culture strongly out weighs good DRY development practices, demonstating this low level of experience, knowledge, and understanding of good software engineering practices.

      2. > calling everything (literally everything not directly written in assembly) C because it started out based on C

        Um. I would suggest reading up the history of programming languages. Even today, there are a lot of programming languages around that are not related to C at all.

        1. What, lisp languages like clojure? I doubt that the common lisp repl isn’t written in C.

          Implementation aside, syntax for most of the top 20 is derived from C.

          I’m a fan of Ada (even though I admit it’s practically dead) so I’d be the first to agree that there are plently of languages not based directly on C.

          Javascripts numbers are also inflated because every web developer is practically forced into using it. It would be near impossible to implement any modern website without js. This parallels implementing any systems program without a C backbone, except even C answers to good assembly programmer.

          1. All I can say is that my local (U.K.) railway signalling and air traffic control is written in (a controlled subset of) Ada. I’m not dead because of it!

  2. I think that there is a strong bias against Rust because of its built in package manager. Rust, especially for Linux users, feels familiar with the command line install util named cargo that retrieves packages from crates.io. Honestly, it feels a bit like comparing Linux distros’ application availability numbers without referencing their respective package managers.

    I know you guys can’t go through all the fringe stuff and smaller communities, however I just wanted to point out that Rust’s numbers are misleading due to lurking variables that couldn’t be accounted for because of Rust’s built in awesomeness.

    1. I’m a bit confused; how would the “built in awesomeness” of cargo (which I agree is indeed awesome) create a bias *against* Rust in these rankings?

      1. Less pull requests from github (understandably debatable, but based on my interpretation of cargos implementation), and less traffic on stack overflow due to the heavy focus on github for issue handling.

        I am somewhat new to rust, but I immediatly noticed the lack of conversation in stackoverflow found its way to github discussion because of cargo.

        Also, excluding forked repositories doesn’t exclude repeating code. Rust’s cargo system is integral, making the prevelance of repeated code, such as in javascript, less likely.

  3. […] “The relatively static nature of the top ten languages is interesting, certainly, in a technology landscape that is best characterized not by the high level of change but the increasing pace of same,” said Stephen O’Grady in a company article. […]

  4. “Powershell (+1) / R (+2) / TypeScript (+3): Of all of the vendors represented on this list, Microsoft has by a fair margin the most to crow about. Its ops-oriented language Powershell continues its steady rise, and R had a bounceback from earlier slight declines. […]”

    There might be a misunderstanding here. Its being implied that R is a Microsoft language — that is not the case. R is brought to us by the “R Foundation” (see https://www.r-project.org/foundation/ )

    1. True, but it’s been the largest institution outside of the Foundation pushing R, and a lot of R’s growth could be attributed to Microsoft’s considerable efforts across it’s stack and tooling.

  5. They forgot that Tex has its on stack.exchange site.

  6. Unlike most of the languages up there, TeX has it’s own stack exchange. Did you check there too? I bet it would affect it’s rank.

  7. That plot looks like it was done in R….

  8. To embiggen. Love it! Just made the dictionary didn’t it.

  9. “This is the exact inverse of Kotlin, which performs well on GitHub, but whose relative community traction outside of Stack Overflow under-represents the language on that axis.”

    Likely because half of the Kotlin questions people might ask or find on Stack Overflow are answered by Java questions/answers.

  10. […] programming language Swift is less than four years old, but a new report finds that it’s already as popular as its predecessor, Apple’s more established […]

  11. […] RedMonk has been compiling quarterly rankings since 2011, and says that Swift is the fastest-growing language it has seen in that time. The company said that it’s a particularly impressive achievement to tie with such a well-established language in just four years. […]

  12. […] creator of the rankings, RedMonk, has been compiling these rankings quarterly since 2011. The company says Swift is the […]

  13. Swift’s rapid rise is expected and hardly surprising. It’s because of the popularity of Apple development. Apple’s influence is enormous.

    However, Apple is not the entire world of IT. Not even close. It’s important to realize that outside of the Apple sphere, Swift has not gained much traction at all.

    By the way, the same remarks apply to Objective-C.

  14. […] on these figures, RedMonk analyst Stephen O’Grady reckons JavaScript is the most popular language today as it was last […]

  15. […] language’s position is based on data from GitHub and Stack Overflow, analysis firm RedMonk said this week. “The […]

  16. […] “The idea is not to offer a statistically valid representation of current usage, but rather to correlate language discussion and usage in an effort to extract insights into potential future adoption trends,” the report notes. […]

  17. […] programming language Swift is less than four years old, but a new report finds that it’s already as popular as its predecessor, Apple’s more established […]

  18. In your methodology, what would happen if one added ObjC AND Swift? What position would they jump to?

  19. […] setzt sich unter iOS- und macOS-Entwicklern offenbar mehr und mehr durch. Das nun veröffentlichte RedMonk-Programming-Language-Ranking für Januar 2018 zeigt die von Apple im Sommer 2014 vorgestellte Programmiersprache erstmals in den […]

  20. […] nun veröffentlichtes Ranking zeigt, dass die Popularität von Swift stark steigt. Seit 2011 wurde keine so steile Kurve im […]

  21. […] setzt sich unter iOS- und macOS-Entwicklern offenbar mehr und mehr durch. Das nun veröffentlichte RedMonk-Programming-Language-Ranking für Januar 2018 zeigt die von Apple im Sommer 2014 vorgestellte Programmiersprache erstmals in den […]

  22. Oh yeah!, Crystal is in the ranking now, just below Elm 🙂

  23. […] on these figures, RedMonk analyst Stephen O’Grady reckons JavaScript is the most popular language today as it was last […]

  24. Fortran rules!

    Amazing longevity. Thanks to Lionel and all the intel folks.

    Please

    GOTO (10, 20, 30) I

    10 hell
    20 nirvana
    30 bugs forever

  25. […] on these figures, RedMonk analyst Stephen O’Grady reckons JavaScript is the most popular language today as it was last […]

  26. WebAssembly as a target is already supported by Rust, soon Golang and other languages will come. The general architecture makes it easier to target such languages on wasm and it is harder to do that with JVM based languages.

    I expect that Rust, Golang and Swift will chop off a huge slice of the browser programming pie on the expense of JavaScript and TypeScript in the next 5 years.

  27. I don’t see SAS, Data Step, or DS2 in there anywhere. In some circles of predictive analytics, SAS would be considered #3 following R and Python, so while it isn’t quite as traditional as most of the other languages here, I’m surprised to see no SAS variant at all, anywhere.

  28. COBOL is alive and well!!!

  29. […] O’Grady describes RedMonk’s Programming Language Rankings, as of January 2018, as being based on two key external […]

  30. […] not only be going strong, but still rank highly on various programming-language indexes such as RedMonk and TIOBE? On GitHub, the language places tenth with regard to pull requests—even beating newer […]

  31. […] aktuell großer Beliebtheit. Der TIOBE-Index (umstritten) führt Python im April 2018 auf Platz 4, RedMonk (umstritten) auf Platz 3. Unbestritten: Trends wie Big Data und Machine Learning erhöhen die […]

Leave a Reply

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