[newbie] how does Object implement new?

Stephane Ducasse ducasse at iam.unibe.ch
Fri Mar 30 07:43:17 UTC 2001


on 3/30/01 3:21 AM, Alan Kay at Alan.Kay at disney.com wrote:

> There's Dan's classic POPL paper from 1978 which contains a one page
> diagram that shows the whole story.
> 
> I don't have the URL handy, but this paper is available on line and
> I'm sure someone in the Squeak list will furnish the URL.
> 
> Also, Pierre Cointe has often used the ST-76 metasystem as his model
> for his ObjVLisp work. There are some good descriptions there.

If you want I have a complete implementation and tutorial of ObjVlisp is
Smalltalk: 

http://www.iam.unibe.ch/~scg/Teaching/Reflective/


> Dan has threatened to get ST-76 going (and in fact the rebirth of
> Thinglab required some of it to be done). One of these days it will
> live again (this was my favorite of the post -72 Smalltalks). Every
> feature really paid its way.

Hi Alan 

The problem with ObjVlisp like model is that the composition of metaclasses
is really THE BIG problem. In fact, this is true that with current Smalltalk
implicit metaclass we lose the possibility to reuse metaclasses but at least
the composition is safe and people have been buidling great software with
it.
I'm not convinced that with the simple ObjVLisp model we could do something.
Anyway interested readers can read the excellent paper of Noury Bouraqui in
OOPSLA 98 on Safe Metaclass Composition. All the problems and solutin are
explained. 







> Cheers,
> 
> Alan
> 
> -------
> 
> At 6:42 PM -0500 3/29/01, Stephen Pair wrote:
>> Are there any papers (or code) for Smalltalk-76 on the web?  I'm sure
>> they've been announced before (and wasn't there an implementation of it for
>> Squeak?), but I've forgotten.
>> 
>> - Stephen
>> 
>>> -----Original Message-----
>>> From: Alan Kay [mailto:Alan.Kay at disney.com]
>>> Sent: Thursday, March 29, 2001 5:22 PM
>>> To: squeak at cs.uiuc.edu
>>> Subject: Re: [newbie] how does Object implement new?
>>> 
>>> 
>>> Or look to see how Smalltalk-76 did it ....
>>> 
>>> Cheers,
>>> 
>>> Alan
>>> 
>>> ------
>>> 
>>> At 5:40 PM -0500 3/29/01, Jecel Assumpcao Jr wrote:
>>>> On Thursday 29 March 2001 14:37, Karl Wilson wrote:
>>>>> why doesn't it say something like:
>>>>> 
>>>>> ProtoObject class subclass #Object class
>>>>> 
>>>>> instanceVariableNames: ''
>>>> 
>>>> When you do "ProtoObject subclass: #Object ..." this method takes care
>>>> of all these little details automatically.
>>>> 
>>>>> and why can't you spawn a class side heirarchy?
>>>>> 
>>>>> Behavior
>>>>> ClassDescription
>>>>> Class
>>>>> ProtoObject class
>>>>> Object class
>>>> 
>>>> Ooops - I had said you would reach "Behavior class" but that was wrong.
>>>> Since the system created all these metaclasses behind your back and
>>>> doesn't even bother to give them proper names, showing them like this
>>>> would probably cause more confusion. It is easy to patch the tools to
>>>> do this, but I don't think it is a good idea.
>>>> 
>>>>> I am sure this will all make sense after awhile. Thanks again.
>>>> 
>>>> Others have given a lot of great pointers to more information about
>>>> this than most people want to know. I prefer the alternative adopted by
>>>> the Self dialect of Smalltalk - simply design this complication out of
>>>> the language! http://www.sun.com/research/self/
>>>> 
>>>> -- Jecel
>>> 
> 





More information about the Squeak-dev mailing list