Charles Babbage, 'Irascible Genius,' and the First Computer

(Doron Swade's Computer History Museum Lecture on Charles Babbage and his Engines, May 10, 2008 at the Opening of the Babbage Exhibit at the Museum)

Alan J. Weissberger IEEE Sr. Member and Program Chair IEEE ComSoc SCV

Disclaimer: All opinions, inferences and conclusions expressed in the article are that of noted Babbage authority Doron Swade, who presented the lecture. Dr. Swade later clarified various aspects of his talk as well as the construction of Babbage Difference Engine 2 at the London Museum of Science, where he was responsible for its construction and a documentary video.

Overview
Charles Babbage (1791-1871) was famous for inventing computing machines in the mid 19th century, yet failing to build any of them. He was not the only one who didn't succeed. Inspired by this high echelon member of British society, others tried and failed to build the computing machines Babbage conceived. This was in an age where various frivolous types of machines (many with no practical functions) were actually built. What was the significance of Babbage's machines and why weren't they completed in his lifetime? Difference Engines 1 and 21 were strictly calculators that crunched numbers via repeated additions. The results were envisioned to improve the accuracy of many mathematical tables (e.g. maritime tables used by navigators at sea), which were calculated manually and therefore prone to human error. Babbage also saw his Difference Engines as a new technology of mathematics. This was a central interest for him. Human errors in mathematical calculations and tables achieved prominence both as the jumping off point and also as a device of persuasion when he was seeking financial support to build Difference Engine No. 1. The second machine, known as an Analytical Engine, is much more than a calculator. It marks the progression from the mechanized arithmetic of calculation to general-purpose computation -with a program store separated from the processing unit. In light of subsequent developments in modern computing, the features incorporated in the Analytical Engine design show astonishing prescience (those features are detailed in the Analytical Engine section, which appears later in this article). The first realized Babbage machine was Difference Engine No. 2. It was completed at the London Museum of Science in 2002, 153 years after Babbage designed it. Difference Engine No. 2 was faithfully built to the original drawings. It consists of 8,000 parts, weighs five tons, and measures 11 feet long. A duplicate of that machine was constructed in March 2008 (also in London) and was shipped to the Computer History Museum (CHM) in Mountain View, CA where it is on exhibit until May 2009. Sadly, the Analytical Engine was never completed. To kick off the CHM Babbage exhibit on May 10th, 2008 approximately 550 people attended a very well received afternoon lecture by Doron Swade, which is described below. The panel provides a simplified description of the exhibit. 

Why Weren't the Difference Engines Built?
The reason given in most popular accounts for the failure to build the Difference Engines was the limitation of the Victorian age tools (e.g. cylinder cocks and levers, picks for probes, etc) that were to be employed in the construction of the machines. But there is no historical evidence for this "technology limitation" theory, if this is taken to mean that he was unable to manufacture parts with sufficient precision for the calculating machines to work when assembled. In fact, no one at that time had warned that these calculating machines could not be built. Many other machines - some of them useless - were in fact built using those same Victorian era mechanical parts and tools. Instead, there were a myriad other factors contributing to the failure to physically realize the Difference Engines. These included: an argument with his lead engineer over worker compensation, run-away costs, muddled financial arrangements, wrangling with a changing British government for funding, and a resulting discontinuity of negotiations over funding and construction. Perhaps, Babbage's personality had more to do with the failure to complete the Difference Engines then the underlying technology of the time. Known by his first biographer as the "irascible genius" Babbage had lots of pride and hubris. He behaved as though being right entitled him to be rude. His quarrels with the British government and with chief engineer Joseph Clement might have doomed the project. When Clement resigned in March 1833, the practical construction of Difference Engine No. 1 stopped - 11 years after it was conceived. Negotiations with the British government continued, but funding was finally axed in 1842. Difference Engine No. 2 was conceived and designed between 1846 and 1849 - long after the design of the (never completed) Analytical Engine. Regrettably, none of these three machines were built in their entirety in Babbage's lifetime. Only years later did we recognize the potential and power of the underlying machine architectures, which were independently "discovered" by later day computer pioneers.

Fundamental Concepts and Features of the Difference Engines
Babbage was first motivated by an urge to create more accurate mathematical tables. Some argued that absolutely correct maritime tables were needed to improve ship safety and result in fewer shipwrecks. Babbage wrote that machines could more accurately do the low level calculations needed to produce correct tables. Difference Engine No. 1 was based on the method of finite differences. This technique was well known at the time and used by humans in the calculation of mathematical tables. The basic concept was for the machine to use repeated additions to perform mathematical calculations that would effectively replace multiplication and division that had been done by hand. For example, finding the value of a polynomial requires evaluating each of its terms, which typically requires multiplication and/or division. But those operations could be accomplished by successive additions in the Difference Engine. Babbage envisioned the machine to be able to evaluate polynomials, find the nth term of a series, and evaluate various types of mathematical expressions. So the application of the results had potentially wide use. Babbage designed Difference Engine No. 2 between 1846 and 1849. It was to be an improved version of the original Difference Engine No. 1 machine. This Engine calculates with numbers thirty-one digits long and can tabulate any polynomial up to the seventh order. The design was elegantly simple and required three times fewer parts than Difference Engine No. 1 for similar computing power. No. 2 was planned to calculate and tabulate polynomials, printing results in hard copy and producing stereotype molds for plates intended for use in conventional printing presses. There were many features of these two Difference Engines that can be explicitly recognized in modern computers. These include: - parallel operation - microprogramming - pipelining - digital control - pulse shaping - binary latching - polling (of the binary latches) - input/output

The Analytical Engine
Not at all discouraged by lack of success in building Difference Engine No. 1., Babbage talked with Ada Lovelace in 18342 about building a new type of machine that would be much more general purpose and programmable (via punched cards read by a mechanical card reader). The use of punched cards was an idea borrowed from the "Jacquard loom" used for weaving complex patterns in textiles. Programmability, as well as other modern era computing principles, were embodied in the design for the Analytical Engine (see list below). One of the most visionary aspects of the Analytical Engine was an internal architecture that separated the "memory" from the "processor." Using descriptions borrowed from the textile industry, Babbage called the memory "the store" and the processor "the mill." The separation of store and mill foreshadowed von Neumann's stored program machine scheme, which is used in all computer architectures in the electronic era (including PCs, microprocessors and calculators). Yet, the Analytical Engine was not to be a true stored program machine. Its designs do not feature facilities for internally storing programs. Instead, instruction sequences as well as data were to be held externally on pasteboard punched cards and input from mechanical card readers. Recognizable modern day computing features3 found in the Analytical Engine included: - programmable using punched cards - internal architecture - separation of Store and Mill (Memory and CPU) - serial fetch execute cycle - parallel bus - Input/Output (I/O) - conditional branching (IF ... THEN ...) - iterative looping - microprogramming - internal repertoire of automatic functions - 50-100 digit precision - parallel processing - hardcopy and graphics output Curiously, Babbage never made a serious attempt at building this machine. He did, however, advise the British government to switch funding from Difference Engine No. 1. to the more general purpose Analytical Engine. When the British government was reluctant to do so, Babbage looked for funding from abroad. It would not be forthcoming.

Complete Construction of Difference Engine No. 2
It took the London Science museum 17 years to complete the construction of Difference Engine No. 2. Originally proposed in 1985 as a piece meal project, it was finally completed in 2002. The complete construction of Engine No. 2., using modern parts made to a 19th-century design confirms Babbage's reputation as a designer of formidable ingenuity. It also demonstrates that achievable precision was not a limiting factor in Babbage's failures, as many had later claimed. We can now say with some confidence that had Babbage built this Difference Engine, it would have worked. The working Babbage Difference Engine No. 2. was completed in 2002 and is currently on public display at the London Science Museum. A duplicate Difference Engine No. 2 and Printer were completed in London in March 2008 for a private benefactor of the project, Nathan Myhrvold, formerly Chief Technology Officer and Group VP at Microsoft. Dr. Myhrvold has generously agreed to lend it to the Computer History Museum (CHM), Mountain View, California, where it will be displayed and demonstrated until May 2009.

Panel: Overview of the Difference Engine No. 2. Exhibit at the CHM4
As noted in this article, Difference Engine No. 2 was designed between 1846 and 1849, but was completed in 2002 at the London Museum of Science. The duplicate 2008 built machine, now on exhibit at the Computer History Museum, weighs 5 metric tons. It consists of 8,000 parts in bronze, cast iron and steel that are equally divided (approximately 4000 each) between the calculating section and the printing/stereotyping apparatus. The machine is shown in Figure 1. Difference Engine No. 2 is manually operated. During scheduled CHM exhibit demonstrations, a museum docent turns the crank handle, which starts the Engine in motion. Continuous turning of the crank is required, which takes a considerable amount of effort and energy by the docent. One calculation result is produced every six seconds. As the calculating section produces each new result, it is transferred via a system of racks and connecting shafts to the type wheels of the printer, where an inked record is made on a paper roll for checking purposes. From there, a second set of racks transfers the value to the stereotype punches which impress a record in soft material in the stereotype trays, forming a mold for the subsequent casting of a printing plate. Note: The technical description of the Difference Engine calculation process is beyond the scope of this article. The interested reader is referred to reference [1] for the authoritative details. The crank handle also drives the printer and stereotype apparatus, which is shown in Figure 2. The stereotyping apparatus is quite ingenuous. It includes an elaborate programmable formatting mechanism to control the layout of the printed page. The "programming" is done by selection of cams to control various parameters: whether results are presented row-wise or column-wise, the number, or rows and columns per page, the width and spacing of rows and columns and the font size. After each result is punched in the mould, the tray is automatically repositioned under the punches by the power of falling weights to the correct position to receive the next result, without any impact on the speed of calculation. [These features would have been critical to producing stereotype moulds that would be used directly to produce parts of a final printing plate.] The official CHM video, which forms part of the Babbage exhibit, includes a computer graphic simulation of the printer apparatus. That video was commissioned by Doron Swade while at the London Science Museum in 1990. Dr Swade was kind enough to give permission for a once-only use by CHM in this movie: http://youtube.com/watch?v=KBuJqUfO4-w An earlier Difference Engine lecture by Doron Swade is available at: http://youtube.com/watch?v=7K5p_tBcrd0

Notes 
1 Difference Engines Numbers 1 and 2 were not designed one after another. In particular, Difference Engine No. 2 was designed after the Analytical Engine. They are discussed together for logical grouping purposes, even though they were not designed in chronological order. 
2 "To Dream Tomorrow - a documentary movie on Ada Lovelace, shown May 10, 2008 at the CHM, Mt View, CA 
3 Babbage did not use these terms, which had not yet been invented at the time. 
4 Reference [1] is a summary article with short overview panels containing technical descriptions no longer than a page each. The 'complete' (i.e. most comprehensive) technical description published to date (60,000 words long) is found in the following reference: Swade, Doron. Charles Babbage's Difference Engine No.2: Technical Description: Science Museum Papers in the History of Technology, 1996. Reference [3] describes how the results of the Babbage Engine calculations could be used to construct Mathematical Tables. 

References:

I. Web links:
http://www.computerhistory.org/babbage/
http://www.computerhistory.org/babbage/charlesbabbage/
http://www.computerhistory.org/babbage/engines/
http://www.maxmon.com/1822ad.htm
http://babbagedifferenceengine.googlepages.com/

II. Articles and Books:

1. Swade, Doron, The construction of Charles Babbage's Difference Engine No. 2. Annals of the History of Computing, IEEE Volume 27, Issue 3, July-Sept. 2005 Page(s): 70 - 88
2. Swade, Doron, The Cogwheel Brain: Charles Babbage and the Quest to Build the First Computer. London: Little, Brown, 2000.
3. Swade, Doron, The 'Unerring Certainty of Mechanical Agency': Machines and Table Making in the Nineteenth Century. The History of Mathematical Tables: From Sumer to Spreadsheets, Edited by Martin Campbell-Kelly, et al. Oxford: Oxford University Press, 2003. Page(s): 143 - 74.
4. Swade, Doron, Redeeming Charles Babbage's Mechanical Computer, Scientific American. February (1993): Page(s): 86 - 91.
5. Swade, Doron, It will not Slice a Pineapple-Charles Babbage and the first computer, Swade, D.; IEE Review Volume 37, Issue 6, 20 June 1991 Page(s): 217 - 220
6. Bromley, A.G., Charles Babbage's Analytical Engine 1838, Annals of the History of Computing, IEEE Volume 20, Issue 4, Oct.-Dec. 1998 Page(s): 29 - 45 7. Grattan-Guinness, Charles Babbage as an Algorithmic Thinker, I.; Annals of the History of Computing, IEEE Volume 14, Issue 3, 1992 Page(s): Page(s): 34 - 48

Acknowledgements
The author thanks Tim Robinson, CHM Sr. Docent, for providing the text that accurately describes the stereotyping apparatus in the Panel. We'd also like to thank Marcin Wichary for the two superb photos he took of the CHM Babbage exhibit which appear in this article.