Article  |  Development

Rails in 2024: Still Relevant or Living in the Past?

Reading time: ~ 7 minutes

Rails in 2024: Still Relevant or Living in the Past?

Ruby on Rails has been a game-changer since its first public release in the summer of 2004. But hey, this isn't a history lesson. This is about why Rails is still the go-to web framework in 2024.

Spoiler: It's got a lot to do with being both mature and modern, among other things.

Mature Yet Modern

Rails is the Radiohead of software frameworks. Think about it: Radiohead's been a well-known band since the mid-90s[1], but they’re not just rocking their first few hits. They've moved from alt-rock to electronic and beyond, always pushing the sonic envelope.

Similarly, Rails has that core MVC structure it's always leaned on, but with each version, it finds a way to incorporate new tech trends without losing its soul.

Put on any Radiohead song from their discography; it might sound a bit different, but it feels like Radiohead.

Photo of 20 years of Ruby on Rails

Open up any Rails app from the last two decades, there are some different approaches and tools, yet it still looks and feels like a Rails app.

"Everything

Everything

Everything

In its right place

In its right place

In its right place

Right place"

Ironically, twenty years ago, I had to convince prospective clients that Ruby on Rails wouldn't just be a short fad and that it'd stand up against the titans in the industry. I must explain why it's better than today's constant stream of new JavaScript frameworks.

Community-Driven

Ruby on Rails is an opinionated framework. This often gets misconstrued to mean that the "opinion" isn't a community-driven opinion but the opinion of the creator of Rails, DHH.

This isn't entirely accurate. We have the data to suggest otherwise.

Basecamp has been kind enough to share its tooling choices and approaches with the community for two decades.

They prefer MySQL for their database. They choose Test::Unit for a testing framework.

In our 2022 biannual Ruby on Rails community survey, 2,660 developers from 102 countries participated.

When we asked what databases they use in production?

60% answered PostgreSQL. MySQL was #2 with 23%.

When we asked which they would prefer to use in production?

89% answered PostgreSQL.

What database would you prefer to use in production?

In the same survey results, RSpec is the widely adopted testing framework of choice among Rails developers.

Despite being opinionated, Rails continues to be flexible so that we can choose what we integrate into the apps we build. The Rails Core team has always tried to maintain a balance of including features that will be helpful to a wide set of use cases, and don't shy away from rethinking those decisions a few years later. For example, it's not uncommon for components to be extracted into their own separate Ruby gem at a later major release.

I applaud them for experimenting with new concepts and knowing when to part ways with them.

When there are obvious pain points for common features and integration needs, Rails developers are quick to contribute new Ruby gems to help solve the problem for themselves and others.

Attracts Quality Talent

Quality software engineers don't just fall from the sky—unless a strong framework like Rails attracts them. It's like a magnet for devs who appreciate beautiful, readable code. Ruby is a language for humans first, computers second.

It's been my experience that great developers are interested in shipping well-crafted solutions quickly. From there, they seek feedback from real-world usage and want to iterate quickly on improvements.

This mentality has been baked into the Ruby on Rails psyche from the first release. As Rails developers, we aim to feel extremely productive. We want to ship things. Fast.

According to Hired's 2023 State of Software Engineering report, Ruby on Rails was the most in-demand coding skill.

Small Teams, Big Wins

So, just like a band might have its core members but bring in additional musicians for a tour, Rails enables small teams to scale their resources flexibly. You can start small, a trio jamming in a garage, and still produce something incredibly rich and complex. When the time comes to "go on tour," so to speak, you can easily bring in additional talent without having to change your whole setup.

DHH describes Rails as The One Person Framework.

In the context of our client work at Planet Argon, this means we can slot into projects that are too big for a freelancer but don't justify a full-time dev team. Think of us like the touring musicians Radiohead brings on—specialists who can jump in, elevate the performance, and step back when it's time for the regulars to maintain the rhythm.

Thom Yorke, too, can work solo or with a smaller group and still make incredible music. Similarly, we can engage deeply with a Rails project for a period, improve the codebase, launch new features, and then shift into a maintenance mode, making us incredibly versatile collaborators.

To be clear, I'm no Thom Yorke. I'm the hired second guitarist who knows how to be a good guest on tour.

Say No to The Big Rewrite

Ah, the allure of rewriting from scratch. Tempting but treacherous. Rails says, "Hold my beer," and offers a structured way to upgrade and maintain. Say goodbye to rewrites and hello to iterative improvement. There is a path to modern Ruby on Rails applications.

If you have a team of engineers trying to convince you that "Rails is outdated" and the only sensible solution is to rewrite everything in a hot, new framework...we should talk.

Experienced Rubyists aren't afraid to roll their sleeves up and untangle yesterday's decisions.

We encourage teams to think about modernization over rewrites. Seriously, be wary of the rewrite.

Innovate Without Breaking Stuff

Rails lets you play with the latest toys without breaking the old ones. Its architecture allows for innovation without detonating your existing code.

Oftentimes, the challenges we face when navigating upgrades are external dependencies that we've bundled in to help us ship something faster. Sometimes, we need to revisit those decisions and/or either upgrade and/or migrate those building blocks.

Yet, most of the core Ruby and Rails code rarely needs to change outside of a few small syntax changes.

Who knew you could have your cake and deploy it, too?

Leans on Server-Side Rendering

The trend of jamming everything into client-side frameworks is cute, but Rails keeps it classy with server-side rendering. Sometimes, old ways are not just old; they're gold.

A common pattern many in the JavaScript community are now "inventing", which the web has provided for nearly 30 years.

To them, I say, "Welcome (back) to the party!"

Strong API Capabilities

Don't be fooled—Rails isn't just about pretty web pages. It's a strong API contender, too. RESTful design comes built-in, so your backend is pretty much a Swiss Army knife.

Rarely have we encountered an argument that Ruby on Rails isn't, at a minimum, one of the best platforms for building and exposing an API.

Learn more about Using Rails for API-only Applications.

Active Record Magic

Active Record in Rails is like a coding wand—mostly magical but with a few quirks. It simplifies database interactions so that you'll hardly remember what SQL is.

Martin Fowler introduced the software design pattern in his book Patterns of Enterprise Application Architecture. DHH used this as one of the foundational building blocks for Ruby on Rails.

When I was first introduced to Ruby on Rails, Active Record was the thing that I immediately fell in love with. It spoils us, Rails developers. It’s like, "Hey, let’s pretend SQL isn’t a thing and just use Ruby objects for everything." It bridges the gap between SQL databases and Ruby's object-oriented programming.

So you're in this OOP paradise, but under the hood, it's still using good ol' SQL. This keeps things stable and performant. Trust me, SQL is like that dependable friend you don’t see often but know is always there for you.

It's a killer combo because you get to think in Ruby but benefit from SQL's long history of, you know, actually being good at managing data.

Testing Capabilities

Rails doesn't believe in living dangerously, at least not when it comes to code.

In Rails, we play around with MiniTest, RSpec, and more recently, Cypress for that end-to-end glam. And get this: Rails is basically your overeager friend who brings extra pens to the meeting. When you use its built-in generators, it'll spawn templated test files for you. Zero excuses for dodging tests now!

For those of you scoring at home, the unwritten law—well, maybe it's written somewhere—is to aim for around 80% test coverage in your apps.

YMMV.

Scalability

Oh, the age-old debate: "Can Rails scale?" Let me introduce you to our old pals, GitHub and Shopify. You might've heard of them; they're a big deal. Both are behemoths that prove Rails can not only walk but run and sprint in the scaling marathon.

But let's get real. Not everyone needs to be the next GitHub. For many B2B and B2C platforms, you're not fretting over millions of users. You're looking at hundreds, or heck, maybe even dozens. And you know what? Rails has got your back.

We've worked with clients who use custom Rails apps to manage, let's say, the "spicier" aspects of their business operations. The cool thing is that Rails lets you experiment like a mad scientist. New workflows? Easy. A pivot? Bring it on!

So, whether you want to conquer the universe or improve Larry's life in fulfillment, Rails can be scaled to fit your drama—or lack thereof.

The Joy of Ruby

Ruby is to programming what poetry is to literature. The language lets you articulate complex business logic like you're penning a sonnet. It's expressive and intuitive, a dream combo.

We're not just code monkeys; we're artisans. Good naming? It's our bread and butter. We also favor the Goldilocks approach to documentation—not too much, not too little, but just right.

After all, we're writing for humans, not compilers, and we know this code will get some eyeballs in the future. So, why not make it readable?

Let's say what we mean and mean what we say, folks.

Rails would never have been written if it weren't for Ruby.

We Love Rails sign from Rails World 2024

Closing Thoughts

So, is Rails past its prime? Think again. Rails in 2024 is an ecosystem of maturity, modernity, and downright magic.

Recently, I had this great experience at RailsWorld in October 2023, hosting an AMA with the Rails Core team in Amsterdam in front of 700 developers. And guess what? The room was buzzing with newbies.

Photo of the Rails Core AMA that I moderated at RailsWorld 2023

Seeing all those first-timers gave me some serious optimism for Rails in 2024. This ain't some fading star, folks; it's more like a supernova that keeps on exploding in slow motion.

We're still attracting fresh faces, and with how Rails continues to innovate, 2024 should be a banner year.

[1] Did you know they first formed in 1985?

Photo credits: Helene Wiesenhaan

Have a project that needs help?