[self-interest] Latest on Lobby and Globals

Jecel Assumpcao Jr jecel at merlintec.com
Tue Apr 18 22:30:55 UTC 2000

Dru Nelson wrote:
> In the last group of slides on Self from several
> years ago, there was mention that Self was 
> moving away from having the 'traits' and 'mixins'
> namespaces.

These two namespaces are more of a convenience than a necessity. If you
couldn't say 'traits point' then the expression 'point parent' would work
just as well. 

> Instead there was the 'lobby' and it had the two parents.
> One parent was the 'defaultbehaviour' and the other was
> 'globals'.

In Self 4.1.2 the lobby still has 'traits' and 'mixins' slots. But the
slots that you mentioned are parent slots, so you can just say 'point'
instead of 'globals point'.

> What is the current belief on how namespaces should be
> handled?

Here is the style I have adopted:

I first create an empty object and make a slot in globals be its creator
so it gets a name (like 'myApp', for example). From then on, every new
object I create gets a slot in this "project object". This makes me
always refer to 'myApp sillyMorph' instead of simply 'sillyMorph', but at
least I don't have to worry about conflicts with any existing sillyMorph
in the system. If I have to create a parent for my new morph, I don't
give it a special name so it becomes 'myApp sillyMorph parent'. Since I
set most slot values by dragging arrows instead of typing names, this
awkward name doesn't bother me at all.

This allows me to always find all the related objects in a project very
easily. But in the case of many projects sharing objects among them, this
wouldn't work very well.

-- Jecel

More information about the Self-interest mailing list