[Contents] [Previous] [Next]

The emergence of application systems

The sad stories in the previous section can all be traced to the same problem. The problem isn't the hardware, which keeps getting cheaper and faster and more reliable. It's not the users, who are more computer literate than they've ever been. It's not application developers, who generally have many more ideas than they can successfully develop. User interfaces can share some of the blame; computers are becoming more difficult to use as they become adapted to more complex tasks, especially in multiuser environments. But a single problem lies behind nearly all the difficulties faced by the computer industry: the dominant paradigm for developing, marketing, and deploying application software is stifling innovation.

Increased frustration and slower productivity are common as a technology matures. It was equally true of the technology that preceded today's procedural development methods. Twenty-five or thirty years ago, most computer programs basically consisted of a long list of instructions and data. The processor would start at the beginning of the list, follow all the instructions, and output a result. This worked well for solving problems such as preparing a payroll or performing a series of complex calculations, but not for other tasks that people wanted computers to perform. As the hardware became more sophisticated and more powerful, this kind of programming also became increasingly difficult for programmers, who often wrote programs in relatively low-level languages or even assembly language.

These frustrations led to some dramatic changes in programming techniques. Within a few years, high-level procedural languages and structured programming techniques, previously the domain of academics and a few teams of researchers, achieved general acceptance in the marketplace. Rather than writing a list of arcane instructions for the machine to read from top to bottom, programmers could work in higher-level languages that made it easier to work with logical abstractions such as loops and data structures.


[Contents] [Previous] [Next]

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