RedMonk programming language rankings

Kotlin is rising, Go is plateauing, and Scala may be at the start of a backslide

Jane Elizabeth
programming language
© Shutterstock / Gajus

Another day, another ranking system. RedMonk has just released their bi-annual report on the state of the internet’s most popular programming languages. What did they see? Aside from JavaScript and Java’s continued dominance, they found out that Kotlin is rising, Go is plateauing, and Scala may be at the start of a backslide.

What do we love more than anything? Metrics to judge our faves! Today, we take a look at RedMonk’s biannual review of the world’s most popular programming languages.

RedMonk takes an interesting approach when they’re calculating their list. Instead of trying to find just the most popular programming language by the numbers, they combine rankings from both GitHub and Stack Overflow. This combined listing shows the language’s usage as well as discussion, giving a more nuanced look at each language.


So, how do they come up with their data? They query languages on GitHub by pull request, based on the base repository language and excluding forked repos. This measurement by pull request mitigates any overestimation from measuring by repo. For their Stack Overflow data, they collected everything via the data explorer tool.

A couple quick caveats: the data is more robust for the bigger languages. Beyond the top tiers, the amount of data available to assess is quite small and so the placements subsequently become less reliable.

SEE MORE: JAXenter survey: These are the most popular programming languages of 2018

Top 20 languages

This year’s ranking has produced a number of ties. What’s most surprising about the rankings… is that there’s no big surprises.

redmonk language ranking

Click here to embiggen.

For those of you with tired eyes, here’s a numerical ranking. (All ties are listed on the basis of alphabetical order.)

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

There are no big surprises among the top 10. The consistent nature of the top 10 might be the most surprising thing in a field so obsessed with the next big thing. Even the difference between JavaScript, Java, and Python is marginal on this list.

However, it is important to note that these numbers are accumulative. Rates of growth are fastest when projects are new and become harder to come by as a project develops over time. (Why? Diminishing returns, low hanging fruit, etc.) Displacing already established languages is a “significant and uphill battle”.

SEE MORE: Stack Overflow: Kotlin, R and TypeScript among least disliked programming languages

Looking at the second tier, there are some interesting trends that RedMonk has pointed out. For one thing, Go’s meteoric rise over the past ten years seems to have plateaued. Go has already been surpassed by the iOS-backed Swift. And for the second time in a row, Go has maintained its position on the charts. Sure, it might not be going to live on a farm anytime soon, but it may be that Go’s forward momentum has halted somewhat.

Kotlin may not have made the top 20, but its rise has certainly been impressive as it climbs the charts. According to RedMonk, in the course of little more than a year, Kotlin has gone from #65 to #46 in their Q3 run to #27 as of January. Well done, Kotlin! If they keep that kind of forward momentum up, we’ll likely be seeing them crack the top twenty list in the next year.

On the other hand, Scala seems to be dipping slightly in the rankings and has done so for three straight quarters. This may not be super statistically significant; making the top twenty still represents a lot of projects and developers. But, it’s something to keep an eye out for the future.

RedMonk also points to Swift as a programming language that’s done exceptionally well. Intended to be a replacement for Objective C, Swift now ties them for number 10. Swift’s server-side offerings may be a little underwhelming, but that doesn’t detract from their incredible rise.

SEE MORE: Swift’s popularity has gone into free fall, TIOBE index shows


There are an awful lot of ranking systems out there and they all look different metrics. TIOBE is a lagging indicator, looking at the number of web pages with the language name. PYPL looks at the number of searches for “tutorial” of a specific programming language, trying to measure the number of beginners for every language. And, as we mentioned earlier, RedMonk looks at GitHub and Stack Overflow to determine how actively a language is used.

Plus, TIOBE and PYPL are monthly measurements, whereas RedMonk only analyzes the state of the programming language universe for January and June of every year.

Unsurprisingly, since these metrics have different goals, they have different results. (Science!) TIOBE places Java at number one and JavaScript trails at number 8; PYPL also ranks Java in first place, with JavaScript at third.


None of these rankings are value judgments. Python might be the best language for you to use, or maybe R. It’s all up to what kind of project you as a developer are working on. Keep working on whatever is the best for you! In the meantime, we’ll keep an eye on the horizon for any weather changes. But, as the steady dominance of the top tier shows, we might be waiting a while for any big changes.

Jane Elizabeth
Jane Elizabeth is an assistant editor for

Inline Feedbacks
View all comments
Peter Hansson
Peter Hansson
4 years ago

Please note that this metric ranks by order, not by the absolute numbers. So it may well be there that there’s an enormous difference in popularity between say those programming languages in the top-3 vs those programming languages in places 3 thru 10. The metric will not capture this. Nor is it designed to, I guess. The graph makes it look like “the popularity” of these languages are very close.

Penguin monkey
Penguin monkey
2 years ago

If only Kotlin had easy to use Macros, not those complex Annotation Processors… I wonder if Kotlin will support Dependent Types…