Self 4,1 for MacOs?

Duane Maxwell dmaxwell at entrypoint.com
Fri Nov 5 02:15:49 UTC 1999


>On Thu, 4 Nov 1999 13:35:13    Duane Maxwell wrote:
>>Stefan writes:
>
>>>Sun says that their new way of describing
>>>objects is better than classes. Now I have
>>>always thought that a "class" is, in the
>>>first place, nothing more than a naming
>>>convention.
>
>>>Can anybody explain to me what they are
>>>talking about then? &BTW: do you agree with
>>>Sun, or is this just another "dot in com"
>>>talk?
>
>>What Self does is rather interesting - you
>>basically clone existing objects and add your
>>own "slots" (which roughly correspond to
>>instance variables and methods) to the copy.
>>You then use it to make copies, and so on.
>>The idea of classes sort of becomes
>>irrelevant - to create a new instance of
>>something, you instead just find an object
>>with the correct slots and copy it.  You can
>>also choose to make a very primitive object,
>>make its parent an existing object, and
>>simply override and/or add slots to do what
>>you want.
>
>So, Duane, this "very primitive object" would
>be the analog of a "virtual class" I guess?

The most primitive sort of object in Self would be one that has no slots. I
wouldn't know how to make one except clone something else and remove all of
the slots, including the "parent" (which is the object to defer to if
you're asked for something you don't have a slot for, kind of like a
superclass object).  In Self you can have more than one "parent" object, so
multiple inheritance is possible.

One version of Timothy Budd's "Little Smalltalk" did something similar to
Self - object instances were really a linked list of smaller subobjects,
one per class in the hierarchy up to Object.  Inefficient, of course, but
it was simply an academic exercise, not a production environment.

>
>What I don't understand is how, with the
>additional dynamics, why doesn't this then
>become just a SCHEME with syntactic sugar?

I suppose an analogy of "Smalltalk:Self is as LISP:Scheme" is not a big
stretch.

>
>>For instance, to make a 3D Point, I'd clone a
>>prototype 2D Point and add the extra slot for
>>the z value.  Since the original and the
>>close share the same parent object, the 3D
>>Point inherits all of the slots (including
>>methods) of the original.  Now, to make more
>>3D Points, I clone the one I just made.
>
>But isn't it important, for purposes of
>professional software development, to have
>a framework to use Meyer's principles for
>OO?  I know one can be dynamic in Smalltalk,
>but that isn't always a good thing.

Who said anything about professional software development? :)

I guess one of the interesting points that Self makes is that you can have
objects in a classless system, something I doubt many folks know that.
You're welcome in Self to layer anything you want on top of it, including,
I suppose, destroying its dynamic nature if you want.

>>Morphic, which came from Self, simulates
>>these additional slots with the "extensions"
>>object which hangs off of Morph.  Squeak uses
>>them most frequently to store balloon help
>>text.  The "duplicate" halo would be critical
>>in the Self world, and so would the
>>functionality we see as "flaps".
>
>>Frankly, Self is a very elegant system, which
>>takes Smalltalk-like languages towards being
>>even simpler and easier to understand. You
>>can artificially impose a more familiar class
>>structure if you want, as evidenced by the
>>Smalltalk implementation in Self.  Being
>>simpler, it lends itself pretty well to
>>interesting implementations, including
>>runtime translation to native code.  I think
>>I saw a note from one of the Squeak
>>luminaries (Alan?) that Self could have been
>>Smalltalk-80's natural successor.
>
>What do you mean by "elegance" here?  Is it
>something other than the sheer basicness of
>lambda calculus?  Or something else?

I guess it's the simplicity of the design and language I like - all of the
fluff removed to leave a pure center on which you can build anything you
like.  Don't get me wrong, I _love_ Squeak, but I have to admit that Self
is alluring in concept, even if not in implementation.  I'm glad Squeak has
been influenced in part by some of the Self project.

>
>>I would encourage people to take a look at
>>it.  I got tremendous insight into Morphic's
>>architecture and philosophy by examining Self
>>and reading the various white papers.
>


===================================================
Duane Maxwell          dmaxwell (at) entrypoint.com
CTO                       http://www.entrypoint.com
EntryPoint                      (619) 578-8500 x226

Information contained herein is my personal opinion
     and not necessarily that of EntryPoint.
===================================================





More information about the Squeak-dev mailing list