slate comments

Alexandre Oliva oliva@lsd.ic.unicamp.br
18 Mar 2000 19:19:40 -0300


On Mar 17, 2000, "Brian T. Rice" <water@tscnet.com> wrote:

> I haven't seriously considered the multiple meta-object idea since I
> was trying to focus on simplicity for the user who delves into the
> meta-object system in Slate, but I'm taking a look at the CodA
> documents that are still available to see if the idea is
> workable. I'll let you know what I get from them.

If you're going to look into supporting multiple meta-objects without
giving up the simplicity of the one-meta-object model, you may be
interested in Guaranį's approach.  Each object may be associated
directly with at most one meta-object, but this meta-object may
compose the behavior of several others, some of which can also be
composers, and so on.  So, unless a meta-object is a composer, it can
behave mostly as if it were the only meta-object associated with the
object.  Only composers have to deal with the composition complexity.

You may think such composition strategies can be easily accomplished
in other MOPs, but they often can't because MOPs often aren't designed
with this kind of hierarchical composition in mind, which leads to
meta-objects that aren't easily combinable.

The factorization of meta-object behavior in CodA is sound, but IMHO
extending it is not as simple, because, in order to extend it, you
have to modify or replace the standard meta-objects.  Then, when you
want to combine multiple such modifications, you may end up in
trouble, because they may conflict, and it may turn out to be
impossible to combine the meta-objects you want.  That's because the
extension of meta-objects is not disciplined, i.e., there's no
standard interface a meta-object should implement, by means of which
any meta-object can be plugged into the meta-system.


You can find a few papers about Guaranį, and a Java-based
implementation thereof, at my home page, see below :-)

-- 
Alexandre Oliva    Enjoy Guaranį, see http://www.ic.unicamp.br/~oliva/
Cygnus Solutions, a Red Hat company        aoliva@{redhat, cygnus}.com
Free Software Developer and Evangelist    CS PhD student at IC-Unicamp
oliva@{lsd.ic.unicamp.br, gnu.org}   Write to mailing lists, not to me