Saturday, November 13, 2010

This Is How Far We Have Come

Back in the 19th Century, Charles Babbage came up with an eminently sensible and inherently error-free way to automatically calculate and print accurate tables. You might not need a table of logarithms or trig functions (and if you did, your telephone, computer or just about any cheap pocket calculator can spit out whatever numbers you need) but until recently they were both essential and susceptible to human error -- one 1800's British official handbook of tables for navigators had eight layers of errata for a single edition!

Babbage was dogged by problems; operating at or slightly beyond the cutting edge of contemporary mechanical precision, he or his workers often had to invent the machines to make the machines to make the parts for any working model and that took money, a lot of it. One way to control costs was to be right first time and to that end, he developed a highly sophisticated system of notation for mechanical action; not detailed drawings of parts and assemblies but what amount to "circuit diagrams," accompanied by recognizable logic-state charts, detailing the condition of every portion of the machine for every interval of time.

(...Which means even the Difference Engine is clocked logic, just like inside your computer. His next project was even more like your computer).

So, big win, right? He's able to draw schematics and step through what's happening on paper, before ever starting the first detailed drawing for a cam or a gear, let alone actually making those parts. He and his team can get it right, build it and be heroes!

Maybe they could've. But about then, the money ran out and this time, he didn't have enough in the way of personal funds to tide the crew over while he went looking for a grant; he and his master machinist got a little crosswise and things went from bad to worse....

And even worse. You see, in the process of thinking how devices of this sort would work, the first big calculating machines ever conceived, in coming up with a way to describe them on paper, the simple (ha!) method-of-differences logic in the Difference Engine primed Mr. Babbage to dream up a general-purpose computer: the Analytical Engine.

He fell victim to a phenomenon Richard Feynman, working at Los Alamos with IBM card handling machines and a crew of clever college grads a century after Babbage's time described as "...[A] very serious disease and it interferes completely with the work. ...[P]retty soon you can do more and more elaborate things, if you are clever enough, on one machine. ...[I]f you've ever worked with computers, you understand the disease." (The Pleasure Of Finding Things Out, pp 81-2; if you want to know how a really brilliant mind runs, read Dr. Feynman's books). Engrossed by the details, the actual task falls by the wayside.

The Analytical Engine was nothing more -- or less -- than a high-precision 4-function calculator that could be set to execute a prepared sequence of mathematical operations. I'm just old enough to remember the Texas Instrument "four-bangers" that came with a little book explaining how to accomplish Serious Calculation by a sequence of operations using the four basic functions....over and over. This is immensely powerful and his design did just that: set it up, load in the data and watch it go 'til the answer pops out! It clearly separates input data, stored data and the program itself, a huge step in understanding. It was clever. It was engrossing. It would eat Difference Engines for lunch! --And there went Charles Babbage, right down the rabbit-hole. Having promised a machine that would crank out accurate tables, literally crank them out with no thought needed once the initial conditions were set, he was now way off track and never got back. He did eventually produce drawings for Difference Engine #2, with a much reduced parts count -- see Dr. Feynman's "...soon you can do more and more elaborate things, if you are clever enough, on one machine...." the problem being, you end up playing with what the machine can do instead of making it actually do what it actually ought.

His son eventually built a small section of the Difference Engine, before the 20th Century dawned. It worked precisely as intended. Near the end of the 20th Century, a wealthy man had an entire one built, at tremendous expense; it, too worked just as Babbage had determined it would. The British Museum (Or was it the London Science Museum? There seem to be two of these Engines!) had it for a year, a massive multi-ton device, yet elderly female docents were running it with a hand crank (and a 4:1 reduction gear; Babbage had intended the full-size machine be run by a steam engine).

On the other hand, there are fellows who build 'em out of a few hundred bucks worth of Mechano sets; EU-Erector sets, if you will:


I've been reading a Dover Press reprint of several publications by or about Charles Babbage and his machines. Truly an impressive mind, always able to take the next logical step.


Alan said...

That video made me giggle like an idiot.

Thank you.

reflectoscope said...

This one I must read again in the AM with a full head of caffeine. There is something important here.


Timmeehh said...

That was the kewlest thing I've seen in a while.

John Peddie (Toronto) said...

" end up playing with what the machine can do instead of making it actually do what it actually ought..."

Bill Gates made billions using that simple precept as a business model.

All you need is a gullible market and some attractive-even if accidentally created-product.

No matter that nobody needs it.

As a further incentive, it's also monument to the genius of the inventor, until it's eclipsed by next month's newest invention.

Roberta X said...

John, I'd argue against that reading. If Bill Gates had fallen (deeply) into that trap, he'd've never mad a dime from a single line of code, other than by accident, and he'd never released any product; there'd be clever snippets of his work used by everyone else but probably nothing complete.

The Gates/DOS/Windows story teaches us something else: even kludgey code that does what the greatest number of paying users want in a way they can use it without having to learn a lot about the mechanics, will always beat elegant but harder to use competition. Especially if the kludge arrives with a lot more software.

It is just about backwards to everything that makes a really good programmer happy.

Blackwing1 said...

My hero is still Isambard Kingdom Brunel, the hero of the railways.

Have you ever read Harry Harrison's, "A Trans-Atlantic Tunnel, Hurrah!"? It's sort of a fore-runner to the current steam-punk stuff. An alt-history in which the Colonials lost the War of Rebellion, and one of George Washington's direct descendants is a great railway engineer.

Babbage's engine is mentioned briefly in it.

D.W. Drang said...

Good programmers gotta eat, too...

Since I'm on kind of a Google Books kick lately, here are some Google ebooks by or about Babbage:
charles babbage - Google Search
And, what the heck? Here's Google Books' collection on Ada Lovelace: ada lovelace - Google Search

Ken said...

You guys have to be reading 2D Goggles, right? Babbage, Lady Lovelace, and Brunel.

(2dgoggles daht com)

Roberta X said...

Ken: oh, my yes! It's delightful!

Blackwing1: Originally "Tunnel Through The Deeps," I first read it serialized in used bookstore back-issues of Analog, complete with delightful illustrations and I was utterly charmed. Went looking for more of the same -- very thin on the ground, those days.

Ed Skinner said...

The video should be titled "Steampunk Borg".

D.W. Drang said...

Far too ate to be true Steampunk, but still...BeHoLD THe MONIAC | zero hedge