Thursday, October 13, 2005

From Web to Web...in 200 Years

kw: book reviews, nonfiction, information technology, history

Nearly forty years ago, working as a technician for a Xerox subsidiary, my colleagues and I had a need to gather data more rapidly. The lab had recently acquired a rather expensive digital voltmeter (DVM). Digging around in the manual, we found that it could do two things...wonderful things.

Firstly, it could scan as many as eight inputs, at a rate of one per second, or slower if so desired. Secondly, the digitized voltage was made available electronically at a bank of output plugs, in 5-level Teletype code.

We also had an 029 keypunch. It turned out to be able to take BCD or EBCDIC input, with some added circuitry to tell it when to punch the input or eject and start a new card. We only needed BCD for numbers, so we decided to build an interface. Transistors weren't exactly new, but the affordable ones were fragile. Integrated circuitry was still being invented. We chose to use a bank of telephone relays to effect the data conversion between 5-level and BCD, plus two EBCDIC codes for the period and minus signs.

All the circuitry was designed by my supervisor, the senior lab tech, and I did about half the wiring. We were testing experimental high-powered arc lamps, so we also built circuits to buffer the signals we wanted (lamp volts and amps, light meter reading, pulse power and frequency in pulse mode) to the DVM.

The contraption we made was a wonder to behold. Every couple of seconds the DVM's display would change, the relay board would rattle like a dozen loud knitters, then the 029 would punch a burst of four or five digits, with - and . as needed. Every set of readings went on one card. The date and run number were set up automaticlly using a drum card program.

Before long we had a lot of cards—dozens, then hundreds, then thousands. Though another of the techs could program, he was needed on another project most of the time, so the manager gave me an amazing book, FORTRAN for the IBM 1130: A Programmed Instruction Approach. In about two days I learned FORTRAN II, sat down at our other 029, and began punching my first real program. The 1130's operator showed me how to stack the FORTRAN compiler (a few hundred cards), my program deck, and the "executive" cards that told the 1130 what to do with them all, into a tray in the right order, and I was off.

I call Fortran my mother tongue. It seems to fit naturally into my brain. It was at least a month before I first saw an error message. I have seen more since, but I built a career on seeing very few of them in the first place. Fact is (cough) I am a Superprogrammer. Roughly fifty times as productive as the average 'professional' programmer.

Back to the knitting needles. The sound came back to me, very poignantly, when I read about the sight and sound of the Harvard Mark I in operation. Techno-historian James Essinger wrote in Jacquard's Web: How a hand loom led to the birth of the information age, about the Mark I, "In operation, the machine was described by one commentator as making the sound of 'a roomful of ladies knitting.'"

The thread that developed into IT runs something like this: Jacquard to Babbage & Lovelace to Hollerith to Aiken to the team that designed ENIAC. While Babbage's Difference Engine was never finished (by him), and his Analytical Engine wasn't begun (though Ada Lovelace wrote code that would have run on it), his ideas led directly from the card-programmed loom of Jacquard to the card-controlled Tabulators of Hollerith.

Had Babbage received the level of financial support from the British Government that Aiken did from Thomas Watson at IBM, he might have produced a genuine steam-driven, card-programmed and -controlled digital cogwheel computer in the 19th century. Without IBM support, and later US military support, it might have been another generation or two beyond until a practical computer was built.

Throughout Jacquard's Web Essinger presents capsule biographies of the major players. He weaves a fascinating web of his own, showing how the ideas leapt from mind to mind, enabled at each stage by the technology available. The ideas had to await the technology.

I wonder, if the Analytical Engine had been built, what the world might be like. With a hundred-year head start programming them, regardless of the technology that embodied them, programming today would likely be a much more robust craft than it is. When a major program such as Microsoft Excel can be considered "good" although it is know to have hundreds of thousands of coding errors (tens of thousands are found and corrected yearly), we realize that, though now the technology has grown mightily since 1940 (a billion times in processing speed, a trillion times in storage capacity), the ideas are little advanced. Information science has quite a ways to go to catch up to information technology.

An acquaintance once said, "If we built buildings with the same level of quality that we write computer programs, the first woodpecker to come along would destroy civilization." That's a subject for a rant elsewhen.

No comments: