January 1, 2020


Where should I begin?

20 years ago, Neal Stephenson said “In the beginning… was the command line.” I’m typing this on a Raspberry Pi running Linux, an operating system with a Unix-like command line, originally written for the 32-bit Intel PCs of the early 1990s. Unix, in turn, originated at Bell Labs in the ‘70s, as a vastly simplified Multics-like OS for DEC minicomputers. The creators of Unix had been pulled off the Multics project, a joint venture between MIT, GE, and AT&T to make a successor to CTSS for GE mainframes, when AT&T pulled out. (And GE sold its computer division to Honeywell shortly thereafter, for those keeping score.)

Now CTSS was developed at MIT for the IBM 7090 mainframe, and only ever ran at MIT. As far as I can tell, it really was the first OS with a command line, as well as files and directories and other things we consider essential to computing today - but it was the Compatible Time-Sharing System, meant to coexist with the even earlier batch processing operating systems like the Fortran Monitor System…

So where should I begin?

The question of “what was the first computer” is a source of national pride. As an American, I’d suggest it was the ENIAC, but a Brit might counter with the Colossus and a German with the Z3. But then we turn to the question of what is or isn’t a “real” computer. The Colossus, though earlier and more advanced than the ENIAC, was a dedicated code-breaking machine and not a programmable computer. The Z3 was a mechanical relay machine, as opposed to the fully electronic ENIAC, though in this age of nanometer-scale transistors a vacuum tube seems almost as primitive as a relay, or the gears in Babbage’s unbuildable machines.

I’d point to the Manchester Baby as the first thing that looks like a computer we have today: it had a binary machine language as opposed to being programmed by rewiring, was intended to be programmable for general purposes (unlike the accidentally Turing-complete Z3), and had, in modern parlance, a whopping 128 bytes of RAM. Of course, it was never meant for “real” work, but as a test-bed for technologies to be used in “real” computers, and its contribution to history has to be examined in that light. In America, the EDVAC and Von Neumann’s IAS machine were already in the works when the Baby ran its first program, and papers on their designs were widely circulated. Ideas traveled back and forth faster than they could be made real. They still do.

Anyway, “programmability” is an ahistorical lens. We recognize it as important now, but at the time it was less important and a dedicated machine could be just as impressive as a “general purpose” one. (And computers weren’t cheap enough to be “general purpose” until the 1960s anyway.) As a retrospective on another early computer put it:

What we’re trying to do with perspectives here is to get back to a time when people didn’t know what they know now, try to understand what they were thinking before the questions became as clear as they seem to us now, and certainly before the answers did.

And when I look back at the history of technology, or the history of anything, I often find things that seem relevant now but were much less relevant at the time. Like almost every other piece of text out there today, this post is encoded into ones and zeroes in Unicode, which was based on ASCII, which was based on telegraph codes and used by the last generation of telegraphs before the Internet took over. Its earliest predecessor that looks like “modern” encodings was Émile Baudot’s code for his printing telegraph. I look at Baudot and think, it’s a 5-bit binary encoding with shift characters, and being fixed-length was an obvious innovation over Morse so a machine could automatically print the character instead of needing a human to interpret the dots and dashes. In fact that’s not what Baudot was doing at all – the printing telegraph already existed with a timing-based code. Baudot’s aim was to make telegraphy more efficient by multiplexing signals and the fixed-length code was a natural consequence of that. It was later innovations, notably Donald Murray’s introduction of a typewriter-style keyboard and Howard Krum’s start/stop coding, that made these kinds of telegraph codes practical, nigh universal, to the point where the developers of CTSS could use an off-the-shelf Flexowriter to create the first command line…

So where should I begin?

I guess this is as good a place as any.

© 2020 Bronx River Software

Powered by Hugo & Kiss.