I’ve written about this before but that was 9 years ago and it’s a great story so perhaps a reprise is due. The story is about the birth of stderr
. As I wrote last time, the concept seems so natural and necessary that it’s hard to believe that it wasn’t invented at the same time as stdout
but it wasn’t.
In these days of cheap laser printers that just about anyone can afford, it’s hard to comprehend how difficult and messy things were when the Unix typesetting program, troff
, was written. In those days, the C/A/T typesetter—the machine that did the actual typesetting—was a washing machine sized device that was driven by a separate computer. Unlike today’s printers, the C/A/T didn’t produce finished copy. Rather it produced a film that had to be developed separately to produce a hard copy.
Given all this, those early users wanted to limit errors as much as possible so they could avoid repeating this messy and difficult process. Then one day, several users got a printout saying that such and such a file couldn’t be opened. A couple of days later, after grumbling to the appropriate people, stderr
was introduced so that errors would be delivered on a different channel.
I love this story because it not only tells us the history of one of the fundamental Unix mechanisms but also gives us an idea of what the early days of computer typesetting were like.