[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Name Change for Metaobject Protocol?

    My understanding about what we mean by the metaobject or
    metaclass protocol is a collection of classes and methods which can
    be used to implement new object oriented languages or extend the
    semantics of the  CLOS user level language, in a manner similar to
    the way macros can be used to extend the syntax of Lisp.
    Additionally, one could look at the CLOS metaclass protocol as a
    restricted version of Pattie Mais' reflection, in the sense that it
    is a way of interrogating or modifying the language semantics.
We do mean this, but not only this.

    What we do not mean is a class which acts as a "factory
    instance" for creating and initializing classes, or a class which
    somehow acts as a prototype (in the delegation sense) for other
    classes, though one could use the metaobject protocol to define a
    metaclass which did that.
We also mean this.  It is important to note that having access to the
implementation level of the object system c(the metaobject protocol) an
facilitate making trivial changes as well as more far reaching one.  We
do not want to separate ourselves from these.

Hence I believe the name is well chosen, though I would not mind a well
chosen phrase usining "reflection"  However, since our metaobject
protocol encompasses both the trivial things that Smalltalk metaclasses
do, as well as the reflective things that Pattie Maes does, and most
people do not know the term reflection, I think we are OK the way we