[self-interest] Modifying Software

Jecel Assumpcao Jr jecel at merlintec.com
Thu Aug 26 16:53:44 UTC 2004


On Thursday 26 August 2004 13:23, Ian Woollard wrote:
> Jack Waugh wrote:
> >Self has no classes, and I suppose most programmnig modification is
> >done by changing slots in the Lobby or by changing the objects
> >(usually prototypes) to which those Lobby slots refer.
>
> Yes, so in a pretty real sense, in fact Self *has* classes.

Perhaps it would be better to say that Self can have classes whenever 
you need them.

> >So in Self,
> >and in the actual practice of typical Self programmers, and with the
> >support of typical Self programming environments, is there any way
> > to modify software so that many existing objects change their
> > behavior to reflect the modification?
>
> Most of the objects in the system inherit their behaviours off a
> group of objects that are linked from the Traits object. Modifying
> these Traits' objects immediately changes the behaviours of all such
> objects.

A good discussion of these issues can be found in

http://research.sun.com/self/papers/organizing-programs.html

and

http://research.sun.com/self/papers/parents-shared-parts.html

The basic idea is that you can organize objects in such a way that a 
change to one will be "felt" in a specific group. This does require a 
little planning, or at least following some typical design patterns in 
your organization.

But there is one exception, however. When you edit a method from inside 
the debugger, the system does not only change that specific object 
(affecting all of its "children" too) but supposes that you really want 
to change any object that that was cloned from the same prototype as 
the current one since you are probably fixing a bug. A little bit of 
Kevo lost inside Self, I suppose :-)

-- Jecel



More information about the Self-interest mailing list