||The computer, as a tool for the processing of information, has had a vast impact on 20th-century life. It has been said that there have only been three inventions to deal with information: writing, printing and the computer. The third is of a different order from the first two, because it deals with the processing of information as well as with its storage.
Computers can have such a great effect because of their versatility. With different programs running, the same computers can perform vastly different tasks; their applications are endless. The versatility of today\'s digital computers (compared with their analog ancestors) is dependent on two insights. The first, made by Claude Elwood Shannon (1916), is that the two states of Boolean logic (true and false) can be represented using circuits, current flowing for true and not flowing for false. They can also represent numbers, using the binary number system, with current flowing for 1 and not flowing for 0. The second insight was made by , John von Neumann (1903 - 1957), who realized that programs, being made up of symbols, could be interpreted in the computer in the same way that data could, leading the way towards programs stored in memory (see von Neumann model).
A computer, though versatile, is not omnipotent. There are definite limits to the tasks that computers can perform. The first step towards designing a program to solve a problem is to work out an algorithm (a set of rules for performing a task) to solve it. The study of those tasks which computers can perform (strictly speaking, the functions computers can calculate) is known as computability. The study of this began with the work of , Alan Turing (1912 - 1954) on the Turing machine, a theoretical model of a computer. Other approaches include the philosophical idea of Church\'s thesis, which basically is that any function for which an algorithm to calculate it can be devised informally can be computed in practice. Related to this is the study of how fast computers can perform those tasks they can perform, because for practical purposes a task that takes thousands of years to complete is not worth attempting; this study is known as complexity.
Once an algorithm for a task has been developed, it is necessary to program it into the computer so that the computer can perform it. Originally, computers only understood a small number of instructions (typically a dozen) related to the manipulation of the locations in which memorized items are stored and their contents. These instructions are known as machine code. However, it is difficult for a human programmer to understand these instructions and to visualize what is going on. For this reason, high level languages were developed in which each instruction represents many machine code instructions, and which allow a far more structured approach to programs. Such structuring is perhaps furthest developed in functional programming.
One of the major industrial uses of computers is the control of robots. Although these are not the rapacious monsters of science fiction, they do pose ethical and political problems, as they replace human beings in the workplace. The jobs they can undertake are presently very limited, owing to the difficulty of designing a robot which can cope with unpredictable items in its environment. All the problems which might occur have to be foreseen beforehand, and solutions explicitly programmed in, and this is difficult outside very limited and controlled environments, such as laboratories. One of the major thrusts in research in computing is in the field of artificial intelligence, the (long-term) aim being to build a computer which can perform to or beyond the level of a human being.
Apart from in the workplace and as a research tool, one of the main ways that computers have affected lives this century has been through entertainment. From the earliest days when computers were first programmed to control television screens, people began to design games with more and more sophisticated computer graphics. The ability to use the computer to create images has also been exploited by film and television to memorable effect.
As a research tool, computer simulations have been the most useful applications of computers. Their ability to perform tedious and complicated calculations far quicker than human beings can (and without grumbling) has meant that a mathematical model of a situation (such as the position of particles in the early universe, or the design of a bridge) can be programmed into the computer which will then perform experiments (changing the position of the particles with time, or varying wind speed) to see what happens. This eliminates a large part of the need for expensive building and testing of physical models to destruction in engineering, and makes it possible to perform experiments dependent on conditions impossible to recreate on Earth.
The computer is the most versatile tool which humankind has ever developed. Like all tools, it has the potential for misuse. Many foresee a society dominated by a few who use computers to control the many; others see computers as the instrument which will one day free humankind from the slavery to physical effort (and maybe even some degree of mental effort), to concentrate on leisure and the pursuit of enjoyment. Whatever happens, the one thing that is reasonably certain is that with the development of computers society will never be the same again. SMcL
Further reading J. Weizenbaum, Computer Power and Human Reason.