It Began with Babbage Read online

Page 3


  III

  To understand the principle underlying the Difference Engine, consider the following example.22 Suppose we compute the values of the expression N2 + N + 10 for the consecutive integers N = 0, 1, 2, …, 5. We can display the numbers thus produced by the two leftmost columns of Table 1.1.

  In column D1, we display the differences between successive adjacent values of the column N2 + N + 10. In column D2, we display the differences between the adjacent consecutive values of column D1. Notice that all the values of D2 are the same. This means that we can compute further values of N2 + N + 10 for N = 6, 7, 8, …, and as long as we want by simply doing addition:

  TABLE 1.1

  For N = 6, since the value of D2 = 2, the new value of D1 equals the previous value of D1 + 2—that is, 10 + 2 = 12. Hence, the new value of (N2 + N + 10) = the previous value of (N2 + N + 10) + 12 = 52.

  In mathematical jargon, the expression N2 + N + 10 is a polynomial of degree 2. We see that its second difference, D2, is a constant. The most general form of a polynomial is a + bx + cx2 + … + dxn (of degree n). There was a theorem discovered during the 19th century that states that any continuous function over an interval can be approximated as closely as desired by a polynomial. This means that most mathematical functions can be expressed approximately—but as accurately as one wishes—by such polynomials. And because all polynomials can be built up by difference tables, any mathematical function expressible by a polynomial can be computed by the method of differences.

  In the case of our example, a second-degree polynomial required computing differences up to D2. A third-degree polynomial would require computing differences up to D3, and so on. Babbage’s Difference Engine was planned to handle polynomials of up to degree 6. Thus, his machine would compute columns D1, D2, …, D6.

  IV

  The subsequent history of the Difference Engine takes us into the trichotomy of invention, design, and implementation. In his book The Nature and Aesthetics of Design (1978), David Pye, a British industrial designer and design teacher characterized invention as the discovery of the “general principle of arrangement” that defines a class of artifacts,23 and design as the application of such principles in some actual context leading to a particular embodiment of those principles. Implementation, we take to mean the actual realization of a working artifact conforming to the design—to put into effect the design (see Prologue, Section VI).

  In fact, the distinction between these concepts is never always as neat as this. Invention is a term that can easily apply to any sort of ideation, not just in the realm of artifacts. We speak of Charles Darwin and Alfred Russel Wallace as the co-inventors of the theory of natural selection, of Newton and Leibniz as the co-inventors of the calculus. Design does not enter the discourse in these contexts. On the other hand, invention, design, and implementation may be so entwined that we cannot unravel them into distinct activities or phases. We speak of Thomas Newcomen as having invented the Newcomen engine because he conceived the basic principles, but his invention is linked inextricably with his design of a particular form of the atmospheric steam engine, and the construction (that is, implementation) of the first working engine in 1712 along the lines of its design, which was used to operate a mine drainage pump in Staffordshire in England.24 Here, invention, design, and implementation form a unified activity.

  Ultimately, the litmus test of inventionhood is the originality of the conceived product—whether it is the principle governing an artifact or a technique or a theory. Inventionhood entails creativity.25 Designs may or may not be original. Implementations may or may not be original. Throughout the course of this story, we will come across instances of these diverse situations.

  V

  In 1822, Babbage built a prototype Difference Engine that he used to demonstrate the viability of its principle—a preliminary experiment to test his designas-theory (see Prologue, Section VI). With the support of the Royal Society, he obtained a grant from the British government of £1500 to begin work on a full-scale engine, a comprehensive experiment in effect.

  He employed a leading machine builder and “mechanician” of the time, Joseph Clement (1779–1844), who had been trained under two of Britain’s most eminent mechanical engineers: Joseph Bramah (1748–1814; most well known for his invention of the hydraulic press) and Henry Maudslay (1771–1831). Clement was especially known as a machine tool builder and for his improvements of lathes and precision tools (for which he was awarded the Isis gold medal of the Society for the Encouragement of the Arts in 1827 and the silver medal of the Society of Arts in 1828).

  Thus, Clement’s pedigree as an engineer was impeccable, but he came from a humble background, far removed from Babbage in formal education and social class. In class-ridden Victorian England, Babbage treated Clement as an inferior, a minion, and Clement was apparently extravagant in the charges he demanded for his services.26 Eventually, they fell out, with Clement—according to the laws of the time—retaining possession of the engineering drawings he had prepared and the machine tools he had made for the project.

  Nevertheless, by 1833, Babbage had managed to assemble a part of the Difference Engine—without the printing unit that, of course, he had considered a sine qua non for his machine. This version of the engine is now on display at the Science Museum in London.

  VI

  Figure 1.1 shows a simplified and schematic diagram of the Difference Engine for computing polynomials of degree 2. The machine consisted of three columns, each with six “cages,” with each cage holding one “figure wheel.” The rightmost column was called the “table column”; the middle one, the “first difference column”; and the leftmost, the “second difference column”.

  Ignoring the lowest figure wheel on the table column (which served no purpose), the five figure wheels above it could each be set manually to any one of 10 digits: 0, 1, …, 9. The setting on the lowest figure wheel represented the unit’s digit of a number, the one above it the 10s digit, and so on. So the highest figure wheel represented the 10,000s digit, and the entire table column could be set to any number from 00000 through 99999. As its name suggests, the figure wheels on the table column would hold the table with the values to be calculated.

  FIGURE 1.1 The Difference Engine.

  The five figure wheels (again, ignoring the redundant bottom one) on the first difference (middle) column were exactly identical to those in the table column, except they represented the values of the first difference. Likewise, the figure wheels on the leftmost column stored the values of the second difference.

  When initial numbers were placed on the figure wheels of each of the columns and the handle was cranked, the number held in the second difference column would be added to that held in the first difference column, thereby changing the latter; and the number in the first difference column would be added to the number in the table column, thus altering the latter. By this simple movement of the machine, tables would be computed using the method of difference.27

  A fully operational Difference Engine was never built in England, and although Babbage would return to its design and construction later in his life, he could not interest the government in continuing their financial support. The failure of this project was, apparently, something of a trauma in Babbage’s scientific life and, according to one historian, he never recovered fully from this blow.28 Yet, he must have taken comfort that the Difference Engine would eventually get built—by Swedish printer Georg Scheutz (1795–1873) and his son Edvard—based on a description of the machine in a 1834 article by Dionysius Lardner (1793–1859), a science writer.29 The Scheutz Difference Engine took nearly 20 years to complete, in 1852. It was exhibited at the Paris Exhibition in 1855. In 1856, the Scheutz engine was purchased by the Dudley Observatory in the United States, and in Britain a copy of this machine was built under the supervision of William Farr (1807–1883), statistical superintendent of the General Register Office, where it was set to work churning out new English life expectancy tables.30 So, i
n fact, Babbage lived to see his design carried to full implementation. His theory for an automatic calculating machine was validated experimentally.

  The Difference Engine, as we have seen, was a special-purpose computing machine. It speaks to Babbage’s inventiveness and creativity, certainly; but, it might have been assigned to the prehistory of computer science had it not led its inventor to a much more ambitious project—the idea of a general-purpose or “universal” computer, capable of any mathematical computation. This was Babbage’s grand conception of the Analytical Engine. And here we have an invention of a technological idea, along with a design, but no implementation.

  NOTES

  1. H. H. Goldstine. (1972). The computer from Pascal to von Neumann (Chapter 1). Princeton, NJ: Princeton University Press.

  2. Ibid., p. 8n.

  3. T. S. Ashton. (1969). The Industrial Revolution. London: Oxford University Press.

  4. L. T. C. Rolt. (1963). Thomas Newcomen. London: David & Charles/Dawlish MacDonald.

  5. R. L. Hills. (1989). Power from steam: A history of the stationary steam engine. Cambridge, UK: Cambridge University Press.

  6. R. Holmes. (2008). The age of wonder. New York: Vintage Books.

  7. C. Babbage. (1994). Passages from the life of a philosopher (p. 21). Piscataway, NJ: IEEE Press (original work published 1864).

  8. M. Campbell-Kelly. (1994). Introduction (pp. 7–35). In Babbage, op cit., p. 12.

  9. By the 20th century, to be elected an FRS was the Holy Grail of most British and Commonwealth scientists. In Babbage’s time, however, the society was still very much a community of upperclass Oxbridge-educated gentlemen, not all of whom were interested in scientific research. E. N. da C. Andrade. (1960). A brief history of the Royal Society (p. 11). London: The Royal Society.

  10. Campbell-Kelly, op cit., p. 17.

  11. Babbage, op cit., p. 22.

  12. Ibid., pp. 30–31.

  13. A. Findlay. (1948). A hundred years of chemistry (pp. 36–38). London: Gerald Duckworth.

  14. J. L. Lowes. (1930). The road to Xanadu. Boston, MA: Houghton-Mifflin.

  15. Babbage, op cit., p. 31.

  16. C. Babbage. (1822). The science of numbers reduced to mechanisms. Quoted in Campbell-Kelly, op cit., p. 14.

  17. This method had been used, for example, in the French manual table-making project for the French ordinance survey during the 1790s. Campbell-Kelly, op cit., p. 13.

  18. Babbage, op cit., 1994, p. 30.

  19. Ibid.

  20. Ibid., p. 31.

  21. Ibid.

  22. See also Goldstine, op cit., pp. 17–19.

  23. D. Pye. (1978). The nature and aesthetics of design (p. 21). London: Herbert Press.

  24. G. Basalla. (1988). The evolution of technology (pp. 35–40). Cambridge, UK: Cambridge University Press.

  25. S. Dasgupta. (1996). Technology and creativity (p. 55). New York: Oxford University Press.

  26. Campbell-Kelly, op cit., pp. 217–222.

  27. Babbage, op cit., 1994, pp. 47–49.

  28. Campbell-Kelly, op cit., p. 29.

  29. D. Swade. (2001). The Difference Engine: Charles Babbage and his quest to build the first computer. New York: Viking.

  30. Campbell-Kelly, op cit., p. 31.

  2

  Weaving Algebraic Patterns

  I

  THE ANALYTICAL ENGINE has a startling place in the history of computing. To the best of our knowledge, no machine had ever before been conceived along its lines. More remarkably, some of its key principles of design would actually be reinvented a century later by people who were, apparently, ignorant of it. If imitation is the sincerest form of flattery, then so is reinvention or rediscovery, at least when born from ignorance. It tells us much about how ahead of one’s time the original creator was. This reinvention of Babbage’s idea was particularly poignant because it would become the fount of fruitful and rich phylogenetic pathways in the later evolution of the digital computer and the emergence of computer science.1

  II

  Dissatisfaction is a prime generator of the creative urge, dissatisfaction with the status quo and the desire to change it to something better.2 Charles Babbage was unhappy with the waste of human mental labor in computing mathematical tables, which led to his desire to free human beings from this tedium—hence, the Difference Engine.

  However, the Difference Engine produced its own discontent. As Luigi Frederico Menabrea (1809–1896), an Italian military mathematician (and, later, prime minister of Italy) would explain apropos the Difference Engine, its use was limited to one particular kind of computation. It could not be applied to the solution of “an infinity of other questions” of interest to mathematicians. It was this limitation and the attendant discontent that led Babbage to conceive the machine he called the Analytical Engine, the operation of which he believed would encompass the full range of algebraic problems.3

  The Difference Engine was not general enough. Babbage desired a computing engine that could range over the whole of “mathematical analysis.” As he explained in a letter to the Earl of Rosse, then president of the Royal Society, his Analytical Engine would have the power to perform the “most analytical complicated operations.”4 Here, then, is Babbage’s promise: a mathematical machine with “nearly unlimited” powers.

  Babbage’s name for his new machine is significant. The Difference Engine could only compute functions according to the method of differences—hence its name. In mathematics, the study of infinite processes, also called transcendental functions (for example, the function sin x = z/1! – z3/3! + z5/5! – …), is called analysis5—hence, Analytical Engine, a mathematical machine of the most general sort.

  We get a sense of how general the Analytical Engine’s capabilities would have been if it had been implemented (which it was not) by reading both Menabrea’s Sketch of the Analytical Engine (1842) as well as the notes on the machine appended to the “Sketch” (written originally in Italian) by its translator into English, Augustus Ada, Countess of Lovelace. (We read more about this remarkable woman later in this chapter.) Thus, Menabrea takes us, in great detail, through the sequence of operations the engine would execute to solve a pair of simultaneous linear equations.6 And in one of her notes, Lovelace demonstrates, again in detail, the execution sequence by the engine for computing Bernoulli’s numbers.7

  There was another source of discontent regarding the Difference Engine. Babbage was disappointed with the slowness of its adding mechanism. To speed it up, he invented a complex scheme called “anticipated carriage” (a forerunner of the carry look-ahead adder in modern computers). However, in the Difference Engine, this mechanism would have to be replicated for the many different stages in which addition was performed—involving the difference columns and the table column—and this would be prohibitively expensive. So the problem was to implement this faster arithmetic mechanism at a reasonable cost.

  III

  In the language of modern computer science (we are indulging in present-centeredness [see Prologue, section VII]), the logical or functional organization of a computer is called its architecture (discussed much more later). One of Babbage’s major acts of creation in conceiving the Analytical Engine was in response in part to this need to realize an economic implementation of the anticipatory carriage-based addition mechanism. This response was to separate the function of representing numbers in the machine from the task of performing operations upon those numbers—the creation of a single, centralized arithmetic unit (or, in present-centered language, processing unit) and to separate it from the means to hold these numbers. In the Difference Engine, the two mechanisms were conjoined.

  FIGURE 2.1 Architecture of the Analytical Engine A1/A2, accumulators; A/C, arithmetic/control mechanism; B, buffer; T1, T2, … T9, table of constants 1, 2, … 9.

  This separation of processing from storage was an architectural innovation of the highest order. Babbage named the part of the machine that would perform the arithmetic operations the mil
l, and the part that would hold the numbers or values of algebraic variables the store. The contents of the store would pass to the mill and, after an operation is performed by the mill, the resulting value would be returned from the mill to the store.8

  Schematically, the situation is as depicted in Figure 2.1. As for the terms store and mill, a noted Babbage scholar suggests that Babbage drew on these terms metaphorically by appealing to the milieu of textile making wherein yarns were brought from the store to the mill, therein woven into fabric, which was then returned to the store.9

  IV

  If the separation of storage from processing was a profoundly significant innovation (to an extent, as we will see later, that even Babbage may not have appreciated), the other was the manner in which Babbage achieved the “unlimited” power for his mathematical engine as he had promised in the letter mentioned earlier, and as extolled by Menabrea and Lovelace. Where did this generality come from? A generality that, Lovelace said, would even allow the engine to compute functions of any number of other functions, such as

  F(x, y, z, log x, sin y, xn, ….)10

  Babbage envisioned his promised generality by way of an analogy. The use of analogy is one of the most common ways of creative thinking. The process is roughly along the following lines: First, search for a similarity between the problem with which a person is grappling and some other situation with a solution that is well understood. Second, establish a correspondence between features of the two situations. Third, extract from the familiar, understood situation relevant aspects and “map” them to the unfamiliar problem. Fourth, and last, use these mappings to solve the problem.11

  There are no guarantees that analogical thinking will always work, but when it does, the outcome can be fruitful, rich, unexpected, and consequential. Sometimes, the analogy may become embedded in one’s language and thus becomes a metaphor.12