Animorphic ST (Strongtalk) released!

Marcel Weiher marcel at metaobject.com
Tue Jul 16 20:24:56 UTC 2002


On Tuesday, July 16, 2002, at 07:49  Uhr, Dan Ingalls wrote:

> 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".

Why does that make me thing of the wonderful litttle cartoon "Bambi 
meets Godzilla"?  :-)   [And no, I don't know, I don't even think I 
could say which is which...]

> 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.

Agreed.  In my experience, optional typing definitely helps with 
documenting both system-wide communication patterns and mono- or only 
slightly polymorphic local/instance variables.

> 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.

YES!  Down with Slang! (with apologies to the creators of that wonderful 
hack!)

> 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).

And wouldn't we be able to go even better with an Animorphic-style 
system?  Couldn't we eliminate of gnarly, hand-tuned system/slang/plugin 
code and replace it with *real* Smalltalk and let the optimizer make it 
good?

> Some questions are:
>
> 	Would the system benefit from being cast into StrongTalk?

Good question.  My experience with Objective-C's optional typing has 
been mixed.  While I *think* it would be useful to slowly solidify 
interfaces as code settles near the core, my practical experience has 
been that by the time code was settled, there wasn't much of a point in 
typing it.  Also, the type-system seemed to get in the way at times 
where it wasn't able to express idioms that I had found useful.  Of 
course, Strongtalk is probably more powerful, and a Smalltalk 
type-system would be able to grow with the system.

> 		and how much work would this be?

Aren't we doing some of this work for modules, making dependency 
structures visible?

> 	Would anyone care if it ran 10 times faster?

Yes, I think that would make a significant difference.  Having more 
speed to burn enables greater levels of abstraction to be used.  
Especially with a system that seems to be able to "burn through" layers 
of abstraction to always arrive at a very similar and nearly optimal 
executable code.

It seems to me that a lot of code is still implemented in a fairly 
low-level, gnarly/procedural sort of fashion.  I am almost sure this is 
related to implementors avoiding higher levels of abstraction for 
performance reasons, maybe even without thinking.  I certainly know that 
coding in Objective-C frees me from some of the performance worries I 
have when coding in Squeak, a liberating effect.

> 		and how much work would this be?

A lot?  I've never done a real VM, so all this seems very daunting to me.

> 	Would it be fun to do?

:-)))

Marcel

--
Marcel Weiher				Metaobject Software Technologies
marcel at metaobject.com		www.metaobject.com
Metaprogramming for the Graphic Arts.   HOM, IDEAs, MetaAd etc.




More information about the Squeak-dev mailing list