Making Squeak Fly ( Was: Re: Where Squeak is Headed [was: Module discussion] )

Dan Ingalls Dan at SqueakLand.org
Fri Nov 8 15:54:16 UTC 2002


Brent Vukmer <bvukmer at blackboard.com> asked...

>Are you / is anybody doing work on typing a la StrongTalk?  To quote from your post awhile ago in the "Animorphic ST (Strongtalk) released!" thread:
>
>>>  Would the system benefit from being cast into StrongTalk?
> >>  and how much work would this be?

I don't know of anyone actively pursuing this right now.

>By "would the system benefit" I assume that you meant primarily something like what you said in the same post:
>
> >>  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.

Yes, exactly.

>I know there was a lot of discussion about this question., on that thread.  In light of that discussion and further reflection, do you think there is a compelling case for  introducing  Squeak-friendly types system?  Also, has anybody done the analysis on how much work would have to be done?

Yes.  To say a "compelling case" to me sounds like the language "should" have types, which I don't really feel.  But I do feel, and have always felt, that it would be wonderful to have type information *available* both for documentation and for possible extra leverage for novice users.

>  >>    Would anyone care if it ran 10 times faster?
>
>OK, I'm an ignoramus.  Let's call the speed gains from typing a la StrongTalk, A, and let's call the speed gains from J5, B.
>
>Would J5 and  types together equal a speed improvement of A + B? 
>Or does the stuff Ian is doing with J5 involve some kind of magic typing behind-the-scenes, so that A + B ~ B? 

Yes, Jitter does do some of this behind the scenes (as does the StrongTalk VM).  Most of the StrongTalk speed came from similar tricks in the StrongTalk VM.  They used the type info to advantage later on, but I believe this was not the big win.  My feelings about where we are right now are...

1.  Ian has a beautiful new architecture for J5 that hasn't even been optimized yet (of course I haven't seen the latest ;-).  I want to see how it does before tampering with the language.

2.  Some people are experimenting with mix-ins and with alternatives to mix-ins to factor the kernel (and anything else) more cleanly.  I want to see where these experiments lead.  It is great to have StrongTalk as a basis for comparison in simplicity and power.

3.  Regarding a type system for Squeak, I would really like to see this done in a non-invasive manner.  That is, there would be a type system and type inference mechanism, it would not even be seen by the casual programmer, it could be turned on at any time, and stable releases would be "clean" with regard to the types, and any associated documentation could leverage off that information.

>Dan Ingalls wrote:
>
>>
>>Jitter
>>One of my goals over the next few months is to continue to encourage Ian to complete J5, the latest incarnation of his dynamic translation technology applied to Squeak.  On the last serious go-round, it helped a lot to have Marcus Denker tracking down bugs, beating compilers into line, etc, and Ian may well need this kind of help with J5.  I'm not the right person, but I would certainly lobby to hook people up at any point where Ian could use help.  I haven't seen anything about it, but I'm assuming Ian will be showing and talking about his work at OOPSLA.  Jitter is a prime example of why I hope we can keep the Croquet and Squeak kernels in sync:  I doubt that Ian wants to maintain more than one version of J5, and I know both Squeak in general and Croquet in particular, could always use an extra 2-5x in performance.
>>
>>
>> 




More information about the Squeak-dev mailing list