Gregor Kiczales, Andreas Paepcke
Discusses opening up substrate software (object systems, databases, operating systems) by adding reflective "side-door" protocols that allow the client to change the behavior of the system. A tour-de-force of good software design. Contracts, ease-of-use, common sense, and performance are emphasized.
As an example, the not-so-tiny TinyObjects ("the common core of C++, Smalltalk, CLOS and Objective-C") is systematically opened and extended for fundamental change by clients.
[...] this book does not propose that substrate software should just "have more features to please more programmers." Instead, it suggests that substrates should be open in a way that allows programmers access to and control over the substrate's implementation in a way that allows the programmer to tailor the substrate to the needs of a particular application. This is called open implementation.
Will this be such a powerful tool that application programmers will be able to "machine gun themselves in the foot?"
To me, an extremely interesting and insightful book, and maybe an outlook to Intentional Software's upcoming tools.
Posted to OOP by Manuel Simoni on 2/17/03; 4:49:32 PM