Development leverage Commercial developers, corporate developers, and OEMs need to develop software more quickly and with greater responsiveness to specialized needs, especially the needs of enterprise customers. Unfortunately, writing procedural software is still largely a labor-intensive, hand-crafted activity. Programmers must write a lot of code and integrate it themselves so it can run successfully on the underlying operating system. Application frameworks can alleviate this problem, but, depending on how complete the framework programming model is, programmers must still replace or work around parts of the underlying operating system, and operating system development still proceeds under the old rules. Taligent believes it can best help software innovation not by creating yet another monolithic operating system, but by facilitating changes in the way both application programmers and system programmers work. These changes won't happen overnight. Procedural programming required developers to learn new languages and new ways of working, and so does Taligent's application of OOP to system software. But just as procedural programming changed the nature of application development, Taligent believes that the intelligent use of objects can dramatically improve the speed with which all developers create software. Figure 6 illustrates the three major ways that Taligent products increase development leverage compared to traditional development environments: Factored subsystems ("Divide and conquer"). With the help of its investors, Taligent has carefully examined existing application and system environments, factored them into appropriate subsystems, and organized the subsystems into an integrated object-oriented architecture. Instead of facing a monolithic system with complex intrasystem relationships that must be mastered programmatically, application developers can deal with more manageable independent parts that are designed to work together. If a developer's domain requires dealing with only two or three subsystems, development can focus on modifying and extending those parts rather than making sure everything works correctly with the rest of the system. Design reuse via frameworks ("Don't reinvent the wheel"). For each subsystem, Taligent provides an implementation based on a framework, so that the developer doesn't have to start from scratch. Instead, development starts with prefabricated, preassembled units that are designed to be customized. Rather than having to do all the work themselves, programmers only have to write the extra pieces unique to their requirements. They don't have to reinvent basic elements such as menus, windows, text and graphics tools, or distributed computing capabilities on their own. Because Taligent's frameworks are designed for use on multiple hardware and operating system platforms, the resulting software is guaranteed to be portable without major development efforts for each platform. Tools optimized for object development ("You're only as good as your tools"). Finally, to ensure that developers can take full advantage of these benefits, Taligent also provides development tools that are optimized for its object-oriented approach. Most development environments today are organized around text editors--that is, applications designed for writing and editing code. They work this way because most operating systems define the programmer's role as writing new lines of code. In Taligent's view, the programmer's primary role should not be to write new code but to reuse existing code in new ways. So the cpProfessional development environment is designed to let the programmer browse through working pieces of code, making small modifications along the way and seeing their effect without having to recompile the entire program. Like the CommonPoint system, the cpProfessional development environment itself is built from frameworks that can be used and extended by tool developers. For a more detailed discussion of the potential benefits of Taligent technology for commercial software developers, corporate software developers, and OEMs, see "Benefits of CommonPoint development," beginning on page 125.