The middle part of Figure 5 shows how object technology has been introduced for
writing applications that work with the current generation of operating systems.
An application framework provides a preassembled generic application that a
developer can modify to create a real application. For example, the application
framework includes basic menus and windows and code for basic operations, and the
programmer adds the new code required for a specific application. Because the
developer starts with robust code that's been tested and debugged, the new code
is more likely to work reliably both with the system and with other applications
built from the same base.
This is a big improvement over the model shown on the left of Figure 5. Examples
of application frameworks include Apple's MacApp, Microsoft Foundation Classes
(MFC), and NextStep. These frameworks in turn provide class libraries, or
collections of ready-made objects, that make the frameworks easier to work with.
(Objects and class libraries are discussed in more detail in Chapter 2.) The
class libraries are built on top of the same procedural operating systems as
before.
At first glance application frameworks seem to have the best of both worlds: they
make use of OOP, so they're easier to use and maintain, but they can coexist with
the older procedural operating systems and applications that are based on them.
However, application frameworks running on a procedural operating system have
some drawbacks:
As mentioned earlier, Taligent has designed the CommonPoint application system to
run on existing operating systems such as OS/2 and HP-UX. This means that
applications written for the CommonPoint system can run on the same computer with
applications written for that computer's native operating system, as shown in
Figure 3 on page 33. However, unlike applications written with most traditional
frameworks, CommonPoint applications don't need to use the host operating system
APIs. The CommonPoint application system provides a complete programming model,
and applications developed with it are fully portable across multiple host
operating systems. Because the CommonPoint application system maps to host
systems at a very low level, rather than repackaging host capabilities, it avoids
mapping overhead and time-lag problems associated with traditional application
frameworks.
The right side of Figure 5 illustrates Taligent's approach. Taligent has built
its entire programming model around objects. A foundation layer of basic system
objects supports a rich set of class libraries, which in turn support frameworks
designed to build not only traditional applications but also extensions and
additions to any part of the application system. Taligent not only asks its
developers to use OOP, but also uses exactly the same techniques throughout its
own application system.
[Contents]
[Previous]
[Next]