This post originated from an RSS feed registered with Agile Buzz
by Glenn Vanderburg.
Original Post: Ruby and Strongtalk (or, What He Said)
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
Because I was pressed for time yesterday, I ended my blog
on Ruby VMs with a little teaser about other possibilities: "And
there is still room for serious creativity there. I’ll write more
about that soon." About two hours later, Avi Bryant posted essentially the same thing I was
going to say.
Avi has blogged before about
the idea of implementing Ruby on an existing, fast Smalltalk VM (the object
models of the two languages are very, very close; the biggest hurdle would
be Ruby’s richer method argument handling).
But, as Avi points out, the open-source availability of Strongtalk, including the VM
implementation, is a big development. Although it’s now ten-year-old
technology, Strongtalk nevertheless represents the state of the art in
dynamic language implementation. Strongtalks basic principles of operation
have been widely known for years (although apparently not by
Joel), but actual implementations of those ideas have all been in
proprietary products. (The Hotspot source is available, but not as widely
as a true open-source products.) For OSS developers who want to learn, the
closest they could get to a cutting-edge dynamic language implementation
has been Self. But although the
techniques in Strongtalk originated in Self, the Strongtalk team took them
a lot farther.
Sun’s HotSpot VM for Java already incorporates these techniques, so
JRuby is already on track to take advantage of them. I don’t know
that much about the CLR, but it wouldn’t surprise me to learn that it
uses similar ideas, which bodes well for IronPython and an eventual Ruby
implementation for the CLR. But there’s still a performance
limitation imposed by the mismatch between object models, and the
unavoidable mapping layer that implements one atop the other.
Mr.
Malsky, I predict that in three years, Ruby will have performance
rivaling Strongtalk’s — whether by someone adapting Strongtalk
itself to run Ruby, or by mining it for techniques that can be rolled into
YARV or some other VM project.
(Well, maybe three years is a bit optimistic. But I can hope.)