Hello,
On Tue, 16 Jul 2002, Dan Ingalls wrote:
Nathanael Sch�rli n.schaerli@gmx.net wrote a while back...
Besides the code itself, the webpage also contains the "History" of this ST implmentation, which is pretty interesting.
[Yes, I heard about this independently from David G].
This is definitely a landmark piece of work, and it's great to have it finally out in the open. Ever since talking with Gilad & Co. about it, there has been this little plex in the back of my mind along the lines of "Squeak meets StrongTalk". The first component in this gestalt is that I think type annotations are useful as documentation, and I have always felt (and often said) that a Smalltalk with optional types would be an ideal computing environment. It really fills a hole in the metasystem. The second component is a sort of BOBW (best of both worlds) notion that with the cool aspects of Squeak and its numerous multimedia facilities, together with what is arguably the fastest execution engine going, we could at least have a lot of fun. The third component has to do with applying the Squeak philosophy to what otherwise appears to me as a daunting project. The Animorphics VM is (I would suggest) a programming tour de force. I have always been paralyzed when considering such projects (and this goes for, eg, the SELF compiler, too), by the thought that I would burn out simply dealing with so much complexity all in C or worse (if you can imagine that ;-). The whole idea behind Squeak (well, not the whole of it, but the implementation approach) was that we could write it in the language we already knew, and it would be easy to understand and test. I don't see why we couldn't do the same thing for an engine similar to the Animorphics VM (Ian and I have also talked about doing the same kind of thing for Jitter).
Some questions are:
Would the system benefit from being cast into StrongTalk? and how much work would this be?
Would anyone care if it ran 10 times faster? and how much work would this be?
Would it be fun to do?
Comments?
I would answer positively to all of these questions.
Lee Salzman (the Squeampiler author) and I have been working on a multi-method dispatch language taking Smalltalk's syntax with Self's object model. Type declarations and argument dispatches are optional on each block argument, and methods are simply named closures. We have found a lot of code to translate from Squeak very well.
What we are doing with it right now is moving from a bare interpreter to a self-hosted VM with (eventually, but at a high priority) a dynamic compiler that will be able to do all of the interesting things discussed in StrongTalk, etc. while being totally self-hosted. Lee is working on the implementation, and I on the user space. I am cross-breeding Morphic with the interface of the Symbolics Genera operating software, CLIM, using the advice of some CLIM developers. This will be Free software, so both Jecel's Self/R effort and Squeak should be able to benefit, even if you find the particular language unsettling.
We only started this project in late March, and have now amassed about 10 thousand lines of working code, with probably about a year's more development work to reach 'industrial' state. Once our basic bootstrap is done, we'll publish the code and some tutorials and documentation explaining how to use the system.
- Dan
Brian Rice ~