I spent Friday through Sunday at RubyConf in Denver; a small, friendly, educational gathering. The Ruby community is nice, and I’ve already praised the technology enough; but the future is a bit opaque.
There are people here older than me—a handful. It’s a fairly standard-feeling OSS crowd. Ruby has a serious demographic problem, pervasive in high-tech but worse here: there aren’t any women (maybe five among the 300 or so attendees).
The tech culture is Mac-heavy and text-heavy; a lot of talks started with one or two creamy-smooth glamorous Keynote slides then switched into command-line windows where the presenter interacted (live or recorded) with the system. Even the regular prize draws (for books) were accomplished by a 3-line on-screen Ruby script that selected a random record out of a YAML file of the attendees.
I can’t say enough good things about Chad Fowler, Rich Kilmer, and David Black, the Ruby Central guys who made it all go.
The Big Story · Let’s start with a picture.
Above, you see the Ruby Implementors’ summit. Pardon the awfulness of the shot; whatever skill it takes to get decent-looking interior shots in dark rooms with a flash, I don’t have it.
“Implementors’ Summit?” you ask. No, these aren’t just the people working on Ruby the program; these are the people working on alternate/future versions of it, including JRuby, RubyCLR, Rubinius, YARV, Cardinal (Ruby on Parrot). If Ruby is a good language (it is) and people like using it (they do), why is all this going on? One reason is that Ruby, compared to the competition like Python and Perl, is kind of slow. Obviously, there are lots of applications, like the kind Rails builds, where the bottlenecks are the Web and the database and so on, and Ruby doesn’t get in the way, but there are other applications where the performance really is a problem. While there’s another version of Ruby coming along to address this, there’s still a lot of interim concern. It looks like one substantial win came out of the meeting: an agreement to work to aggregate and share test suites across all the implementations.
There are a couple of other perceived problems with the current version of Ruby; its lukewarm support for Unicode and the general weakness of its built-in XML parser (for which, fortunately, there are alternatives). So there is hunger for fresh new versions of Ruby.
The Mainstream · There is a fresh new version of Ruby coming, to be called Ruby 2.0. It’s being designed mostly by Matsumoto Yukihiro, the inventor of Ruby, universally called Matz. It will feature YARV, a new virtual machine, being built by Sasada Koichi (his online handle is “Ko1” which is funny if you know a little Japanese).
The problem is that Ruby 2 is not expected much before Christmas 2007.
Matz · He is cheerful, thoughtful, and charming; he provides fairly eloquent leadership of the Ruby community even though he has to shout across the notoriously-difficult Japanese-English language chasm.
His keynote used the familiar bikeshed-at-the-powerplant meme in a fresh new way (“Let’s turn all the Ruby 2 design problems into bikeshed problems”). He acknowledged the pressure for a new and better Ruby, but clearly it’s not bothering him very much; Ruby will be done in late 2007 and that’s when it’ll be done and that’s that.
His centeredness and calm has a Buddhist feel (actually, he’s Mormon). I’m not 100% sure he really understands the intensity of the language fermentation he helped launch, now propelled by PHP and Rails and TDD and loss of patience with frameworks that feel too big and heavy and languages that feel too verbose and persnickety. On the other hand, perhaps Matz just doesn’t see it as his problem; he’s concerned with shipping a beautiful and useful tool, not with what the Western business world sees as opportunity costs.
As of now, Rails continues to grow its fan base, Ruby books sell like hotcakes, and a surprising number of developers here and there around the world are just quietly using to Get Shit Done. Almost anywhere you are, there’s a Ruby Users Group or a Ruby Brigade meeting monthly.
Right now, I think it would be good for Sun and good for the Java community and good for the industry if a whole lot more developers started looking seriously at Ruby , either standalone or on the JVM. I’m making that case a lot, and it would be an easier case to make if I didn’t have to acknowledge Ruby’s performance and Unicode issues. But those of us making that case are having an impact anyhow.
Maybe Matz is right.
And anyhow, with all these alternate-implemenation projects under way, I’d say Ruby’s bets are pretty well hedged.
The Rest of the Conference · I’d write it up but there’s no need; Curt Hibbs has aggregated the blogs and Nick Sieger is capturing the whole thing blow by blow. My favorite talks were Laurent Sansonetti from Apple on using Ruby to automate OS X (No more AppleScript! Yay!), Nathaniel Talbott on Open Classes, Open Companies, and Zed Shaw on Fuzzing, if only because of his minimalist gonzo slides, including a full-motion full-colour ASCII-art Japanese rock video; something you don’t see every day.