What will be Ruby's legacy?

posted by
pete

This month, I’ve been hacking Ruby for four years!

I caught wind of Rails’ release a few weeks behind the curve, and when I tried to run it, I admit I didn’t get very far… but that was largely because I was a Microsoft VB/ASP developer, and since I couldn’t believe what I was seeing — ActiveRecord sounded like an April Fool’s joke on newbies — I assumed that it was too good to be true and got distracted. However, it kick-started my exploration into Ruby; it was blocks and iterators that got me. Most importantly, it planted serious doubt that anything on .NET was going to be that cool.

A few weeks later I met Ryan McMinn, and he helped me fire all of my terrible clients. To be clear, some of these clients are good friends today; it doesn't change the fact that they were terrible clients. We started adapting some of his Access database clients to work on the web with ASP/IIS, which was seriously showing its age. When new opportunities came up, we had a chance to try something new. The obvious choice: C# running on ASP.NET v2.

That project was a disaster! I felt like every time I had a good idea, the framework kicked me down the stairs for being insolent. ASP.NET should be re-branded as Bank Portal Studio, Drone Edition. Luckily for us, Rails was looking more and more mature every day, and we sent out a press release to everyone we knew suggesting that we would be building all future projects on this new open source framework that nobody had ever heard of.

Not only was I a rank amateur Rubyist, but I couldn’t even force my partners to sit through the “blog in 15 minutes” video because it had too many console commands. Anthony was a designer, and he used Windows… so why was I showing him script/generate commands? Clearly, Unspace was borne of a true “act first, apologize later” philosophy. We knew that someone was going to form the Rails A-Team, and it might as well be us!

Four years later, I’m still a rank amateur. My grandfather was a brilliant inventor, and he once told me, “The more you know, the more you realize you don’t know.” He also told me that I was stupid for thinking I really knew much of anything at all, since I was about 8 and only knew BASIC — on just one microprocessor!

Folks in Ruby tend to write a lot of nostalgic, self-aggrandizing bullshit, though. You see a lot of "MY MY, THE COMMUNITY HAS EVOLVED INTO SOMETHING SPECIAL" and talk of changing the history of software development. I'm all for progress, and as a musician, I understand the function of hype in generating momentum. But sometimes we need to get real and be a little more harsh in our own self-analysis. I liked what Tom Preston-Werner said about "death-bed filters" at RubyFringe; if you ever have to ask yourself whether something is a good idea, picture yourself answering the question at the tail end of your life. Maybe it wasn't even good or bad, but just insignificant or forgotten altogether.

So if we took a rare, super macro-view look at what the Ruby phenomena might have done for software, technology, and humanity, what have we really gained that might not have happened otherwise?

  1. Ruby has proven to be a popular evolutionary language for PHP developers. Many PHP developers are self-taught amateurs with no formal CS backgrounds. This led to a more egalitarian, “nobody knows you’re a dog” bazaar community. By contrast, hundreds of thousands of dudes with Java degrees from the cathedral on the hill saw PHP as a toy language with script kiddies brutally hacking together forums and content management systems. It wasn’t taken seriously or seen as a solution to important problems.

Well, the script kiddies have grown up, and they like Ruby now. Except, it’s pretty hard to call JRuby, IronRuby, and soon MagLev toys.

Suddenly, the preferred solution of self-employed amateurs without a formal education is frequently perceived as superior to those so-called real languages.

  1. Ruby has captured the hearts and imaginations of artists and the poets.

  2. The Matrix made geeks cool. David made geeks into eloquent supermodels. And Zed is like our own Most Interesting Man In The World. “Stay DRY, my friends.”

  3. Ruby somehow made testing cool. This is bewildering, but suggests a future where our children do not know the Blue Screen Of Death.

  4. In Ruby, it’s cool to learn all about things that used to be the realm of the academic elite: functional programming, parallel processing, finite state machines, compiler optimization, MapReduce… and really, how did Erlang suddenly become Playmate of the Year?

I was reading an article about MapReduce on the consistently excellent RailSpikes blog, and it reminded me of a rant that former UnCov blogger Ted Dziuba posted earlier this week about how Hadoop was real technology developed in a real language and that Ruby was just a bunch of script kiddies posting shitty MapReduce tutorials on their blogs.

I laughed at the time, because Ted is a seriously smart guy who happens to be such an asshole that he gets away with it. However, upon consideration, I’ve decided Ted is wrong because he’s not taking the long view. Let’s face it, people with access to special power or information are always threatened by a future where their pet special thing is now common and mundane. This happens when an indie rock band becomes too successful for their fans to consider them cool, even if successful is being able to go on tour and make enough to record another album.

Check out this refreshing post on GigaOm about how undersea cable laying often suggests imminent economic growth. Given my above points, I think that if the script kiddies are responsible, pragmatic and eloquent artists who teach themselves functional programming because it's cool... well, that's a future I'm proud to be a part of.