Charles Babbage, perfectionist engineer

I recently finished Sydney Padua’s entertaining and educational The Thrilling Adventures of Lovelace and Babbage. Several of the stories are available online, but the book is well put together (not to mention much easier to read than the web version) and includes a bunch of integrated source materials and illustrated footnotes.

The Thrilling Adventures of Lovelace and Babbage

Babbage completing his Analytical Engine is one of history’s great “what ifs”, but is is perhaps more unfortunate that he didn’t finish the Difference Engine. He had a working prototype of part of it, and we know that it would have worked, because two have been built. I had the good fortune to see one in action at the Computer History Museum several years ago, and watching it work was mesmerizing.

One of the primary documents included in The Thrilling Adventures of Lovelace and Babbage is part of a talk given by John Fletcher Moulton to honor Napier. Moulton recounts a visit he paid to Babbage, and contrasts Babbage’s flightiness with Napier’s ability to see his task to completion.

That which impresses me most deeply is [Napier’s] tenacity of aim, combined with his receptivity of new ideas in attaining it. From first to last it was a Table of Logarithms of sines that he proposed to make, and he did not permit himself to be turned aside from that purpose till it was accomplished. His concepts evidently widened as he proceeded, and he must have been sorely tempted to turn from his comparatively restricted task to larger schemes. But he wisely resisted the temptation. He saw that he must create an actual table and give it to the world, or his task was imperformed. Would that other inventors had been equally wise! One of the sad memories of my life is a visit to the celebrated mathematician and inventor, Mr Babbage. He was far advanced in age, but his mind was still as vigorous as ever. He took me through his work-rooms. In the first room I saw the parts of the original Calculating Machine, which had been shown in an incomplete state many years before and had even been put to some use. I asked him about its present form. ‘I have not finished it because in working at it I came on the idea of my Analytical Machine, which would do all that it was capable of doing and much more. Indeed, the idea was so much simpler that it would have taken more work to complete the Calculating Machine than to design and construct the other in its entirety, so I turned my attention to the Analytical Machine.’ After a few minutes’ talk we went into the next work- room, where he showed and explained to me the working of the elements of the Analytical Machine. I asked if I could see it. ‘I have never completed it,’ he said, ‘because I hit upon an idea of doing the same thing by a different and far more effective method, and this rendered it useless to proceed on the old lines.’ Then we went into the third room. There lay scattered bits of mechanism, but I saw no trace of any working machine. Very cautiously I approached the subject, and received the dreaded answer, ‘It is not constructed yet, but I am working at it, and it will take less time to construct it altogether than it would have taken to complete the Analytical Machine from the stage in which I left it.’ I took leave of the old man with a heavy heart.

As a programmer, this rings true to me, to the point of being painful. How many projects are left undone because something better came along? It’s important to take a step back and recognize the value of finishing things.