OK, I admit it. I was wrong about Ruby.
I used to talk a lot of shit on Ruby, for a few reasons.
First and foremost, I reflexively dislike and distrust anything that smacks of Flavor-Aid. Most of the reasons why are between my shrink and me; but if nothing else, we’re a very small company that can’t really leap around from Next Big Thing to Next Big Thing. Trying to sell me on magic beans makes me think you’re an asshole, no matter how much you stand around waving your arms and telling me how great they work. Your use case is not mine, and never will be, so stop pretending This Time, I’ve Solved All Your Problems!
Second, on a purely technical level, I wasn’t really convinced that the particular paradigm offered by Ruby was actually a benefit for the rank-and-file down here in normal-land. Did my fellow programmers really care about OO, or blocks, or closures?
Third, I had performance concerns, and I’d heard nothing but “zOMG IT DOES NOT TEH SCALE”. I am my own ops team, and if the pager goes off at 3am too many times, that makes me (not to mention, my wife and dog) unhappy. If the application is performing slowly, I don’t get pithy blog posts or @ replies: an ACTUAL person ACTUALLY calls ME on the phone, PERSONALLY, and tells me I’m an asshole. Over, and over, and over. Even if it means I can’t get any work done and fix their problem.
Every time I saw a Fail Whale, I imagined a passel of angry calls, I heard my name being compared to various bodily excretions and infamous historical figures, I replayed the threats of lawsuits and physical violence against me. Yeah, I know there’s scaling issues at Twitter that were independent of Ruby and Rails, but if nothing else they’re all supposed to be hot-shit Silicon Valley startup hackers, and I’m just some asshole in Manassas. If they can’t make the magic happen, how am I supposed to?
So I really wasn’t interested in Ruby. But things change.
First it looks like they’re on their way to fixing the performance problems. I can’t say that it’s sweetness and/or light, yet, but it seems like it’s now a much, much safer bet for enterprises of our size. I’m more and more optimistic that we’d be able to scale to our planned levels without adding a ton of hardware and software infrastructure.
Second, I guess I’ve matured since the last time I hacked on Ruby. I no longer find it unpleasant; in fact I’m usually smiling when I’m fiddling with it. I assume this is because I am “over” whatever learning curve hump was in my way the last time I fiddled with it. I “get” that paradigm thing.
And yes, I’ll go ahead and say it: I have some of that new-toy-on-Xmas-morning enthusiasm that drove the early adopters to frenetic heights of annoying bullshit. I inadvertently tasted the Kool Aid and now I like it.
There’s a lot of reasons to want to ditch PHP for Ruby. Some of them are the boring ‘zOMG TEH SUK’ arguments you read about in every blog post; see here or here or here or here or here if you need pointers. I can’t say I agree with all of that, or maybe even most of it; but I’m starting to see more and more of it.
The other problem I want to solve is specific to our enterprise: we use too many fucking languages. Reducing that by one would, I believe, be a powerful force multiplier. If I can cut down the number of times I context switch in a day, I can be more productive. So far, tools like Phing helped – I like Phing – but in 10 minutes of playing with Capistrano it’s clear who the “winner” is.
I starting wondering why I was using Rails-alike platforms, when Rails is “right there” and clearly not standing still (see here, for example). There are plenty of interesting ideas in the Rails-alike-osphere but Rails is clearly not the dogmatic monolith it seemed to be.
So there you go. Call me a Kool-Aid drinking hypocrite, if you wish. I won’t argue. I have Seen The Light, I’ve Come to Jesus. I know the path to enlightenment. I’m an annoying Ruby prick now, I guess. Hey, guys, what’s the secret handshake?



