Cincom Smalltalk's VisualWorks is a rich, portable Smalltalk VM and image suggested to me by Peter Suk as a target VM for porting Ruby. The software installs easily under Windows (well, you need to unpack it yourself and set up the Windows file assocation, but the instructions are clear) and runs beautifully. It makes me wistful for Smalltalk and happy to port Ruby to such a nice environment.
7 comments:
Porting Ruby to a Smalltalk VM? Isn't that just slightly perverse? :-)
Well, yes. :)
Actually, since Smalltalk and Ruby have such similar object models and feature sets (once you strip away the syntactic sugar coating), the goal is to have higher-performing VM for Ruby and a great development environment to boot.
Efforts to get Python running on the VisualWorks VM have been ongoing for a while now. On the surface, Ruby is a better fit, so I wouldn't call the idea perverse.
I'd rather see Smalltalk reclaim some lost ground than muddy the waters by porting Ruby to the VM. The syntax is so similar that I don't really see the benefit of porting Ruby, and I consider Smalltalk to be more powerful, (or at least, more internally consistent) so the question, 'why bother?' springs to mind.
Because it is interesting to do.
The largely unrealized truth about computer languages is that they are really cultural artifacts first and technology second, much the same way that a written language is a cultural artifact. The Ruby community is remarkable for its positive culture and its ability to attract attention from many who otherwise would have had nothing to do with Pure Object programming. OO and Smalltalk would both gain from an even stronger Ruby community. And in the end, the idea of Pure OO remaining vital and growing is more important than any particular language. (And even more important, the ideas that underly OO!)
Oh, and to head this off: YARV (Yet Another Ruby VM) is already 50x faster than the Ruby 1.8 VM. But there are other reasons for porting to Smalltalk than speed. One of the major goals is to give the Ruby community something like the Refactoring Browser.
Post a Comment