Ruby VMs

Last year at FOSCON (and the next day at OSCON), _why showed the first animated installments of his “Least Surprised” cartoons, to the delight of all present. In one of them, Time.now.is_a? MagicTime, Malsky asked his audience to imagine what Ruby will be like in three years. The first suggestion? “Maybe we’ll have our own virtual machine by then.” Malsky was appalled. “No, no! Come on, guys! Three years? Ruby will have ten virtual machines built inside every metaclass by then. Be creative!”

For several of us sitting in the back, “ten virtual machines built inside every metaclass” was one of the biggest laugh lines of the evening.

Of course, it’s still absurdbut maybe only by two or three orders of magnitude instead of four. I’m amazed at what’s happening in the world of Ruby and high-performance virtual machines. I’m personally aware of seven (!) projects to either build a Ruby VM or implement Ruby on an existing VM:

  • Of course, there’s YARV.

  • JRuby, which has been around for a long time as a Ruby interpreter, is starting to become a true bytecode compiler in the Jython style.
  • There are no less than three projects to implement Ruby on the .Net CLR, building on the lessons of IronPython.
  • The Cardinal project, to implement Ruby on Parrot, has been restarted by Kevin Tew. (And Parrot itself is making serious progress again, after some difficulties.)
  • Finally, there’s a project underway to implement Ruby on Nicolas Cannasse’s Neko VM.

Naturally, there’ll be some winnowing of these options over time. But it seems clear that the Ruby community will end up with at least three solid VM options: YARV, JRuby and some variety of Ruby on the CLR. The core Ruby developers are strongly committed to YARV. The CLR version is too important not to do (and to my mind, last week’s announcement of IronPython 1.0, still as an open source project, makes a mature Ruby implementation on the CLR even more likely). And of course, Sun has now hired the two main JRuby developers, throwing at least some of their weight behind that project.

Come on, guys! Three years? Ruby will have three virtual machines that’ll run in every kind of IT environment by then. Be creative!

(And there is still room for serious creativity there. I’ll write more about that soon.)

Bummer Summer

I’ve been quiet here for a while. Mostly I’ve just been busy, but the reason I’ve been so busy is that the summer was one disaster after another.

OK, that’s not quite fair. There was a lot of good stuff this summer (including RailsConf and OSCON, which were both terrific), and sometimes I went for several days at a stretch without anything bad happening. But it did seem that every time I turned around, there was some new setback.

  • I started the summer with a recurrence of a strange networking problem on my laptop that had plagued me earlier in the year. This time I finally found the cause: Salling Clicker, left running in a state where it was searching for my phone. Apparently Bluetooth and AirPort share enough of the networking stack that one can really interfere with the other. But I lost a couple days to messing around with this before I finally figured things out and got it fixed.
  • In early July, my wife’s grandmother died. She was a wonderful lady, and very dear to me; of course, that week was difficult for the whole family.
  • Two weeks later, I got hit hard by a strep infection. I nearly had to cancel my appearance at the Des Moines NFJS, but started feeling better just in time. (I would have hated canceling, because I’d already had to skip the Austin show due to the funeral.)
  • But then again, maybe I should’ve canceled, because just as I stood up to give my first talk in Des Moines, my hard drive crashed. It was fun getting through five talks without a laptop! (Eitan Suez and a couple of the attendees lent me their laptops for three of the talks, which helped a lot.) Due to my travel schedule, my backups were a bit out of date, so I lost about 4 weeks of email.
  • I just barely got the new drive installed, and the restore completed, before I had to take off for OSCON. And when I got back, my DSL service was out. It was out for 16 days! Needless to say, a change in ISP is in the works.
  • Two weeks ago, I came down with strep again. Because I’d had strep so recently, this time they gave me a really powerful antibiotic, which makes sense, and I felt better pretty quickly. Unfortunately, they didn’t really warn me about that, so I didn’t take some necessary precautions, bringing us to:
  • Now I have thrush. Yucko.

Oh well … I’ll stop complaining now, and I’ll start writing about more pleasant things soon. :-)

JMatter

I was thrilled to learn today that my friend Eitan Suez has released his JMatter application development framework as open-source software.

I’ve been a huge fan of the idea of Naked Objects since I first saw Richard Pawson talk about the idea at OOPSLA in 2000. (He called the idea “expressive systems” then, but only the name has changed.) I introduced the idea to Dave Thomas at OOPSLA the following year, and he began spreading the word through a series of talks at NFJS symposiums.

Unfortunately, programmers who became interested in Naked Objects as an application-development strategy frequently turned away from it again after becoming frustrated with the poor quality and design of the default naked objects application framework. Eitan, however, took a better approach: he decided to write a better framework. And he wrote it in the context of a real application he was developing for his employer, which is always the best way to drive framework design: validating ideas in the crucible of real-world constraints. The resulting framework is JMatter, and it’s a great tool. If you’ve ever wanted to explore Naked Objects as a way of building cool, powerful business applications quicklyor if you’ve already tried Naked Objects but decided it wasn’t ready yetyou owe it to yourself to give it a try.

(Disclaimer: my enthusiasm for JMatter has nothing to do with the fact that my visage is prominently featured in one of Eitan’s sample application screenshots. Quite to the contrary, in fact. :-)

Buried Treasure

The NFJS 2006 Anthology is available for pre-order. The book is an excellent collection of articles by NFJS speakers, based in most cases on talks we’re giving during this year’s symposiums. Neal Ford did a great job as editor, and it’s being published (of course!) by the Pragmatic Bookshelf, which means you can get a paper copy, a PDF, or a combination.

My article is a bit unusual. Rather than expanding on one of my talks, I wrote instead about a common theme that characterizes many of my recent talks: old ideas or technologies that are showing their worth again in the modern software development climate, and the importance of knowing the history of our field. The article is called Buried Treasure, and I’m thrilled that it’s been selected as one of two articles that are available on the website as teasers for the book. I’ve love to hear your feedback!

Must Nip This in the Bud

subscribe via RSS or JSON Feed