[self-interest] Mixed Environment

Tripp Lilley tripp at perspex.com
Thu Oct 19 20:27:34 UTC 2000

On Thu, 19 Oct 2000, Dan Rozenfarb wrote:

> In my master thesis work I have implemented Self-like objects in Squeak with
> the purpose of having an environment with class-based and class-less object
> mixed.  It is supposed to allow exploratory and incremental programming,
> letting you evolute from class-less objects towards a more (mature?)
> arrangment with hierarchies of classes.
> In writing the "related work" section I looked for others environments for
> comparison purposes and found no one.
> Do you know of any language/environment which combines those features?


is where I'm keeping my work on "Selfish" programming in other languages,
all implementations of which, so far, allow mixing classless and
class-based code. I have posted there my curent Python implementation, but
I also have two crufty Perl implementations lying around which I could be
persuaded to post "for academic interest".

I do, of course, have to challenge your tentative assertion that 
class-based is more mature :) Personally, I find that the classless,
incremental approach allows me to build systems which evolve dynamically
to match the new circumstances they face. This is in contrast to what I
think is your implicit assumption: that one will use incremental,
exploratory programming to "feel out" the design space, then "set" the
design in concrete, and migrate it to a class-based implementation.

I don't believe that the incremental, exploratory phase should ever stop,
really. That said, I do believe there is a lot of room for failure in
systems built this way, but that failure usually stems from a lack of
rigour applied to the actual deployment and iteration process. This is
nothing specific to classless programming, though. Plenty of people build
systems willy-nilly in the class-based world, and don't spend enough time
thinking about deployment and field-upgrade issues. That's where things
break, whether you're doing incremental development with a classless or
class-based system.

That's why the "research todo list" for the Selfish project includes a lot
of work on implicit version control, partitioning, and so forth. I want to
explore structures that make it (comparatively) trivial for people to
"branch" a live system, explore new work in their branch, then resolve
that branch back into the live system in a controlled manner.

   Joy-Loving * Tripp Lilley  *  http://stargate.eheart.sg505.net/~tlilley/
   "I'll die with that hammer in my hand, but I'll be laughin',
    'cause you can't replace a steel-drivin' man."

   - Johnny Cash, "The Legend of John Henry's Hammer"

More information about the Self-interest mailing list