[self-interest] Modifying Software

Michael Latta lattam at mac.com
Fri Aug 27 02:16:23 UTC 2004

To add $0.02.

While Smalltalk uses classes to define shared behavior and structure, 
Self encourages a model that shares behavior only.  The structure of 
objects is their own business.  "Properly" written Smalltalk will use 
accessors that allow similar replacement of structure with behavior, 
but Self does not give you that as an option.  All access is through 
first class behavior, and as such can be replaced with other behavior.  
As mentioned you can share behavior.  Unlike "class" oriented systems, 
you can share multiple groups of behavior, without having to deal with 
shared structure.

Jecel's model of starting with a clean slate and evolving the shared 
part is very XP in orientation, while if you are a domain expert you 
might have a good idea of some shared parts up front.  Either way, Self 
encourages looking at a problem as shared behavior rather than shared 
implementation or shared structure.

Now, if Sun only put enough resources into it to make a product.  But, 
as noted Sun is too large to deal with a project of this size other 
than as research to support Java.  But, at least there is new effort 


On Aug 26, 2004, at 2:31 PM, Jecel Assumpcao Jr wrote:

> On Thursday 26 August 2004 15:10, Ian Woollard wrote:
>>  Jecel Assumpcao Jr wrote:
>> Perhaps it would be better to say that Self can have classes whenever
>> you need them.
>>  You often don't *need* classes in Self, just like you never *need*
>> methods, in either case you can always inline manually, within the
>> object or the method, respectively.
>>  Self can have 'classes' whenever you *want* them- which is nearly
>> always in my experience.
> When I started using Self graphically, I would always create an empty
> object like this
>   (| parent* = (| parent* = traits clonable |) |)
> and then start editing it, adding instance-like stuff in the child
> object and class-like things in its parents. But I had picked up this
> habit when using the previous, textual versions of Self. Yet moving
> slots around in the GUI is easy compared to cut/paste of the equivalent
> text (specially when using the line oriented vi).
>  "Premature optimization is the root of all evil"
>         - Carl Hoare
>  "We should forget about small efficiencies, say about 97% of
>   the time: premature optimization is the root of all evil"
>         - Donald Knuth
> So my current style is to start with a proper empty object and stuff
> everything there. Obviously this is a problem if I make clones and then
> wish to fix or add things, but in that case what I normally do is throw
> away the old clones and make new ones (see the "atoms with variable
> colors" example in the Self movie). When I find that I want to share
> things with objects that are not exact clones, then I create a parent
> and move the common stuff there.
> -- Jecel
> Yahoo! Groups Links

More information about the Self-interest mailing list