On Thursday 29 March 2001 18:42, 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.
This one is great:
http://users.ipa.net/~dwighth/smalltalk/St76/Smalltalk76ProgrammingSystem.ht...
but doesn't mention meta-classes. On page 34 of Alan Kay's "The Early History of Smalltalk" paper there is a drawing labeled "Smalltalk-76 Metaphysics". All classes were instances of the class Class object, which was a subclass of the class Object. Little Smalltalk initially had the same design (which makes all classes have the exact same set of class methods) but has moved to a more Smalltalk-80-like system in version 4.
There is a simulation in Squeak of Smalltalk-72, not 76.
-- Jecel
Most importantly, class Class was an instance of itself, and class Object was a superclass of itself. The "magic of microcode" was what allowed those two relations to be circular. The explicit metaclasses of Smalltalk-80 really don't do enough work to justify their complexity IMNSHO. But, wait until after this summer .....
Cheers,
Alan
At 9:08 PM -0500 3/29/01, Jecel Assumpcao Jr wrote:
On Thursday 29 March 2001 18:42, 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.
This one is great:
http://users.ipa.net/~dwighth/smalltalk/St76/Smalltalk76ProgrammingSystem.ht...
but doesn't mention meta-classes. On page 34 of Alan Kay's "The Early History of Smalltalk" paper there is a drawing labeled "Smalltalk-76 Metaphysics". All classes were instances of the class Class object, which was a subclass of the class Object. Little Smalltalk initially had the same design (which makes all classes have the exact same set of class methods) but has moved to a more Smalltalk-80-like system in version 4.
There is a simulation in Squeak of Smalltalk-72, not 76.
-- Jecel
on 3/30/01 3:35 AM, Alan Kay at Alan.Kay@disney.com wrote:
Most importantly, class Class was an instance of itself, and class Object was a superclass of itself. The "magic of microcode" was what allowed those two relations to be circular. The explicit metaclasses of Smalltalk-80 really don't do enough work to justify their complexity IMNSHO. But, wait until after this summer .....
What will come after this summer;) Nathanael plans to work on that? This would be really great.
By the way, metaclasses are implicit in Smalltalk-80 not explicit ;)
I have the impression that a lot of other approaches could be experimented like the idea of pluggable metaclass that would decouple different meta aspect from the class. (I do not have a paper on that just discussed with Gilad Bracha from Sun).
Cheers,
Alan
At 9:08 PM -0500 3/29/01, Jecel Assumpcao Jr wrote:
On Thursday 29 March 2001 18:42, 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.
This one is great:
http://users.ipa.net/~dwighth/smalltalk/St76/Smalltalk76ProgrammingSystem.ht m>> l
but doesn't mention meta-classes. On page 34 of Alan Kay's "The Early History of Smalltalk" paper there is a drawing labeled "Smalltalk-76 Metaphysics". All classes were instances of the class Class object, which was a subclass of the class Object. Little Smalltalk initially had the same design (which makes all classes have the exact same set of class methods) but has moved to a more Smalltalk-80-like system in version 4.
There is a simulation in Squeak of Smalltalk-72, not 76.
-- Jecel
On Fri, 30 Mar 2001, Stephane Ducasse wrote: [snip]
By the way, metaclasses are implicit in Smalltalk-80 not explicit ;)
[snip] They're *anonymous* and "automatically created when you create a class". Does that entail that they are implicit?
While their creation is implicit in class creation (or rather part of class creation is to create an anonymous metaclasses), it seems that metaclasses are fully explicit parts (ok, entering rocky linguistic waters) of the system (i.e., they are real objects, you could name them, they are retrieved not lazily created, etc.).
Of course, at this point, I'm sure there's some precisie, technical meaning that I just don't know, but I'd like to!
Cheers, Bijan Parsia.
on 3/30/01 4:31 PM, Bijan Parsia at bparsia@email.unc.edu wrote:
On Fri, 30 Mar 2001, Stephane Ducasse wrote: [snip]
By the way, metaclasses are implicit in Smalltalk-80 not explicit ;)
[snip] They're *anonymous* and "automatically created when you create a class". Does that entail that they are implicit?
Literature :)
While their creation is implicit in class creation (or rather part of class creation is to create an anonymous metaclasses), it seems that metaclasses are fully explicit parts (ok, entering rocky linguistic waters) of the system (i.e., they are real objects, you could name them, they are retrieved not lazily created, etc.).
Of course, at this point, I'm sure there's some precisie, technical meaning that I just don't know, but I'd like to!
So the excellent paper: Safe Metaclass Composition of OOPSLA http://www.emn.fr/info/perso/ledoux/publis.html
Cheers, Bijan Parsia.
Now that's a teaser if ever I've heard one! :)
-----Original Message----- From: Alan Kay [mailto:Alan.Kay@disney.com] Sent: Thursday, March 29, 2001 8:35 PM To: squeak@cs.uiuc.edu Subject: Re: smalltalk76 (was: [newbie] how does Object implement new?)
Most importantly, class Class was an instance of itself, and class Object was a superclass of itself. The "magic of microcode" was what allowed those two relations to be circular. The explicit metaclasses of Smalltalk-80 really don't do enough work to justify their complexity IMNSHO. But, wait until after this summer .....
Cheers,
Alan
At 9:08 PM -0500 3/29/01, Jecel Assumpcao Jr wrote:
On Thursday 29 March 2001 18:42, 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.
This one is great:
http://users.ipa.net/~dwighth/smalltalk/St76/Smalltalk76Programmi
ngSystem.html
but doesn't mention meta-classes. On page 34 of Alan Kay's "The Early History of Smalltalk" paper there is a drawing labeled "Smalltalk-76 Metaphysics". All classes were instances of the class Class object, which was a subclass of the class Object. Little Smalltalk initially had the same design (which makes all classes have the exact same set of class methods) but has moved to a more Smalltalk-80-like system in version 4.
There is a simulation in Squeak of Smalltalk-72, not 76.
-- Jecel
On Thursday 29 March 2001 20:35, Alan Kay wrote:
Most importantly, class Class was an instance of itself, and class Object was a superclass of itself. The "magic of microcode" was what allowed those two relations to be circular.
Since you only follow the class pointer once, the first circular relation isn't a problem. But it would seem to me that a circular superclass relation would require a special termination test just as much as the current nil superclass one does. I would be very much interested in knowing what you can do in microcode that can't be done in assembly or C, specially since I am currently building a microcoded machine!
The explicit metaclasses of Smalltalk-80 really don't do enough work to justify their complexity IMNSHO.
They allow class methods and class variables (or is that class instance variables?), which I don't think are a big deal either.
But, wait until after this summer .....
Summer is just over down here (Brazil), so do I get a sneak preview? ;-)
But seriously, I am trying to define a very simple object model (something that is to Self like what Self is to Smalltalk) that is clean and poweful and could be explained to an interested 12 year old kid. I can be as nostalgic as the next guy and have been revisting the work I have done in object oriented Logos and Smalltalk, Lisp machine ideas and other stuff. See
http://groups.yahoo.com/group/self-interest/message/1022
-- Jecel
squeak-dev@lists.squeakfoundation.org