Is Ruby on Rails a “dead” framework?
Perhaps a good place to start would be with a statement from the creator of Rails, David Heinemeier Hansson when asked about a blog post discussing the topic: “Cools! I don’t really care much to respond to trolling nonsense like "Rails is dead". It’s not worth the dignity of a response, given its obvious fallacy. But thanks for trying anyway 😄”.
There is a clear emotion shining through Hansson’s words: the irritation of someone who has had to answer the same damn question too many damn times. What is inferable from how he phrases his response is that he thinks it’s a topic not really even worth broaching, that the topic of “Rails being dead” is on the level of a bad internet meme, and that the people who promulgate it are mere trolls.
Somehow, though, this question just won’t stop popping up. Hiding somewhere in each conversation about the well-worn framework is the inevitable interjection of some variation of: “yeah, but isn’t Rails dying though?”. Let’s take a dive into some opinions on both sides of the matter, take into account some facts, and see if we can glean some insight on the oft-asked question. Let’s find out if this truly is just a bad internet meme pushed by think-pieces trying to be ahead of the curve, or if there is in fact some validity to the concern.
If you’re anything like me, you’re fairly new to your career in development. Some relatively important choices have to be made early on. One has to decide what tech to specialize in. Picking languages, frameworks, libraries, etc, to dedicate yourself to isn’t a choice you should make lightly, therefore when news spreads that “Ruby on Rails is Dead!” it can make you seriously second-guess placing your bet on that horse. For this reason, I want to explore the topic from the perspective of a newcomer just deciding what technologies will best suit them and their career. Without any pre-existing biases, preferences, or notions of best practice; without any pre-existing investment in the Ruby on Rails ecosystem as a new developer, is it a good choice?
Let's start by having a look at some factual data. The first question is what exactly constitutes a dead framework? Rail’s naysayers will often point out a slow down in the creation of new Rubygems as proof, however, this argument has some problems, mainly that Ruby is a mature ecosystem. It's only natural that the creation of new tools would mostly slow down when most contemporary problems web developers needed to be addressed with that framework are taken care of. When you finish moving into a house do you keep buying new furniture? Of course not, you sit on the couch you have and replace it when it's relevant.
Perhaps a better metric is user engagement. User engagement tells us a lot, it tells us new developers are spending time asking questions and learning the framework, it tells us experienced developers are discussing advanced topics and techniques, it tells us that in general people are being educated on RoR. Perhaps most importantly it tells us that developers find it worthwhile investing their time in the framework. Let's have a look at the following two charts:
The first addresses the issue head-on, it surveys working developers to find out their take on the matter. This still falls within the realm of opinion, but that opinion seems to be resoundingly clear: yes RoR is still relevant in 2020. The second chart I find a little more interesting, it cross-references the number of projects and questions on Github and Stackoverflow, arguably the 2 largest platforms for all things code. While it’s true that Ruby is by no means the top dog, it certainly hangs out with them. While this chart might indicate the overall popularity of Ruby as a language more than Rails as a framework, it's a fairly safe assumption that most of those Ruby-related queries are also related to Rails. So the answer to the question “are users engaged” is a big fat resounding yes.
All this aside, Rails or even Ruby being dead isn’t exactly an obscure opinion, what gives? I think the answer is fairly simple. Back in 2008 Twitter (and some other major players at the time) made public that they were moving off of Rails and moving to Scala because of Rail’s supposedly poor scaling. This sparked the debate on the future of the framework which has continued to rage for the last 12 years! This begs the question “if RoR was dead/dying, wouldn’t it be dead by now?”. Well, yes, I think it would be. Moreover, the argument that it's dying because one major platform doesn’t use it anymore is missing the forest for the trees. Basecamp, Github, Shopify, Airbnb, Hulu, Zendesk, not even to mention Netflix, there are some of the names of major players still relying on Rails. If all these companies began to jump ship I would certainly be looking for the exit, but that is simply not the case.
The idea that Ruby on Rails simply doesn’t scale is hotly contested, and while the detractors may take this as a fact, once again it is the stuff of debate and opinion. While there are some strong arguments to be made that on a giant scale this might actually be true, there's plenty of people on the other side of the aisle countering that idea. Take this tweet from Shopify’s Lawrence Mandel as evidence:
Perhaps one of the most foreboding signs for RoR however is that it's not as popular with startups as it used to be. Its reputation for being “on the way out” coupled with the prospects of future scaling issues keep newcomers away. This is likely the single biggest challenge for the future of the framework, which is a shame. People are always eager to move on to the next hot thing without taking into account the benefits of the more mature ecosystem offered by RoR. Tech is all about the “bleeding edge”, but this could be a mistake in this scenario. Unfortunately, though, only time will tell if RoR’s reputation as the oldhead’s framework of choice will have a meaningful impact on its longevity. I think it's somewhat fair to say that the biggest issue RoR is suffering from is its own reputation.
So, where does that leave new devs like me? My bottom line is this: it's an absolutely great time to be getting into Ruby on Rails. It is a mature ecosystem, with more resources than you could hope for, experienced devs to help you along the way, gems letting you implement almost any feature you would want, and a robust reputation for having a deep culture of code quality. It's an opinionated framework eliminating a lot of the guesswork for newcomers and is overall a joy to use. Perhaps most importantly, there is an abundance of high-paying jobs looking for Rails devs on the market.
The people of the internet, in my view, have made the mistake of confusing maturity for declining, and while it's certainly not the new kid on the block, it's a worthwhile investment of time for any new dev. “Ruby on Rails is Dead!” is the stuff of bad internet rumors, and opportunistic think pieces trying to seem ahead of the curve. While it’s certainly possible, and even likely that you won’t spend your entire career over the next 20-30 years working with Ruby on Rails, the question was never is it here forever, but is it dying today? The answer: absolutely not.
As per leastbad's comment I wanted to link the two resources they pointed out. They're both much more extensive dives into this topic and definitely worth having a look at.
RailsConf 2009 - Keynote: The Great Surplus by David Heinemeier Hansson:
The Rails Doctrine: