[Contents] [Previous] [Next]

Shifting the burden of complexity

Larry Tesler, one of Apple's best-known OOP gurus, once pointed out that you can never actually make things easier in software. You can only shift the burden of complexity from one place to another. For example, the development of very-large-scale integration (VLSI) technology shifted much of the complexity that was formerly the domain of computer system engineers to the domain of integrated circuit designers. This in turn freed computer system engineers to create more complex kinds of hardware. Eventually, the building-block approach that VLSI made possible led to the pervasive use of integrated circuits in ways that were previously inconceivable, for example in appliances, cars, toys and many other products.

In a similar fashion, Taligent wants to shift much of the complexity of software development from application developers to application system engineers. Figure 4 shows another way of looking at some of the relationships shown in Figure 1 on page 27, this time in terms of the way in which the total complexity of each system is distributed among the user, the application developer, and system software.


Twenty years ago, a typical operating system for a personal computer was relatively simple, as shown by the leftmost column in Figure 4. An operating system like MS-DOS or CP/M could run in 64K of RAM and from a floppy disk. Because they had to fit in the same 64K of RAM, applications were also simple. But users had to work hard to use the applications. They had to memorize commands, keep track of obscure file names, and learn all kinds of esoteric details and tricks to accomplish relatively simple tasks. Moving data from one application to another was always difficult and often impossible. Users had to bear much of the burden of complexity involved in running applications.

After the Macintosh computer and operating systems with graphical user interfaces arrived on the scene, these relationships changed, as shown in the second column in Figure 4. System software companies realized that if they could make computers easier for users to use, many new users might buy their products. To this end, they added user interface capabilities to their underlying system software in the form of application libraries or "toolboxes."

Now applications could take advantage of windows, dialog boxes, input devices like the mouse, and other innovations that greatly simplified things from the user's point of view. But the complexity didn't just disappear; instead, it was shifted to the application developers, who had to work a lot harder to create applications, and to system software engineers, who had to provide the new capabilities. The work was worth it though, because more users could use computers with less effort, and applications could meet a wider variety of user needs, leading to a net increase in the total complexity of the problems that the applications could be used to solve.

Taligent maintains that half or more of what application developers are doing today is system software work that no longer has to be their responsibility. The computer industry can't expect this situation to continue if it intends to meet customer demands for innovative, distributed applications that run in networked environments. Taligent would like to shift the complexity of computing once again, away from the application developer and into the application system. The third column in Figure 4 illustrates one consequence of this approach. Users still don't have to bother with the technical details of the system, and the applications they use provide the same kinds of capabilities as before, but small engineering teams can deliver a product in perhaps 6 to 12 months that might take a bigger team two years or more to develop for the previous generation of operating systems. This by itself can dramatically change the economics of software development.

Another consequence, illustrated by the rightmost column in Figure 4, is that some application developers will make a more extensive effort. But rather than squandering their resources fighting with the underlying operating system or reinventing the wheel, they can build on Taligent technology to provide innovative application capabilities and a richer user experience. Just as the Mac OS and Windows and other user-friendly operating systems have led to thousands of new applications that couldn't have existed in the world of MS-DOS and CP/M, Taligent technology will help create a new generation of applications that address more complex needs--in particular, the needs of users working together in an organization--than traditional applications can.


[Contents] [Previous] [Next]

Addison-Wesley Publishing Company, Copyright©1995 by Sean Cotter and Taligent,Inc. All rights reserved.