One of the next major steps in object-oriented design and programming is framework design and programming. Frameworks are being commercialized by NeXT and Taligent, and to a lesser extent, by IBM, Microsoft, SunSoft, Borland, and Hewlett Packard. I think that the introduction of the Taligent products in 1995 will stimulate widespread interest in frameworks: what they are, how they work, and how they compare with one another.
This paperback tutorial/survey is designed to address the anticipated surge of interest in what has previously been a little-understood technology. I hope to do so in three parts: an introduction to the underlying principles of object-oriented design, a comparative survey of frameworks for personal computers and UNIX workstations, and an illustration of the uses of frameworks. Part I should make the book appealing to the beginner, and Parts II and III should appeal to the software project leader, MIS manager, or advanced programmer. This is a professional book, not a textbook.
What exactly is an object-oriented framework? It is an object-oriented class hierarchy plus a built-in model of interaction which defines how the objects derived from the class hierarchy interact with one another.
This rather simple definition belies the power of frameworks. In practical terms, the framework approach leverages capital-intensive software investment through reuse, and provides a much higher-level application programming interface, so that applications can be developed ten times faster. It is the next giant step in the progression toward more powerful desktop computers. Steve Jobs recognized the significance of object-oriented frameworks when he called his new company NeXTand his framework-based operating system NeXTStep.
Frameworks are not new-fangled research exotica, but rather the essential core of what is happening in software these days. The two most glaring examples of the framework approach come from Taligent Inc. and NeXT Inc. Both operating systems are based on the MACH kernel (or other multithreading systems, such as OS/2 or Apple's System 8.0), and both are layered with object-oriented software services in the form of object-oriented frameworks. The Taligent operating system makes more extensive use of frameworks than any other system, except perhaps the Apple Newton.
The purpose of the Taligent operating system is to win the battle of the desktop in the next round of operating systems wars. Of course, the players want to shift the balance of power to their own advantage as the PC industry converts from a 16-bit to a 32/64-bit architecture based on RISC processors such as PowerPC, DEC Alpha, and SuperSPARC. These better-performing processors with radically different architecture make existing PC operating systems obsolete. But what will replace them? This is the 100-billion-dollar question.
I believe whatever the outcome of these wars, the object-oriented framework concept will be at the core of the technology of the twenty-first century. I hope this book helps you get started on your journey toward understanding the subtleties of this new technology.
TED G. LEWIS, PH.D