This post is a transcript of an internal chat about our programming language rankings. The chat covers the following topics:
rachel (Rachel Stephens): The purpose of this chat is to discuss the findings of the January 2021 RedMonk Programming Language Rankings, sponsored by the good folks at MongoDB.
RedMonk publishes rankings every six months, and–as we have done for the past few iterations–we wanted to take this opportunity to dive into the numbers and charts. For folks who may have missed them, this conversation references the January 2021 rankings as well as our historic rankings over time.
Now that we have all of the important background information out of the way, what are your general impressions of the rankings?
sogrady (Stephen O’Grady): They’re generally pretty stable as is appropriate for accretive metrics, but I’m a little surprised at some of the changes in the Top 20 – TypeScript most notably.
kelly (Kelly Fitzpatrick): That TypeScript jumped past Ruby?
sogrady: That, and the fact that it continues to grow generally. It’s not always obvious how hard it is to keep growing past the back half of the Top 20, I think.
You’re competing with years and years and years of usage and commentary, so it’s an uphill climb.
— RedMonk (@redmonk) March 2, 2021
kelly: I mean TypeScript has had a meteoric rise since I started at RedMonk, so I think I would be disappointed if it just stopped.
monkchips: You caused it!
sogrady: I think the other interesting takeaway for me is the degree to which the quantitative data of the rankings validates some of the anecdotal evidence I see. Rust, for example, is popular and growing in interest with a lot of smart people I follow, and sure enough that’s correlated with steady if unspectacular growth in the rankings.
monkchips: Rust has had a pretty incredible year. We began to see a lot of serious hiring in the last 12-18 months but everything is accelerating. The Rust Foundation is now a thing, and Rust is loved by both Microsoft and AWS. Plenty of runway there. For better or worse enterprises do appreciate code in a foundation.
kelly: Yes, Rust has a foundation!
And a co-located event at the upcoming KubeCon + CloudNativeCon Europe.
So by my uses of exclamation points, I think it is pretty clear that I am excited to see Rust not only stay in our top 20, but move up a spot (albeit into a tie).
Other than that, my general impression this time around was that things feel pretty steady; aside from causing TypeScript’s ascent, in my time at RedMonk I also got to see Python crack the top 2. This was all pretty mellow in comparison.
rachel: Let’s dive into Rust a bit more, because the language is clearly having a moment.
monkchips: One interesting thing for me is Rust’s potential to fill niches. I first encountered it in terms of IoT – that is Rust for device programming. But clearly it’s growing as a systems programming language, and the ecosystem around Rust and WASM/WASI with serverless compute from Fastly looks very interesting.
kelly: And WASM has entered the chat.
monkchips: Rust for IoT, Rust for systems programming, Rust for content-driven apps.
sogrady: …and Rust for browsers, let’s not forget.
monkchips: That’s a solid set of niches.
rachel: Let’s talk more about what Rust’s ascent means for the future of systems languages. Do you see Rust’s growth coming at the expense of JVM languages or Go?
sogrady: More Go here. There is massive inertia around Java and associated languages in the enterprise, as well as in mobile via Android.
Go has had a massive impact on infrastructure software since its release, but is theoretically easier to displace.
monkchips: Well Go does seem to have topped out a little bit, and like I say, the Rust hiring by Microsoft and AWS in spaces where we might have expected to see Golang appear seems quite telling.
kelly: I definitely have dev acquaintances who did not hop on the Go train a few years ago, and are now gleeful to see Go dropping/plateauing.
monkchips: Go definitely surfaced strong opinions, not all of them positive.
rachel: I think our chat about Rust (with its recent move to a foundation) and Go (which is highly controlled by Google) takes us to an adjacent topic: would you like to add your voice to any of the discussions occurring around the role of vendors backing a language?
sogrady: There’s been quite a bit of chatter on the merits – or lack thereof – of “owning” a language.
Personally, I don’t see it that way. Languages are more typically invented for a purpose, then leveraged strategically after the fact. Java was invented, originally, to run cable set top boxes. And C# and Go were reactions, to a degree, to Java.
Sun, Microsoft and Google may have leveraged them after the fact for strategic purposes, but that wasn’t why they were designed.
monkchips: I believe that generally you want to see multi-vendor support for a programming language to cross over and become broadly applicable. Being too single vendor focused indicates people are being expected to use it, rather than choosing it. Which is to say programming languages are quite amenable to bottom up adoption.
sogrady: The question to me, then, as far as the “Amazon needs its own language” claims is: why? What technical shortcoming do they need to address?
Because Amazon, frankly, does not need a language to extend its dominance. If anything, it’s best served by the broader adoption and contributions, as @monkchips says. Hence the logic of their interest in Rust.
monkchips: Amazon definitely doesn’t need its own language. That’s pretty much exactly not how AWS works. Small teams, independent choices, clear service interfaces, working back from the customer. None of this says: “we need a new programming language.”
sogrady: All of which is a long winded way of saying that I don’t buy that Amazon needs its own language or that Rust needs a primary corporate backer.
kelly: I agree that AWS does not need a language, probably does need to “make fetch happen” in that way, but also do you ever really rule anything out with AWS?
monkchips: We’re analysts. We’re expected to be long-winded. Your blog posts are usually like 3000 words.
kelly: @monkchips I totally just helped edit like a 3000-word blog post from you, so…
sogrady “I learned it from watching you, Dad!”
rachel: Before blood is drawn, let’s keep going. Were there any surprises in the rankings?
kelly: I am amazed that we collectively got the rankings out while @rachel was on leave and did so without any crying.
At least no crying on my part; I can’t speak for @sogrady.
sogrady: You say that but you weren’t there for Pixelmator, so…
kelly: Which is to say, we are so glad you are back @rachel!
rachel: It’s good to be back!
sogrady: As for surprises, I was mildly surprised to see Ruby’s continued decline.
Dart’s continued growth was interesting, likewise.
monkchips: Wait. Wait. Let’s talk about Ruby a bit.
sogrady: Since I’ve been accused of “hating” Ruby for noting its quantitative decline in our rankings, let me say that I actually love the language. It’s the first one I used where you could basically guess what the syntax was.
monkchips: So Ruby. It’s very much not a hipster language any more. And folks love to say bad things about it. But when you look at incredible businesses doing incredible things – for example Stripe and Shopify – their success was not orthogonal to their choices of language and framework.
Ruby remains a ludicrously productive language for building apps people like to use.
I would love to not scale how Stripe doesn’t scale.
So where does it go from here? I think it’ll have a niche for a long while, but it doesn’t appear to have anything at hand to attach itself to reverse its current trajectory.
kelly: Ruby seems to be another one of those languages (like Go) that triggers a love or hate reaction (and this comes across in where if falls on both the Loved and Dreaded list of languages in the 2020 Stack Overflow survey).
rachel: I think an interesting aspect of Ruby’s decline relates to one of @monkchips’ observations around the industry endlessly remaking Heroku. Ruby and Heroku were once so conceptually intertwined, and so it’s notable to see one part of that concept continue to have traction while the language tied to it become somewhat displaced.
monkchips: What @rachel said.
rachel: Okay, ready for Dart or is there more to say about Ruby?
sogrady: Ready for Dart. I hate piling on.
rachel: Okay, @sogrady give us some context on Dart’s placement in the rankings and its growth to date, given that it’s not yet a Top 20 language.
sogrady: So three years ago, Dart was languishing in the mid-thirties. Two years ago, the Dart framework Flutter – most recently tabbed as the default approach for Ubuntu apps – was released. Since that release, Dart has jumped up to sit where Rust was just a few quarters ago: right at #21, just outside our rankings.
A language is one thing. A language with a framework that solves problems and saves time for developers is quite another.
monkchips: I still like this post from @sogrady about frameworks leading adoption.
rachel: We’ve talked a few times about Ruby’s decline in the rankings over the years, but not much about Perl’s. I suspect if Dart makes the Top 20 in the future it will be at Perl’s expense.
sogrady: That seems highly plausible.
rachel: Which perhaps leads us to a good place to start wrapping up our discussion. Would anyone care to make any predictions for the future or talk more about emerging trends?
kelly: I predict that we continue to get comments on the categorization of CSS as a language. I am eager to see if Python continues to stay ahead of Java.
sogrady: I think Rust has legs. I think it’s two to three quarters at most before it begins challenging Go in these rankings.
Though admittedly it will have to outperform on GitHub because a lot of the language chatter occurs away from Stack Overflow.
monkchips: We didn’t give R any love. I like Dart and R, because they both stuttered, but have made strong showings recently.
rachel: I love R!
sogrady: I give R love every time we do these rankings because the graphics are literally generated using the language.
monkchips: It’s very interesting to me that Python is crushing it, doing great in machine learning and data handling. But R is also growing.
Also @sogrady… you sound like a pirate
kelly: That gif needs its own language to mascot.
sogrady: Why can’t it be RRRRRRRRRR?
rachel: Remember that joke from elementary school about a pirate’s favorite letter? Now we can adapt it to a pirate’s favorite programming language.
monkchips: I might have to write a post about DAARRRRRRRRT, because Dart/Flutter, like Rust, is seeing a lot of love from folks building SDKs and frameworks. Also Flutter 2 just came out. So I think we’re likely to see a sustained improvement. Whether a breakthrough, that’s a different question.
rachel: Excellent, mateys. Thank you all for your time, your insights, and for doing all this work while I was out on maternity leave. 🙂
See you in 6 months for the next iteration of RedMonk programming language rankings!