October 17th, 2011 at 9:37 am by Dr. Drang
Last week’s obituaries of Dennis Ritchie focused, naturally, on his creation of C and his co-creation, with Ken Thompson, of Unix. I want to talk about something else: the remarkable clarity of the writing done by Ritchie and the other early Unix developers at Bell Labs.
The early Unix user’s manuals, both the man pages and the longer pieces, were written by the programmers themselves. You might think this a recipe for disaster; as a class, programmers aren’t known for their facility with English. But the early Unix developers weren’t ordinary programmers. They were researchers who thought deeply about how programs, languages, and operating systems ought to be organized, and they expected to write technical papers about their work.
Scholarly papers have a reputation for dullness, but good ones aren’t dull to people who know, or want to learn, the topic. If you have any interest in Unix, you should take a look at Dennis Ritchie’s old home page. Not only will you find links to wonderful old papers about C and Unix, you’ll get an immediate sense of the man behind them. Here’s the section he labels History:
For many years, I worked in the Computing Sciences Research Center of Bell Labs. On October 2005, a reorganization redistributed this group, and I’m now with the center called by the slightly ungainly name of Convergence, Software and Computer Science Laboratory (but still in the same office). This experience has been more varied than it might seem; here’s some of the history:
When I joined in 1967, Bell Labs was a corporation jointly owned by American Telephone and Telegraph Company and its subsidiary Western Electric. Its official name was Bell Telephone Laboratories, Incorporated. Soon after, Ken Thompson, together with me and others, first started work on Unix. Also soon after, AT&T, which still owned most of the Bell System, updated its logo (I doubt the events were related). The new logo just updated the image; corporate structure remained the same. The material published by us during the period up to 1984 used this Bell logo and the name “Bell Laboratories.” In 1984, AT&T, under a negotiated consent decree, divested the local telephone companies it had owned and in the process gave up the Bell logo and the Bell name except in connection with Bell Laboratories. Bell Telephone Laboratories Inc. was dissolved as a corporation and became an integrated unit of AT&T. We lost the Wehrmacht helmet and gained the Deathstar, and now identified ourselves as working at “AT&T Bell Laboratories.” In 1996, AT&T (this time voluntarily) spun off its systems and technology organizations into Lucent Technologies, while AT&T kept the services business. Bell Labs stayed mostly with Lucent, though some of our colleagues helped form a new AT&T labs, much as some of us went to Bellcore in 1984. The new corporate logo usually includes the line “Bell Labs Innovations.” Lucent and Alcatel merged as of Dec 1, 2006. Another new name and logo! and still the same office.
Bell Labs has remained a remarkably good place to do work that has enduring impact over the long run, no matter what the company, the courts, the PR types or upper management decide should be our name and logo on a given day or year.
Concise, factual, gently humorous. The same style you see in most of the old Unix stuff.
Ritchie’s most famous piece of writing is, of course, The C Programming Language, which he wrote with Brian Kernighan. K&R is basically a rewrite of Kernighan’s C tutorial, Ritchie’s C reference manual, and a paper with the same title written by Ritchie, Kernighan, Steve Johnson, and Mike Lesk for a 1978 issue of the Bell System Technical Journal that was all about Unix. Most C programming books could substitute as boat anchors; K&R is only half an inch thick but always seems to have the answer you’re looking for.
(These are my copies of the 1978 and 1984 special Unix issues of the Bell System Technical Journal. Why do I have them? I found them on the giveaway shelves at my local library. This isn’t as weird as it sounds. I live in Naperville, Illinois, home to one of the Bell Labs facilities. People often donate their old books to the library, and the library gives away those it can’t make use of. Someone from the Labs must have dropped these off when clearing out their own library shelves. I’ve scored a handful of Unix books this way.)
Kernighan (the K in AWK) was probably the best writer of the group. I am continually amazed at how he manages to get across complex ideas in so few words. My favorite passage in any piece of technical writing is in the user manual for eqn1 he wrote with Lorinda Cherry:
A word of warning about matrices—each column must have the same number of elements in it. The world will end if you get this wrong.
Alfred Aho (the A in AWK) cowrote the Dragon books on compiler design. Ken Thompson wrote “Reflections on Trusting Trust”, which says, in a very simple and understandable way, things about compilers that Aho would probably prefer to sweep under a rug.
The clarity of these guys’ writing is undoubtedly a reflection of the clarity of their thoughts—the same clarity that makes Unix such a pleasure to use. We Mac and Linux users are lucky to have had such brilliant forebears.
One more thing. If you’re a proponent of plain text files, you have another reason to appreciate Dennis Ritchie and the old Unix developers: they wrote a ton of tools for manipulating text. Both the tools they wrote directly—like troff, grep, awk, sed, sort, wc, tr, and so on—and the later tools they inspired—like Perl, Python, and Ruby—are the basis for all the Markdown/HTML/PDF transformations that are part of your daily workflow.
The Ritchie family recently updated the DMR page at Bell Labs. The old content is still there, but they’ve added this:
Dennis died in early October, 2011. This is a note from his sister and brothers: As Dennis’s siblings, Lynn, John, and Bill Ritchie—on behalf of the entire Ritchie family—we wanted to convey to all of you how deeply moved, astonished, and appreciative we are of the loving tributes to Dennis that we have been reading. We can confirm what we keep hearing again and again:
Dennis was an unfailingly kind, sweet, unassuming, and generous brother—and of course a complete geek. He had a hilariously dry sense of humor, and a keen appreciation for life’s absurdities—though his world view was entirely devoid of cynicism or mean-spiritedness.
We are terribly sad to have lost him, but touched beyond words to realize what a mark he made on the world, and how well his gentle personality—beyond his accomplishments—seems to be understood.
Lynn, John, and Bill Ritchie