e evolution of a process is directed by a paern of rules called a pro- gram. People create programs to direct processes. In effect, we conjure the spirits of the computer with our spells. A computational process is indeed much like a sorcerer’s idea of a spirit. It cannot be seen or touched. It is not composed of maer at all. However, it is very real. It can perform intellectual work. It can answer questions. It can affect the world by disbursing money at a bank or by controlling a robot arm in a factory. e programs we use to conjure processes are like a sorcerer’s spells. ey are carefully composed from symbolic expressions in arcane and esoteric programming languages that prescribe the tasks we want our processes to perform. A computational process, in a correctly working computer, executes programs precisely and accurately. us, like the sorcerer’s appren- tice, novice programmers must learn to understand and to anticipate the consequences of their conjuring. Even small errors (usually called bugs or glitches) in programs can have complex and unanticipated con- sequences. Fortunately, learning to program is considerably less dangerous than learning sorcery, because the spirits we deal with are conveniently con- tained in a secure way. Real-world programming, however, requires care, expertise, and wisdom. A small bug in a computer-aided design program, for example, can lead to the catastrophic collapse of an air- plane or a dam or the self-destruction of an industrial robot. Master soware engineers have the ability to organize programs so that they can be reasonably sure that the resulting processes will per- form the tasks intended. ey can visualize the behavior of their sys- tems in advance. ey know how to structure programs so that unan- ticipated problems do not lead to catastrophic consequences, and when problems do arise, they can debug their programs. Well-designed com- 2
Previous Page Next Page