Issue No. 08 - August (1997 vol. 30)
<p>From the earliest hardware and software through the latest, complexity has been something computer engineers, scientists and programmers have had to fight. Important fields of research and technology have originated, developed, or matured as side-effects of this fight. Some of these fields, such as computational complexity and planar graphs, address fundamental theories of broad significance. Others, such as reduced instruction set architectures, compiler-compilers, and high-level languages, are more applied. </p> <p>Other advances have actually contributed to complexity. In the area of building predictable real-time systems, for example, advances in computer performance (direct memory access, hierarchical storage, multiprocessing, and so on1) have led only to statistical performance improvements. But predictable, deterministic performance is still elusive. Some would argue that the easy availability of generic OS services may be responsible for a very significant increase in application complexity, not to mention a decrease in program robustness and correctness. </p> <p>Fighting complexity is not a futile task. Despite chronic lack of attention (and thus funding), much-needed complexity-fighting methods and tools will emerge. Eventually, a new generation of computer scientists, engineers, and programmers will emerge who are skilled at using these methods and tools. </p> <p>One day, the invention of a supertool will be as well-received as the construction of a supercomputer. Until that day, we have quite a bit of work to do. rom forest to finished product, wood moves through a series of stages that are little changed from sawmill practices of a hundred years ago. Many of the subjective decisions workers make along the way directly affect the quality and yield of the wood products. Wood grows more valuable and labor more expensive every day. At the same time, technology now exists to provide more complete information to decision makers. </p>
A. D. Stoyen, "Fighting Complexity in Computer Systems," in Computer, vol. 30, no. , pp. 47-48, 1997.