Theresa O’Connor

Ruby: Perl done right

I just read this awesome programming languages rant from former Amazon (and current Google) employee Steve Yegge, which Bill Clementson linked to. You should read the whole thing. I blogged the part about Emacs, but wanted to highlight what he has to say about Ruby:

Every 15 years or so, languages are replaced with better ones…

Ruby stole everything good from Perl; in fact, Matz, Ruby's author (Yukihiro Matsumoto, if I recall correctly, but he goes by "Matz"), feels he may have stolen a little too much from Perl, and got some whale guts on his shoes. But only a little.

For the most part, Ruby took Perl's string processing and Unix integration as-is, meaning the syntax is identical, and so right there, before anything else happens, you already have the Best of Perl. And that's a great start, especially if you don't take the Rest of Perl.

But then Matz took the best of list processing from Lisp, and the best of OO from Smalltalk and other languages, and the best of iterators from CLU, and in fact the best of everything from everyone.

And he somehow made it all work together so well that you don't even notice that it has all that stuff. I learned Ruby faster than any other language, out of maybe 30 or 40 total; it took me about 3 days before I was more comfortable using Ruby than I was in Perl, after eight years of Perl hacking. It's so consistent that you start being able to guess how things will work, and you're right most of the time. It's beautiful. And fun. And practical.

This is spot-on; Ruby is Perl done right.

Chris is running (and I'm hosting) a weekly get-together at which several of us are trying to get up to speed on Ruby by working on some personal programming projects (specifically, Rails applications), and I have to say it's been quite awesome. Very refreshing, given all the PHP I've been writing at work lately.