This iteration of the RedMonk Programming Language Rankings is brought to you by IBM. From Java to Node.js, IBM remains at the forefront of open source innovation. Try our code patterns to help build the future of open source.
As part of RedMonk’s analysis about language rankings, here’s a visualization that tracks the movement of the top 20 languages over the history of the rankings.
Interpreting the Chart
You can track a specific language’s ranking over time by following the horizontal progression of the language’s rank over time. You can review the Top 20 languages of any given iteration by running through the respective data points vertically from top to bottom.
Any time points are clustered, that means there was a tie and multiple languages share the rank.
If a language was previously on the chart but is no longer visible, it means the language is no longer in the RedMonk Top 20. (While they are no longer included in this specific visualization, rest assured they are still active and vibrant communities.)
Languages that break into the RedMonk Top 20 are seen as new entrants to the chart. (Just like the languages that drop off the top 20, these didn’t ascend from nowhere. They were previously rising in the ranks before becoming top 20 languages.)
Common Questions About the Rankings
Why do you create these rankings?: These rankings attempt to correlate trends between language usage and discussion around a language. We don’t proclaim our rankings to be precise, statistically-valid measurements of usage; instead we see them as an attempt to aggregate trends across two major communities.
How do you create these rankings?: Please see the full analysis for a complete description of the process, but at a high level we measure traction as seen via GitHub pull requests and Stack Overflow discussion.
Why GitHub and Stack Overflow? That’s going to over-represent/under-represent certain communities.: Agreed, these measures are imperfect. More specifically:
- We don’t claim these rankings are representative of broader use (i.e. we do not claim that language usage as seen on public GitHub repos is equivalent to total language usage)
- Communities often connect in forums outside Stack Overflow. Unfortunately, we cannot run a separate query process for a hundred different languages across a variety of forums that range in openness of data availability.
We use GitHub and Stack Overflow first because of their size and second because of their public exposure of the data. We encourage interested parties to perform their own analyses using other sources.
Don’t incumbent languages have an inherent advantage here? Indeed they do, as the metrics from GitHub and Stack Overflow are accretive. While rates of growth will be fastest for new projects with a smaller base, from a cumulative perspective new language entrants are behind from the day they are released. Displacing the most popular languages is a significant and uphill battle.
Has your process been consistent over time? We’ve tried our best to keep things as consistent as possible, but we had to adapt to changes in data availability from GitHub in January 2014 and again in January 2017. You’ll notice there is higher than typical change in those periods; the linked posts above may be helpful for those trying to sort out change due to process and change due to adoption trends.
CSS is not a language. This is inevitably raised every iteration of this analysis. There is probably someone who wants to debate this with you in the comments or on Reddit / Hacker News. While we mostly stay out of the debate on this particular topic these days, we welcome this grand tradition.