HACKER Q&A
📣 contr-error

Is Ruby on Rails still relevant?


I'm currently going through Destroy All Software's screencasts [0]. They're heavily based on Ruby + Rails and TDD, although most of the concepts probably do do translate to other languages.

Since the screencasts are over 10 years old now, I'm wondering if Ruby on Rails is still going strong. What resources would you recommend to get into Ruby/Rails specifically? Same question for TDD? Thanks!

[0] https://www.destroyallsoftware.com/screencasts/catalog


  👤 ericskiff Accepted Answer ✓
We're still starting new greenfield projects in Rails every week, and I still believe it's the best foundation for SaaS products. It's great for developer speed and efficiency, the ecosystem of gems is amazing, and we've been able to scale every project we've needed to. We're incorporating React and GraphQL more these days for complex components and APIs but they pair nicely with Rails.

👤 ecshafer
Shopify Developer here (opinions are my own) we are running Ruby on Rails (obviously) and we do well with it. It's fast to develop, fast to deploy, fast to test. I have no complaints with it. I would say my gut says that there are fewer bugs, fewer issues, fewer on call incidences, less downtime, and faster development speed than when I worked in a Java shop with micro-services and serverless and plenty of modern things. Technical culture, discipline, quality of engineers and leadership matter so much more than what your tools are imo.

👤 haidrali
First check https://israilsdead.com/.

If you want to learn Ruby on Rails in 2022 please check https://gorails.com


👤 omarhaneef
Define dead. Some people don't think Cobol is deal. Or Fortran. In this sense the code is still run somewhere and there are still jobs to be had.

But the question is probably around one's personal choices: is this the framework to invest my energy and time? Are there far better frameworks? Where is the market headed?

In the early days of Rails, and indeed any popular framework, the sense we get of an explosive growth. As a result of this there is an imbalance of jobs and developers and jobs seem easy, plentiful and well compensated.

This is really a question of the ratio of dev:positions. Most answers to this tend to focus on the positions component (take a look at stack, or upwork or indeed or whatever!). Perhaps someone on HN will suggest a metric or public gauge for the competition as well.

Edit: added slightly more context


👤 gls2ro
For people in this thread comparing _Rails_ with _Go_ can you please help me understand something about Go: Is it a language that also has in std/core library web framework like support? Like PHP?

I ask as I dont understand why people say drop Rails and learn Go. And I am looking to learn a new language along with Ruby and Elixir.

Why is Go compared with Rails and not with Ruby?

If Go does not include a default support for web frameworks then what web framework would you suggest for doing a web SaaS like management of posting on social media?

I dont want to create this but i use it as an example as it has image uploads, date/time, jobs, … things I can do easily in Rails and have already battle tested solutions available.


👤 methehack
Yes because it is still a hyper-effective and flexible way to build and iterate many products. And it's not just rails. The library breadth and quality of ruby libraries IME is off the hook great. Some kind of magic has happened.

👤 lbrito
Yes.

According to Hired's State of Software engineers 2022, Rails is the 2nd most in demand skill.

https://hired.com/2022-state-of-software-engineers/


👤 givemeethekeys
Yes for three reasons:

- There's lots of RoR jobs.

- They keep improving it.

- What RoR taught me made me a better architect in every other stack.


👤 flats
I have been working on a Rails app at a rapidly growing organization for the past 6 years and I consider myself very lucky to be able to do so. Shopify, GitHub, and Stripe (to name some of the more prominent companies) all regularly contribute to the Ruby and/or Rails ecosystem, and there have been loads of wonderful improvements to both over the last several years: vastly improved performance in Ruby 3, support for static typing using RBS and Sorbet, Hotwire in Rails 7 for super low-lift client-side interactivity, and many, many more.

It’s a great time to start using Ruby for web projects.


👤 JangoSteve
I have what I call my 80/80 rule of early-stage startups, which is that for 80% of new startups, 80% of what they need is CRUD operations (create, read, update, delete). So basically, input data in this format, store it in this format, then display it in this format.

I think Rails is one of the most productive and capable frameworks for building and evolving CRUD applications, which is the reason it still remains my recommendation for new startups.


👤 davidfstr
Personally if I was starting a project in the same space as Rails/Ruby I’d go with Django/Python instead.

I prefer the “explicit is better than implicit” norm in the Python community over the “powerful yet mystifying magic” I find in Rails. (This is personal preference.)

I also appreciate Python source code being easier to manipulate with tools than Ruby, since Ruby did not have a formal grammar the last time I checked. Any tools that did exist appeared to usually include the yacc/bison file from MRI (the main Ruby implementation) as the best approximation of a language definition.


👤 digisign
Ruby has been on the downswing for a while, getting squeezed from all sides from the meteoric rise of Python on one side, JS/Typescript on the other, to higher performing static languages on another:

https://octoverse.github.com/#top-languages-over-the-years

It also has a funky syntax, while not a big deal, doesn't do it any favors in a C --> Javascript world. Django, golang, etc. are free. I don't recommend starting new projects in ruby, but as always YMMV.


👤 evaneykelen
Yes, and it’s only getting better over time! Building complex front-ends, with states synced across different users, is a sheer joy using Turbo & Stimulus. It’s amazing how little JS is needed to create UIs that—when built in e.g. React—would have needed a ton of client-side code. I continue to be amazed how easy and fast it is to develop in RoR.

👤 CuriouslyC
I wouldn't choose RoR as a new tech to pick up in 2022. Think of it like a more stylish PHP - lots of it out there, but mostly not in companies working on things that are compelling, and the market share is on the decline.

👤 newaccount74
I think it depends on the region. I started a project in Rails, and when I tried to hire people to help I found out there are very few people in my city who know anything about Rails. It's all Python and Java here.

So I'd recommend to look for job ads on local platforms and check if companies are looking for rails devs.


👤 blakesterz
This was also asked 9 years ago:

https://news.ycombinator.com/item?id=5483752

Interesting to compare answers to today.


👤 swat535
If you Think Github, Gitlab and Shopify are relevant, then yes. Ruby on Rails remains an excellent technical choice for mature products.

Note that, just like any other tool it has pros and cons, one should analyze the system requirements and use whatever makes sense. I would however, dare say that it is a great fit for majority of businesses.

Honestly, majority of frameworks out there today will get you 90% of the way: Rails, Laravel, Phoenix and Django just to name a few.

As I get older, I tend to prefer boring tech myself..


👤 MattGaiser
I had a call with a recruiter a few months back who said that the highest commissions were for Rails devs.

👤 nobleach
As in will you find plenty of recruiters hunting for Rails developers? Absolutely. I've seen plenty of startups locally (Salt Lake/Provo) that are green-fielding with Rails. I've also seen later-stage startups that are transitioning their Rails monoliths to Elixir - and they're trying to hire folks that are willing to work on 4 year old Rails monoliths. That's not a bad thing is Rails is your thing.

I enjoyed Ruby as a language quite a bit. Having experienced some of Rails' scaling issues, I doubt I'd personally pick it for my next startup. I know time to market is vastly more important than scale, but it's also not hard to pick a different tech that DOES scale easier.

So, yes, there will be plenty of Rails projects to work on for the foreseeable future. The only concern I'd have is if you're being asked to work on a very old code base. That can get really hairy, really quickly. But that's the case with any language/stack.


👤 tomc1985
10-years-plus Rails dev here, I still get requests to connect from recruiters for Rails positions at least weekly, and my LinkedIn says at the very top that I am not seeking employment

Judging by the responses here, Rails is no longer fashionable. I find it to be quite boring and predictable, which is how I like my frameworks to be

Just stay the hell away from React and it's great


👤 r-s
There is a surprisingly small amount of senior rails developers. Many who learned it when it was cool, have moved on. There are so many legit companies making tons of money on Rails stacks with 0 intention on leaving. The market is excellent for rails developers and likely will be for the foreseeable future.

👤 lkrubner
At this point I think it is worthwhile to contrast Ruby against Rails. Ruby has fallen behind, if you want great meta programming, you can get all the joy, plus much better speed, by using something like Clojure. That also gives you access to the vast ecosystem of Java libraries.

But Rails is a different story. For jumpstarting a greenfield API or CRUD app, there is nothing quite as good as Rails. Django and Symfony and other frameworks have tried to imitate Rails, but Rails is still way out in front, with better tools, and the marriage of Rails tools with Ruby's advanced meta-programming is something difficult to replicate elsewhere.

If your company needs a custom CRM or CMS, Rails remains the best starting place.


👤 fknorangesite
Are you learning Rails from decade-old material? Because a lot has changed since then.

👤 mindaslab
Not if you want to make building websites complex so that you can charge your client more.

👤 mbrodersen
I know that Ruby on Rails is still very much relevant for consultants being paid big $ to fix the disasters left by self-declared “Ninja” developers after they quit and move on to try again from scratch at another company ;)

👤 lucasarruda
Super relevant! And there are tons of companies looking for Rails developers!

I know some people of the community moved to Rust or Node. But the Rails ecosystem is still the most complete out there.

The framework, as the language, is still evolving, getting quicker and integrating will all sorts of other tools (GraphQL, Elastic, etc).

Ruby is much faster in 2.7/3.x as it was in 1.9/2.0 era.

Rails is starting to try dropping node and all the JS package craziness. But still supports all them. So you can pretty much do HTML-over-the-wire, plain jQuery or go full-blown React/GraphQL/API using webpack or similar.


👤 tomhallett
if you like screencasts, "Go Rails" is an amazing resource (and they are very current): https://gorails.com/

👤 jetheredge
We build and maintain a lot of Rails applications, with several of them almost a decade old. We have to keep them up to date, but Rails is stable and mature and this process is fairly easy. We come across a lot of web apps written in other ecosystems, using frameworks that were popular just a few years ago and have now been mostly abandoned. Or we get bit by an app that is a few years old and now has dependencies that are completely dead and core to the application. This isn’t the case with Rails. It is just as actively developed now as it was 10 years ago, and we are confident that it’ll be just as actively developed 10 years from now. Due to the fragmentation of these other ecosystems, even though the community as a whole may be larger, finding a stack that you can depend on for a long time can be a huge challenge.

👤 hipertracker
After years spent with Ruby and Rails, and some work with Go, Elixir, and Phoenix I switched finally to Python and Django. It's fast, productive, very mature and you can find a library for whatever I imagine. I like Jupiter notebooks, Pydantic, multiprocessing, pandas, and other libs.

I tried to get used to Go several times but it always failed. Go lacks an interactive console. Its syntax is ugly and very limited and not expressive, which means I had to reinvent the wheel all over the time. Why the heck Go has not even have reduce function? It is true, that using Go ends with a TONS of verbose code. The same functionality in another language can be built in a fraction of the time and will have a much simpler and smaller code size


👤 asfarley
Here is a hint, at least every 6 months for the past 8 years there have been blog articles asking whether Rails is still relevant. It’s basically a meme at this point. We need a “no rails relevancy posts” sign like guitar shops need “no stairway”.

👤 hakube
Still relevant. We're deploying a lot of customer apps that are written on Rails

👤 namelessoracle
I learned rails in college and mentioned it on a few resumes and get non stop recruiters asks about it (more than my typescript/go/react/c# stuff, and on par with my java springboot slice) so i would say no.

👤 runjake
It's not only not dead, I'm excited about the new stuff in Rails 7.

👤 wg0
Don't think so it is dead rather a mature and proven technology. The impact of Rails is huge and almost every other web framework has embraced parts of it.

But having worked with Rails code base, it becomes a guess work in a text editor to know what you're getting in a method. The duck typing makes impossible to be sure for text editors unless you resort to some sort of type hinting and that's not Rails's fault, that's ruby.

In 2022, given among all the choices, I'd probably go to either deno + Typescript or golang.


👤 ChrisArchitect
Recent similar discussion:

3 months ago https://news.ycombinator.com/item?id=30022185


👤 shreyshnaccount
Its very not dead (www.israilsdead.com). Jokes aside, it's the just perception created by everyone trying to be fancy and move to whatever is in fashion now..

👤 sergiotapia
I hardly get any job listings from recruiters using Rails tech stack these days. Nothing compared to 7 years ago.

These days it's mostly Javascript, Go, some Kotlin.

Regardless I work in Elixir because they can pry BEAM out of my cold dead hands. And Liveview is inspiring all other frameworks to build similar tooling that is unfortunately second-best because Elixir and Erlang's BEAM are so well suited to it's workflow.


👤 retrac98
Yes. It’s not the super cool framework it once was but it’s still excellent, and still in active development. Rails 7 is a fantastic release too.

👤 cutler
To put this in perspective here are some job stats from Indeed.co.uk for London and the UK (excluding London):

London: Rails 237, Django 383, Laravel 149

UK (excl. London): Rails 230, Django 406, Laravel 1001

So, yes, there are less Rails jobs overall but considering there are less than twice as many jobs as with Django, which is powered one of the most popular languages, Rails is clearly still very active in the marketplace.


👤 ulisesrmzroche
If you're just starting out, I wouldn't go with Rails. Get really good at Typescript and React instead if you like the front-end, or Node or Golang on the back-end.

Although it's a hard choice because the books and documentation and training resources are great in Rails, so easier to level up, but I don't think that's where things are going anymore.


👤 swlkr
Rails is still relevant.

It's tricky more generally to see if a technology is still relevant because there is so much hype of new stuff in web development.

Usually after the plateau of productivity, you don't see too many people talking about a given technology, your only signal of success would be something like Who's Hiring and Cmd + F "rails".


👤 mrbean1919
I think Ruby on Rails was the killer app that kept Ruby relevant. This kept Ruby relevant for a while but has fallen off in a lot of developer surveys. I think enough competitors in major programming languages have emerged to the point where I would consider it dying.

👤 lucidone
I went through an interview cycle recently for remote roles. Most were (surprisingly) using Rails on the backend. Either this is because I have RoR experience in my LinkedIn (albeit little) or because it remains a popular framework. Take that as you will.

👤 sparker72678
Checkout the guides: https://guides.rubyonrails.org

Even just a "Ruby on Rails Tutorial" search on YouTube will get you going, too, if that's more your thing.


👤 stretchwithme
My company uses it for multiple web apps and uses ActiveRecord for scripts too.


👤 blablabla123
I think it's quite popular, also speaking of testing it really has all options available. Since unit testing is now absolutely the standard, adoption of TDD has also been growing from what I've seen

👤 elango
It is good for getting off the ground when validating an idea, but when it comes to 10+ team it gets difficult to hire or train people as there is a several fold larger pool of accessible Java developers.

👤 dsl
RoR is the Supreme t-shirts and Air Jordans of programming. They very much matter and are the center of the universe to the people who care, everyone else just kinda shrugs and goes about their day.

👤 eaydev52
Maybe it would be the answer :) https://news.ycombinator.com/item?id=21138422

👤 adrianthedev
Nope. Not dead.

I'm building Avo to help developers ship apps faster than ever. Avo is to Rails what Rails is to web development.

https://avohq.io


👤 simplify
Shopify is hiring like crazy, and their stack is almost all Rails.

👤 DeWilde
My company uses it still, there were some new projects recently started using it. It does the job of creating CRUD apps pretty well.

For more performance intensive tasks .NET Core is used.


👤 mountainriver
Rails is like PHP. It’ll probably never die because people just keep propping it up.

There are much better options, but some people just like the crap they know


👤 strzibny
No, I just accepted a Rails job offer a while ago.

👤 JikkuJose
A bit off-topic: But I have been always getting questions on how to start with RoR after a fair bit of Ruby knowledge.

DHH's blog video feels pretty dated now. Does anyone have any pointers to a decent video tutorial that starts from the basics?


👤 brbrodude
My take: - 34yo dev, brasilian(living in Brazil), started with RoR in 2013 and worked with it on and off since them - was the first Software hire in a b2b e-bike engineer-DNA startup in 2019, picked Rails for the 'IoT layer', been working on it since them

In this context, I'm still very happy to be developing in Ruby and Rails and it still feels very fresh to me most of the time.

It may come down to, like Vim, it's not exactly in the new stuff department, it's 'niche', even, but the super users and hardcore community apparently will never let it down. It is very well taken care of software and I think there's a lot of people in a virtuous relationship with it i.e.: probably a lot of people running it to get things done, doing good business, making money and satisfied enough that it sort of doesn't matter much what 'kids' looking for the hot new tech to fill CVs think about it. I think RoR is super solid in this regard.

Following on the Vim analogy, I think both Ruby and Rails have the 'power tool' quality/deph in that it keeps rewarding you with more power the more you get the handle of it, there's few things like TDD on RoR. When you're senior and you're not afraid to tweak things as you want it anymore, things get really interesting. For example:

- Microservices x monoliths: I've built a Service Object layer, all Services have an API of .new(:param, :param)(sugarized to initialize_with :param, :param) and .call, .call!, .queue. These service objects can be strung together, allowing for composition. call without '!' gives you an object you can say .success?, .result and react however you want. .call! will raise exceptions. .queue runs it async in Sidekiq. We have over 40 of them, in some cases we refactored out a piece of functionality(e.g.: google sheets integration) and just deleted a whole folder of them, just like that.

All of these 'actions' can be run from any context: MQTT message, API call, console, Sidekiq, Sidekiq-scheduled, tests. In ruby *anything* can be mocked anytime, have you thought about the power of this? I can make an expectation that an --instance of a class somewhere will receive a call--, it could be mine, it could be a class in a lib, it could be something in the framework.

- Sidekiq just works and is awesome. Free fault-tolerance, performant, scalable.

- Building custom piece of architecture, ruby scripting is very powerful: we had bots simulating the motorcycles running and talking with the backend way before we actually had a board and software able to do that. MQTT messages are relayed to Rails app through a custom long running service, it's a ruby script. Later on we've twisted it to test Firmware Updates Over the Air feature, basically, scripting the script itself. So we have a CI/CD job that allow us to stress test/spec test firmware. Right now I'm doing a middleware so I'll script Rack/Rails next, TDD is going smoothly.

- Maybe tweaking it further to make it more of an a Event Driven application.

I think ultimately Ruby developers end up being good developers because of the high power+low cognitive overhead style at the heart of the language.

Now for the cons:

- It is indeed becoming niche. Junior developers probably mostly not learning it. Are they really as productive as they could be on Rails though? I think NodeJs stuff are interesting, I wonder though how productive they actually are. Is the stuff they build really bug-free? Fully featured? Well tested? From my experience they are fast but will overlook obvious bugs in their code as if it was ok. I think the Ruby community had tons of good teachers who focused on elegant working code, RailsCasts, DestroyAllSoftware, etc. Also a lot of influential devs and ppl who learned from them & similar sources, a lot of them still participating or who done amazing contributions, like Aaron Patterson, Jose Valim, DHH.. I don't know how exactly we'll deal with this at the company, but our software is so flexible I think we wouldn't have much trouble breaking it up & integrating, at the same time too, though, our application code is so easy to work on I don't think it matters much if a new dev is not a rubyist.

In conclusion, I guess it depends where you want to go with your life, I myself have always thought of handling actual heavy duty shit with software, being in a core product team, not being a 'job market b*tch' etc. Even if I'm not writing Ruby one day because we have decided to switch to something other or that I want to work on a different project that is running X, I don't really care.


👤 Parker_Powell
Yes! Ruby on Rails remains relevant, so long as you use it for projects where it makes sense.

Rails was originally released in 2004. Since then, it has been used to build a wide range of different websites and applications. Some of the most well-known sites built using Rails are Github and Airbnb, which is why many people think of Rails when they think of web development. While it has lost some popularity in recent years, as other frameworks and languages have become more mainstream, Rails is still very much alive and kicking.

In fact, in 2018, Rails was the 7th most commonly used framework among all developers according to Stack Overflow's annual developer survey. This survey included over 100,000 responses from software developers representing over 150 countries. It showed that about 30 percent of those surveyed had used Rails "in their careers" or "currently use."

The main question you should ask yourself when considering whether or not to use Rails is whether or not you can use another tool that would be better suited for your project. If you're looking to build a website with a lot of dynamic functionality that needs to be delivered at lightning speed, then Rails could definitely be your best option.