For centuries, the calculation of astronomical tables, navigation tables, insurance figures and artillery firing data depended on people called "computers": teams of human calculators who repeated operations by hand and checked each other's results. The work was slow and error-prone, and a mistake in a printed table spread to everyone who used it. The problem drove attempts, beginning in the seventeenth century, to mechanize arithmetic and later to build machines that could carry out whole sequences of operations without human intervention at every step. The road to the modern computer was long and collective, and the very idea of a "first computer" depends on which criteria one chooses.
How it works: calculator, computer and stored program
It helps to separate three ideas. A calculator performs arithmetic operations that the user commands one at a time. A programmable computer takes a sequence of instructions and carries them out automatically, including decisions of the form "if the result is zero, go to a different step," known as a conditional branch. A stored-program computer keeps its instructions in the same memory as its data. That allows the machine to switch tasks without being rewired, and lets one program treat other programs as data. This last feature defines the architecture of today's computers.
Two more concepts help in reading this history. Digital logic represents information as discrete values, usually zeros and ones, and memory is whatever device holds those values. Early computers used electromechanical relays, vacuum tubes, mercury delay lines or cathode-ray tubes to store and process them. All of these were eventually superseded by the transistor.
Mechanical antecedents
The abacus and, later, the slide rule, an analog instrument based on logarithmic scales, aided calculation for centuries. The first geared arithmetic machines appeared in the seventeenth century. Blaise Pascal began building his Pascaline around 1642. It added and subtracted using gears with a carry mechanism for tens, and it was intended to help with his father's tax-collecting work. Gottfried Wilhelm Leibniz designed a machine in the following decades that could also multiply and divide, using a stepped-drum mechanism; historians report that its reliability was limited.
By 1804 Joseph Marie Jacquard had developed a loom controlled by punched cards. The presence or absence of a hole determined which threads were lifted, so the pattern of the cloth was programmed into a physical medium. The idea of instructions stored on cards would echo through the century.
In England, Charles Babbage proposed the Difference Engine in 1822 to calculate and print mathematical tables by the method of differences. From the mid-1830s he worked on the Analytical Engine, a design for a general-purpose mechanical computer with a "store" for numbers, a "mill" to operate on them and instructions read from cards. It was never completed in his lifetime, owing to limits on funding, on manufacturing precision and to disputes over financing. Ada Lovelace, a mathematician, translated an 1842 paper on the engine by the Italian engineer Luigi Menabrea, who had written it in French. Her translation appeared in 1843 together with notes longer than the original. They included a method for calculating Bernoulli numbers and reflections on the machine's potential to manipulate symbols as well as numbers. Historians debate how much of the program design in the notes was Lovelace's own and how much came from Babbage; the prevailing view is that she was a perceptive interpreter of the design.
The next step was administrative. For the 1890 U.S. census, Herman Hollerith developed a system of punched cards read by electric tabulating machines. It sped up the count, and his company was one of the roots of IBM.
From theory to electronics, 1936 to 1951
In 1936 the British mathematician Alan Turing described in a paper an abstract machine, now called the Turing machine, as a way to define what it means for a procedure to be computable. It was not an equipment design but a theoretical model that became a foundation of computer science.
Meanwhile, teams in several countries built real machines. In Germany, Konrad Zuse completed the Z3 in 1941, an electromechanical programmable computer built from relays, with instructions read from punched film. It had no conditional branch as such and was destroyed in a bombing raid in 1943; replicas exist. In the United States, John Atanasoff and Clifford Berry built an electronic vacuum-tube machine at Iowa State College between 1939 and 1942 to solve systems of linear equations, the ABC, which was not a general programmable computer. In 1973 a federal court in Minnesota, in the case Honeywell v. Sperry Rand, declared the ENIAC patent invalid in October 1973 and found that the ENIAC's inventors had derived the basic idea of the electronic digital computer from Atanasoff. Historians still discuss how much weight that ruling should carry.
In Britain, at Bletchley Park, the engineer Tommy Flowers led the construction of Colossus with colleagues at the Post Office Research Station. The first machine was delivered to Bletchley Park in January 1944 (the Park dates its arrival to January 18) and was working by early February. Accounts differ on its tube count, from about 1,500 to 2,500. An improved Mark 2, with roughly 2,400 to 2,500 tubes, entered service on June 1, 1944, and ten Colossus machines were in use by the war's end. The machines helped break messages enciphered on a German teleprinter cipher machine known as the Lorenz. They were electronic and could be set up for different tasks using switches and plugboards, but they were not general-purpose stored-program computers. Because the project stayed secret for decades, its role was slow to enter histories of computing, and many of the people involved could not be publicly credited while secrecy held.
In the United States, the Harvard Mark I, designed by Howard Aiken and built by IBM, was presented to Harvard University in August 1944. It was a large electromechanical machine controlled by paper tape. The ENIAC, built at the University of Pennsylvania by J. Presper Eckert and John Mauchly under an Army contract, began operating in late 1945 and was presented to the public in February 1946. It used roughly 18,000 vacuum tubes (counts in the literature run from about 17,500 to 18,000) and was reprogrammed by plugging cables and setting switches. Programming was done by a group of women, including Kay McNulty, Betty Jean Jennings, Betty Snyder, Marlyn Wescoff, Fran Bilas and Ruth Lichterman, whose role was long left out of official accounts.
The stored program
In June 1945 the document now known as First Draft of a Report on the EDVAC was circulated. John von Neumann wrote it, drawing on discussions with the University of Pennsylvania team. It described a machine with one memory for both data and instructions. Who deserves credit for the ideas is disputed. Eckert and Mauchly claimed central contributions, and the fact that only von Neumann's name appeared on the report fueled the controversy. Many historians therefore speak of a "stored-program architecture" rather than attributing it to one person.
The first machines of this kind to run were British. The Manchester Baby at the University of Manchester ran its first program on June 21, 1948. It was a small experimental computer built to test the cathode-ray-tube memory designed by Freddie Williams and Tom Kilburn. In May 1949 the EDSAC at the University of Cambridge, directed by Maurice Wilkes, began operating as a complete computer serving researchers. In 1951 the UNIVAC I, developed by Eckert and Mauchly, was delivered to the U.S. Census Bureau, becoming one of the first commercial computers.
Impact and limitations
These machines were enormous, consumed a great deal of power and needed constant maintenance because tubes burned out. Their early uses were scientific, military and statistical: ballistics, code breaking, weapons design, forecasting and censuses. Access was limited to governments, universities and large companies. Programming required detailed knowledge of the hardware, which created the need for new tools, a story told in the evolution of programming languages.
Connections to other technologies
The mechanization of records and administration has roots in writing and record-keeping, where accounting played a central role. Replacing tubes with the transistor and then with the integrated circuit let computers shrink and become cheaper, eventually leading to the personal computer.
