[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
are.