Prototypes

Travis or Kerrin Griggs tkc at bmi.net
Fri Feb 27 09:43:09 UTC 1998



Dan Ingalls wrote:

> >Is there any interest in making Squeak prototype-based?
>
> John Malone and I have several times threatened to do this.  What we had in mind as a first pass would actually be quite simple, and we thought we could pull it off in about a week...
>
> 1.  For every class identify a prototypical instance.
>
> 2.  [this has already been done] Define a fast primitive message, clone, that returns a shallow copy of any instance.
>
> 3.  Go through Squeak's class library, changing it so that the global names like Rectangle, Date, etc. referred to these prototypical instances, not to classes.
>
> 4.  Make another pass through the library, eliminating all metaclass methods.  These fall into several categories, for class initialization, for creating initialized instances, and for functions generally related to that class.  Most of these would simply move into new categories of the class.
>
> 5.  Throw away the metaclasses, simplify the browser, and throw a party.

Cool. In addition to coming away from OOPSLA super pumped up about Squeak, I also came away really impressed by the tutorial Craig Chambers gave and mention of the Cecil language. Since then, I've perused the Cecil description web pages
<http://www.cs.washington.edu/research/projects/cecil/www/Papers/cecil-spec.html>, and been really impressed by certain aspects of it - though, I must admit I'm somewhat new to (but excited about) the abolishment of classes in favor of prototypes, and probably not the greatest of judges.

Obviously one of the real impressive parts is the Vortex compiler, which does all kinds of stuff. Another thing that intrigued me was the concept of multi-methods, especially after this recent discussion of double-dispatching. In many ways, it seems like Cecil has taken into account lessons
learned (both good and bad) from Chambers work with Ungar on the Self project. OTOH, it seemed obvious that as far as UW is concerned, Cecil is a language design/OO compiler design platform, kind of leaving out the aspect of the development environment - uses flat files for source, command line
driven, not as elegant a syntax as Smalltalk. 'Twould seem that if we were going to move to prototypes, especially ala Self, Cecil would bear some looking at.

Thoughts?

Travis Griggs
To Smalltalk! - and Beyond

BTW: What happened to the effort to add delegation to Squeak? Is it still ongoing?





More information about the Squeak-dev mailing list