Why new developers shouldn't hesitate to learn Rails in 2018

I was spinning up a web project early last year and needed to choose a backend framework. I knew a handful of languages like PHP, Ruby, and Javascript, but I hadn’t worked with any of the major backend MVC frameworks (I’ve spent most of my time in the frontend over the last few years).

Rails was an obvious choice, but I had heard that its popularity had been declining in recent years. With all these newer, hotter frameworks, (Phoenix, Laravel, etc.), is it really wise to start learning Rails in 2017?

Well, I decided to do it, and based on my experience, the answer is yes.

Here’s why:

It gets the job done efficiently and without any nonsense

This is the least interesting reason, so I won’t dwell much on it. Rails is a workhorse, and it does the job well. The documentation has been refined over a decade. There are hundreds of thousands of posts on Stack Overflow, answering nearly every problem or error message you’ll run into. The ecosystem is mature. There’s none of that nonsense that I’ve grown accustom to seeing around “NPM/Yarn/Leftpad/Javascript-tooling”-land. Open source gems and third-party services all integrate with Rails without issues. Rails is mainstream. Nothing new or surprising here.

It helps me understand other technologies better

Rails has influenced nearly every web technology that came after it in some way, so being familiar with Rails makes you familiar with all of them, at least to some degree. Back in April as part of my work I was dropped into a Laravel codebase for a couple of hours to do a quick audit. I had never been in a Laravel codebase before, but because I understood Rails, I was able to find my way around and start adding value immediately. The same thing happened to me with a SailsJS codebase in May.

It’s not just MVC frameworks either. Learning Rails means you’re getting exposed to ideas around testing, asset management, data migrations, templating, background jobs, deployment automation, APIs, HTTP methods and more. These ideas are going crop up all over the stack throughout your career.

The point is, learning Rails was a force multiplier because it gave me mental models which I could apply and reapply in all sorts of situations.

It helps me communicate with other developers

You may be just starting your backend journey, but a whole generation of backend developers grew up building Rails apps. Many of those developers are now senior developers, technical directors, and team leads—people you need to be able to communicate with. I can’t count how many times in the last year I’ve relied on “Rails-y” terminology (words like “actions,” “associations,” “resources,” and “helpers”) to explain something or ask a question of my team.

Your time is precious. It shouldn’t be poured into technologies and tools that won’t develop you in your career. In a field that changes so rapidly, it makes a lot of sense to get really good at the things that don’t change, which is why I tend to like “core” web technologies.

Rails is like a core web technology in many ways. Its reach and influence has touched so many projects and developers, that time spent learning it is still a pretty good investment. I’m guessing that will be true for a while.