This post originated from an RSS feed registered with Agile Buzz
by Glenn Vanderburg.
Original Post: Ruby VMs
Feed Title: Glenn Vanderburg's Software Blog
Feed URL: http://www.vanderburg.org/cgi-bin/glv/blosxom/Software?flav=rss
Feed Description: Glenn Vanderburg's blog about software development
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 absurd — but 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:
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.)