Previous: Write and Display, Up: GOOPS


9.20 The Metaobject Protocol

GOOPS is based on a “metaobject protocol” (aka “MOP”) derived from the ones used in CLOS (the Common Lisp Object System), tiny-clos (a small Scheme implementation of a subset of CLOS functionality) and STKlos.

GOOPS can be used by application authors at a basic level without any need to understand what the MOP is and how it works. On the other hand, the MOP underlies even very simple customizations — such as defining an initialize method to customize the initialization of instances of an application-defined class — and an understanding of the MOP makes it much easier to explain such customizations in a precise way. And in the long run, understanding the MOP is the key both to understanding GOOPS at a deeper level and to taking full advantage of GOOPS' power, by customizing the behaviour of GOOPS itself.