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
|