Изменить стиль страницы

How did it work? The Difference Engine used vertical shafts with disks that could be turned to any numeral. These were attached to cogs that could be cranked in order to add that numeral to (or subtract it from) a disk on an adjacent shaft. The contraption could even “store” the interim results on another shaft. The main complexity was how to “carry” or “borrow” when necessary, as we do with pencils when we calculate 36 + 19 or 42 − 17. Drawing on Pascal’s devices, Babbage came up with a few ingenious contrivances that allowed the cogs and shafts to handle the calculation.

The machine was, in concept, a true marvel. Babbage even figured out a way to get it to create a table of prime numbers up to 10 million. The British government was impressed, at least initially. In 1823 it gave him seed money of £1,700 and would eventually sink more than £17,000, twice the cost of a warship, into the device during the decade Babbage spent trying to build it. But the project ran into two problems. First, Babbage and his hired engineer did not quite have the skills to get the device working. Second, he began dreaming up something better.

Babbage’s new idea, which he conceived in 1834, was a general-purpose computer that could carry out a variety of different operations based on programming instructions given to it. It could perform one task, then be made to switch and perform another. It could even tell itself to switch tasks—or alter its “pattern of action,” as Babbage explained—based on its own interim calculations. Babbage named this proposed machine the Analytical Engine. He was one hundred years ahead of his time.

The Analytical Engine was the product of what Ada Lovelace, in her essay on imagination, had called “the Combining Faculty.” Babbage had combined innovations that had cropped up in other fields, a trick of many great inventors. He had originally used a metal drum that was studded with spikes to control how the shafts would turn. But then he studied, as Ada had, the automated loom invented in 1801 by a Frenchman named Joseph-Marie Jacquard, which transformed the silk-weaving industry. Looms create a pattern by using hooks to lift selected warp threads, and then a rod pushes a woof thread underneath. Jacquard invented a method of using cards with holes punched in them to control this process. The holes determined which hooks and rods would be activated for each pass of the weave, thus automating the creation of intricate patterns. Each time the shuttle was thrown to create a new pass of the thread, a new punch card would come into play.

On June 30, 1836, Babbage made an entry into what he called his “Scribbling Books” that would represent a milestone in the prehistory of computers: “Suggested Jacquard’s loom as a substitute for the drums.”30 Using punch cards rather than steel drums meant that an unlimited number of instructions could be input. In addition, the sequence of tasks could be modified, thus making it easier to devise a general-purpose machine that was versatile and reprogrammable.

Babbage bought a portrait of Jacquard and began to display it at his salons. It showed the inventor sitting in an armchair, a loom in the background, holding a pair of calipers over rectangular punch cards. Babbage amused his guests by asking them to guess what it was. Most thought it a superb engraving. He would then reveal that it was actually a finely woven silk tapestry, with twenty-four thousand rows of threads, each controlled by a different punch card. When Prince Albert, the husband of Queen Victoria, came to one of Babbage’s salons, he asked Babbage why he found the tapestry so interesting. Babbage replied, “It will greatly assist in explaining the nature of my calculating machine, the Analytical Engine.”31

Few people, however, saw the beauty of Babbage’s proposed new machine, and the British government had no inclination to fund it. Try as he might, Babbage could generate little notice in either the popular press or scientific journals.

But he did find one believer. Ada Lovelace fully appreciated the concept of a general-purpose machine. More important, she envisioned an attribute that might make it truly amazing: it could potentially process not only numbers but any symbolic notations, including musical and artistic ones. She saw the poetry in such an idea, and she set out to encourage others to see it as well.

She barraged Babbage with letters, some of which verged on cheeky, even though he was twenty-four years her senior. In one, she described the solitaire game using twenty-six marbles, where the goal is to execute jumps so that only one marble remains. She had mastered it but was trying to derive a “mathematical formula . . . on which the solution depends, and which can be put into symbolic language.” Then she asked, “Am I too imaginative for you? I think not.”32

Her goal was to work with Babbage as his publicist and partner in trying to get support to build the Analytical Engine. “I am very anxious to talk to you,” she wrote in early 1841. “I will give you a hint on what. It strikes me that at some future time . . . my head may be made by you subservient to some of your purposes and plans. If so, if ever I could be worthy or capable of being used by you, my head will be yours.”33

A year later, a tailor-made opportunity presented itself.

LADY LOVELACE’S NOTES

In his quest to find support for his Analytical Engine, Babbage had accepted an invitation to address the Congress of Italian Scientists in Turin. Taking notes was a young military engineer, Captain Luigi Menabrea, who would later serve as prime minister of Italy. With Babbage’s help, Menabrea published a detailed description of the machine, in French, in October 1842.

One of Ada’s friends suggested that she produce a translation of Menabrea’s piece for Scientific Memoirs, a periodical devoted to scientific papers. This was her opportunity to serve Babbage and show her talents. When she finished, she informed Babbage, who was pleased but also somewhat surprised. “I asked why she had not herself written an original paper on a subject with which she was so intimately acquainted,” Babbage said.34 She replied that the thought had not occurred to her. Back then, women generally did not publish scientific papers.

Babbage suggested that she add some notes to Menabrea’s memoir, a project that she embraced with enthusiasm. She began working on a section she called “Notes by the Translator” that ended up totaling 19,136 words, more than twice the length of Menabrea’s original article. Signed “A.A.L.,” for Augusta Ada Lovelace, her “Notes” became more famous than the article and were destined to make her an iconic figure in the history of computing.35

As she worked on the notes at her country estate in Surrey in the summer of 1843, she and Babbage exchanged scores of letters, and in the fall they had numerous meetings after she moved back to her London home. A minor academic specialty and gender-charged debate has grown up around the issue of how much of the thinking was hers rather than his. In his memoirs, Babbage gives her much of the credit: “We discussed together the various illustrations that might be introduced: I suggested several but the selection was entirely her own. So also was the algebraic working out of the different problems, except, indeed, that relating to the numbers of Bernoulli, which I had offered to do to save Lady Lovelace the trouble. This she sent back to me for an amendment, having detected a grave mistake which I had made in the process.”36

In her “Notes,” Ada explored four concepts that would have historical resonance a century later when the computer was finally born. The first was that of a general-purpose machine, one that could not only perform a preset task but could be programmed and reprogrammed to do a limitless and changeable array of tasks. In other words, she envisioned the modern computer. This concept was at the core of her “Note A,” which emphasized the distinction between Babbage’s original Difference Engine and his proposed new Analytical Engine. “The particular function whose integral the Difference Engine was constructed to tabulate is Δ7ux = 0,” she began, explaining that its purpose was the computation of nautical tables. “The Analytical Engine, on the contrary, is not merely adapted for tabulating the results of one particular function and of no other, but for developing and tabulating any function whatever.”