For context: I’m a software developer (wrote my first .COM virus in 1987), now a CTO of a mid-size regtech company, with an MBA for my sins.
I used Ruby for all my PoC experiments and web-facing MVPs. I mostly used Rails, though I’ve never been a fan of the “Rails way”; it has always reminded me of that “How to draw an owl in two steps” meme: draw two circles, then draw the rest of the owl. I follow the updates and lurk in the Telegram groups to keep up with what’s happening in Ruby and Rails.
Here’s the thing: Ruby is fantastic for a team that already knows what they’re doing. It’s concise, powerful, and expressive. I’ve been coding for 25 years before I got to the Silicon Valley during the early Rails boom, friends showed it to me, and I was instantly hooked. Everything I needed was exactly where I expected it to be, and when something wasn’t, Ruby’s metaprogramming made it very easy to hack something myself when I needed that.
But that is also Ruby’s biggest problem: it’s just not designed with new programmers in mind. It shines only when you have someone with years of accumulated knowledge. Yes, a couple of mythical 10x engineers can build a serious production system in Ruby, but they can’t sustain it alone, that’s what mid-level developers are for. And if there aren't any on the job what exactly are you supposed to do?
(Tangent: Is it just me, or has the quality of fresh university graduates dropped noticeably in the last decade? I used to meet young devs who had been programming since age 12–15 and were ready to build real things for reasonable pay. Now I interview graduates who can’t explain what a HAVING clause does in SQL, even though databases are proudly listed on their CV. I’m in the EU; maybe the situation is better across the pond.)
So is Ruby a serious programming language? Absolutely.
Can it support complex, production-grade systems? Definitely. Ask Shopify. Read DHH’s posts if you care.
Would I recommend Ruby for a brand-new production project today? It pains me to say this, but no way.
Programming languages live and die more by their market than their technical merits. Look at JavaScript: an architectural Jenga tower that somehow runs the world because we’re collectively trapped with it. Ruby doesn’t look great from that perspective -- there's no captive audience, and its niche remains PoCs and MVPs built by one-person teams. It needs something big to break out of that.
Unfortunately, Matz seems to have lost interest, and the recent PR disaster around the Rubygems takeover didn’t help. Sic transit.