We wrote this book because reflection inspires us. It produces
solutions so elegant that they elicit the same sense of
wonderment that we often felt as children. It is this
inspiration that has driven both of us in our study and practice
of reflective programming over the last ten years. In the early
1990s, Ira Forman was a member of the development team for IBM's
SOMobjects Toolkit, generally known as SOM. It was not a
programming language. Rather, SOM was an API to a highly capable
and reflective object model. For the second release of SOM in
1994, Ira and Scott Danforth wrote the Metaclass Framework,
which used the reflective facilities of SOM to provide useful
tools for the rest of the development team and the IBM
customers. This may well be the first commercial instance of
what has become known as Aspect-Oriented Programming. Included
in the Metaclass Framework was a tool to dynamically create
proxy classes. Another tool could wrap the methods of a class
with code to execute before and after every method