The first computer
By the second decade of the 19th century, a number of ideas necessary for the invention of the computer were in the air. First, the potential benefits to science and industry of being able to automate routine calculations were appreciated, as they had not been a century earlier. Specific methods to make automated calculation more practical, such as doing multiplication by adding logarithms or by repeating addition, had been invented, and experience with both analog and digital devices had shown some of the benefits of each approach. The Jacquard loom (as described in the previous section, Computer precursors) had shown the benefits of directing a multipurpose device through coded instructions, and it had demonstrated how punched cards could be used to modify those instructions quickly and flexibly. It was a mathematical genius in England who began to put all these pieces together.
The Difference Engine
Charles Babbage was an English mathematician and inventor: he invented the cowcatcher, reformed the British postal system, and was a pioneer in the fields of operations research and actuarial science. It was Babbage who first suggested that the weather of years past could be read from tree rings. He also had a lifelong fascination with keys, ciphers, and mechanical dolls.
As a founding member of the Royal Astronomical Society, Babbage had seen a clear need to design and build a mechanical device that could automate long, tedious astronomical calculations. He began by writing a letter in 1822 to Sir Humphry Davy, president of the Royal Society, about the possibility of automating the construction of mathematical tables—specifically, logarithm tables for use in navigation. He then wrote a paper, “On the Theoretical Principles of the Machinery for Calculating Tables,” which he read to the society later that year. (It won the Royal Society’s first Gold Medal in 1823.) Tables then in use often contained errors, which could be a life-and-death matter for sailors at sea, and Babbage argued that, by automating the production of the tables, he could assure their accuracy. Having gained support in the society for his Difference Engine, as he called it, Babbage next turned to the British government to fund development, obtaining one of the world’s first government grants for research and technological development.
Babbage approached the project very seriously: he hired a master machinist, set up a fireproof workshop, and built a dustproof environment for testing the device. Up until then calculations were rarely carried out to more than 6 digits; Babbage planned to produce 20- or 30-digit results routinely. The Difference Engine was a digital device: it operated on discrete digits rather than smooth quantities, and the digits were decimal (0–9), represented by positions on toothed wheels, rather than the binary digits that Leibniz favored (but did not use). When one of the toothed wheels turned from 9 to 0, it caused the next wheel to advance one position, carrying the digit just as Leibniz’s Step Reckoner calculator had operated.
The Difference Engine was more than a simple calculator, however. It mechanized not just a single calculation but a whole series of calculations on a number of variables to solve a complex problem. It went far beyond calculators in other ways as well. Like modern computers, the Difference Engine had storage—that is, a place where data could be held temporarily for later processing—and it was designed to stamp its output into soft metal, which could later be used to produce a printing plate.
Nevertheless, the Difference Engine performed only one operation. The operator would set up all of its data registers with the original data, and then the single operation would be repeatedly applied to all of the registers, ultimately producing a solution. Still, in complexity and audacity of design, it dwarfed any calculating device then in existence.
The full engine, designed to be room-size, was never built, at least not by Babbage. Although he sporadically received several government grants—governments changed, funding often ran out, and he had to personally bear some of the financial costs—he was working at or near the tolerances of the construction methods of the day, and he ran into numerous construction difficulties. All design and construction ceased in 1833, when Joseph Clement, the machinist responsible for actually building the machine, refused to continue unless he was prepaid. (The completed portion of the Difference Engine is on permanent exhibition at the Science Museum in London.)
The Analytical Engine
While working on the Difference Engine, Babbage began to imagine ways to improve it. Chiefly he thought about generalizing its operation so that it could perform other kinds of calculations. By the time the funding had run out in 1833, he had conceived of something far more revolutionary: a general-purpose computing machine called the Analytical Engine.
The Analytical Engine was to be a general-purpose, fully program-controlled, automatic mechanical digital computer. It would be able to perform any calculation set before it. Before Babbage there is no evidence that anyone had ever conceived of such a device, let alone attempted to build one. The machine was designed to consist of four components: the mill, the store, the reader, and the printer. These components are the essential components of every computer today. The mill was the calculating unit, analogous to the central processing unit (CPU) in a modern computer; the store was where data were held prior to processing, exactly analogous to memory and storage in today’s computers; and the reader and printer were the input and output devices.
As with the Difference Engine, the project was far more complex than anything theretofore built. The store was to be large enough to hold 1,000 50-digit numbers; this was larger than the storage capacity of any computer built before 1960. The machine was to be steam-driven and run by one attendant. The printing capability was also ambitious, as it had been for the Difference Engine: Babbage wanted to automate the process as much as possible, right up to producing printed tables of numbers.
The reader was another new feature of the Analytical Engine. Data (numbers) were to be entered on punched cards, using the card-reading technology of the Jacquard loom. Instructions were also to be entered on cards, another idea taken directly from Jacquard. The use of instruction cards would make it a programmable device and far more flexible than any machine then in existence. Another element of programmability was to be its ability to execute instructions in other than sequential order. It was to have a kind of decision-making ability in its conditional control transfer, also known as conditional branching, whereby it would be able to jump to a different instruction depending on the value of some data. This extremely powerful feature was missing in many of the early computers of the 20th century.
By most definitions, the Analytical Engine was a real computer as understood today—or would have been, had not Babbage run into implementation problems again. Actually building his ambitious design was judged infeasible given the current technology, and Babbage’s failure to generate the promised mathematical tables with his Difference Engine had dampened enthusiasm for further government funding. Indeed, it was apparent to the British government that Babbage was more interested in innovation than in constructing tables.
All the same, Babbage’s Analytical Engine was something new under the sun. Its most revolutionary feature was the ability to change its operation by changing the instructions on punched cards. Until this breakthrough, all the mechanical aids to calculation were merely calculators or, like the Difference Engine, glorified calculators. The Analytical Engine, although not actually completed, was the first machine that deserved to be called a computer.
Ada Lovelace, the first programmer
The distinction between calculator and computer, although clear to Babbage, was not apparent to most people in the early 19th century, even to the intellectually adventuresome visitors at Babbage’s soirees—with the exception of a young girl of unusual parentage and education.
Augusta Ada King, the countess of Lovelace, was the daughter of the poet Lord Byron and the mathematically inclined Anne Millbanke. One of her tutors was Augustus De Morgan, a famous mathematician and logician. Because Byron was involved in a notorious scandal at the time of her birth, Lovelace’s mother encouraged her mathematical and scientific interests, hoping to suppress any inclination to wildness she may have inherited from her father.
Toward that end, Lovelace attended Babbage’s soirees and became fascinated with his Difference Engine. She also corresponded with him, asking pointed questions. It was his plan for the Analytical Engine that truly fired her imagination, however. In 1843, at age 27, she had come to understand it well enough to publish the definitive paper explaining the device and drawing the crucial distinction between this new thing and existing calculators. The Analytical Engine, she argued, went beyond the bounds of arithmetic. Because it operated on general symbols rather than on numbers, it established “a link…between the operations of matter and the abstract mental processes of the most abstract branch of mathematical science.” It was a physical device that was capable of operating in the realm of abstract thought.
Lovelace rightly reported that this was not only something no one had built, it was something that no one before had even conceived. She went on to become the world’s only expert on the process of sequencing instructions on the punched cards that the Analytical Engine used; that is, she became the world’s first computer programmer.
One feature of the Analytical Engine was its ability to place numbers and instructions temporarily in its store and return them to its mill for processing at an appropriate time. This was accomplished by the proper sequencing of instructions and data in its reader, and the ability to reorder instructions and data gave the machine a flexibility and power that was hard to grasp. The first electronic digital computers of a century later lacked this ability. It was remarkable that a young scholar realized its importance in 1840, and it would be 100 years before anyone would understand it so well again. In the intervening century, attention would be diverted to the calculator and other business machines.