Friday, October 15, 2010

Babbage: Inventor, Mathematician, Computer Scientist, Hacker

"Lo! the raptured arithmetician! Easily satisfied, he asks no Brussels lace, nor a coach and six.  To calculate, contents his liveliest desires, and obedient numbers are within his reach."

E. De Joncourt, On the Nature and Notable Use of the most Simple Trigonal Numbers
Charles Babbage quotes the above passage in his 1864 work, Passages from the life of a philosopher, illustrating the pure joy he feels when working with mathematics.  One can't help but feel the same sense of wonder as he explains the algorithms underlying his beautiful Difference Engine. Imagine his wonder if he had ever seen it operating!

In reading Babbage's work, you get a glimpse into his life as an inventor.  Babbage recounts sitting in the rooms of the Analytical Society in Cambridge, dreaming over a table of logarithms and pondering how they might be calculated by a machine.  The Analytical Society, of which Babbage was a charter member, was founded to advocate for the use of Liebniz's method of calculus, rather than Newton's, so this gives you a sense of his head for mathematics.  Babbage goes on to describe in minute detail how he went about designing and beginning the construction of his difference engine, which would consist of many gears and essentially be a mechanical computer, complete with a means of input and output (the tables would be printed both on paper and as impressions on a soft materials making a kind of automated typsetting).  In this we see how Babbage was essentially an early computer scientist, thinking in terms of algorithms and how they might be implemented.  In later pages he even discusses parallel computation, far ahead of the popularity today of multi-core processors.  And Babbage is a hacker too, for he figured out how to design this incredible machine out of what he had available at the time, making the best of 19th century materials and means.

Babbage's Difference Engine is truly a wonder, the forerunner of modern computers.  From this modest beginning, we have elaborated on computing concepts to build ever more elaborate machines, and with them powerful control software known as an operating system.  The Prezi presentation below illustrates how our modern hardware and software operates to provide the computing abstractions in contemporary systems.