[self-interest] Simpler Self RFC

Jecel Assumpcao Jr jecel at merlintec.com
Tue Aug 6 21:51:08 UTC 2002


thank you for your comments!

> 1. simpler method/block story
> I don't know enough about how self currently works to properly
> comment.  Are there any cons to this change?

Yes, the current complicated scheme (five different objects) is needed 
to get different behaviors in different situations. With my 
simplification you would have objects answering messages they aren't 
supposed to answer. Of course, you aren't supposed to send them these 
messages, right? So the practical result is that sometimes you will get 
a hard to find error where now you get a "message not understood".

> 2. simpler non local return
> Wouldn't this require that all objects have a default slot (^)? 

All activation objects would need such a slot (and methods and blocks 
when combined with proposal 1, which is needed for this to work). 
Normal objects wouldn't have this slot.

> From
> what I can tell an object in self does not normally contain any slots
> by default.  Am I wrong about this?

The empty object, ( ), has no slots at all. It can receive a set of 
primitive messages even so, which is a bit disturbing to some of us.

> 5. removing inheritance from the base-level
> I'm not sure what you gain from this one.  Personally I'd probably
> leave it out.

I am also not sure about this one and the assignment one (4) either. 
This can even be considered a complication instead of simplification. 
Parent slots were Alan Kay's main objection to Self and that got me 
thinking about them.

Currently, I am implementing a reduced version of Self for a project and 
it will include simplifications 3 (no literals) and 5 (no parent 
slots). I actually wanted to use regular Self but the machine is far 
too small for that. We shall see how well these ideas work in practice. 
I called the resulting language "Si" (no, not Spanish for "yes" but a 
crude approximation in Portuguese for "self" :-)

-- Jecel

More information about the Self-interest mailing list