January 9th, 2008

hack is cool

Just when you think you're the only one suffering...

...you happen upon a really cool blog post that reaffirms what you've always believed - genuine talent goes unrewarded. The author Zed Shaw has for a long time been well-known in the Ruby scene because of his cool code and ingenious projects like the Mongrel web server, so to see him laying down home truths is refreshing even if the fact that he's walking away from the language is a sad blow - along with Why and the JRuby team he's been one of the most creative people in the community and his cleverness will be sorely missed.

Ruby is one of the coolest languages I've encountered in twenty-six years of learning new languages. I try to learn every new language I meet and that's why I got into coding in the first place - to develop languages and understand how a few statements that looked roughly like English could make a machine that only understands 1s and 0s perform interesting tasks. I know that language geekery in the linguistic sense is a minority interest amongst developers, most of whom only want derivatives of C (C++/Java/C#, etc.), but that's what sucked me in aged eleven, and that's what keeps me here today.

So when I say I love Ruby, it's not because of the hype or because of any particular implementation. It's because linguistically it's a beautiful and powerful language, the marriage of Lisp's elegance with Basic's simplicity. It's the language I wish I'd had when I first started out, and by now I'd actually be as good a Lisp hacker as I've always aspired to but never quite pulled off.

But Ruby has a problem. Well a couple of problems really. Current implementations still lag behind where I'd like performance-wise - kudos to both Charlie and Ezra for their respective implementations, but most of us are still using Matz's and that's pretty sluggish. Those kind of problems get solved with time though, so it's no biggy. Far more troubling though is the cult-like following that camps on the language's fringe.

Collapse )