Five minutes on the Internet will find you somebody who thinks Ruby shouldn’t exist and is clearly inferior (try it!). Or pick a big tech company, especially an “Enterprise” company. Same thing — you’ll find a Ruby-hater in five minutes if you’re actually trying.
If Rubyists keep doing the right thing, this will be true forever. Let me explain.
What Ruby Rocks At
There’s a set of things Ruby is really good at. I’ll list some of them:
- Prototyping new ideas
- Anything web or HTTP
- Stuff that doesn’t need to be fast
- Reading other people’s code – Ruby is short and readable.
- Building tools and libraries, especially DSLs.
There are some other things Ruby is “good” at. Like, it’s good at them but many people think they’re a bad idea. I’ll list some of those, too:
- Taking on a massive technical debt “loan”, quickly
- Using lots of other people’s code with minimal examination (gems!)
- Patching up somebody else’s code dynamically, in an un-maintainable way.
If you put list one and list two together, what should Ruby be really, really good at?
Ruby and Valley Culture
How about this?
“Ruby is absolutely amazing at quickly prototyping ideas for web sites and web apps, based on other people’s code, with huge technical debt, when they haven’t had to scale yet.”
If you’re working in a big enterprise company, that should sound like damning Ruby with faint praise.
If you’re building a little Silicon Valley startup, you should get dollar signs in your eyes when you read that.
And that’s the difference. That’s why the ads on LinkedIn think Rubyists make about $15,000/yr more than Pythonistas right now, despite the two languages’ parse trees looking like lost twins.
The Dark Side
Of course, that mad phat l3wt doesn’t come without a price.
If thousands of Silicon Valley founders build their dubious ideas on Ruby, you’ll see 90% of those projects sink — they were bad ideas in the first place. And that’s fine — they failed cheap, and that’s good.
But worse, 10% of those ideas will succeed, built in Ruby, and get bought by larger companies for their customers and engineers.
Which means that a flood of badly-built Ruby apps is coming, and it’s coming because building in Ruby was exactly the right thing. And a whole generation of grizzled enterprise veterans are going to see nothing but Ruby apps which were (intentionally, correctly, appropriately) built with the absolute maximum amount of technical debt, in absolute minimum time, assuming it would all get rebuilt.
If Ruby keeps being the best, most powerful, most appropriate way to validate your app idea, it will remain forever a technical laughingstock.
The kind of engineers who ignore technical and business merits and just go based on what their Enterprise buddies say will always think Ruby is a ridiculous toy language and all Ruby code sucks.
I won’t need to work with them ever again.