From dmr to DITA (DocBook, too)

I was sorry to hear of the passing of Unix and C language pioneer Dennis Ritchie. I only met him a couple of times, but found him to be gracious and humble, despite being one of the smartest people I’ve ever met. It was, however, heartening to see the outpouring of stories and to see him widely recognized for his status as a founding father of modern computing.

The obituaries rightfully acknowledge his foundational work with the C language and Unix, which is his primary legacy. However, he also had a strong influence on computer documentation. He and Ken Thompson originated the Manual Page (aka Man Page) and documented the commands, system calls, and APIs for Unix using that format.

When I first went to work at Bell Laboratories in the early ’80s, my manager handed me The C Programming Language and the Unix manual (the latter was just one volume of about 300 pages), pointed me to a computer terminal, and said “take a couple of weeks to learn the system, then I’ll give you your first assignment.” I worked my way through both books from beginning to end (probably why I was always more comfortable with awk than yacc), and in fact was able to handle my first assignment reasonably well, even though that was my first encounter with both the C language and Unix. I didn’t fully realize it at the time, but Dennis Ritchie essentially taught me both, through his books.

While The C Programming Language is a classic, it is the Unix manual that establishes Dennis Ritchie (along with Thompson and Brian Kernighan) as a pioneer for technical communicators. The manual page structure is an early example of topic-based writing. There is a clearly defined structure for each page, with variations to match what was needed for commands, APIs, system calls, and file formats. If you look up the manual page for a new command, you know you’ll find the name, synopsis, description, examples, and see also sections, in that order, and with reasonably consistent markup (remarkably consistent given that they were working with line printers and very simple text markup).

The manual page format allows a group of writers to develop information independently, then combine the parts into a single deliverable, which is of course the essence of topic-based authoring. If you look at a DITA topic, you see a remarkable resemblance: a title (name), short description (synopsis), body (description), related links (see also). A DITA topic will do much more, but it sure looks like a descendent of the manual page.

That said, I suspect Ritchie would have had mixed feelings about DITA. He might have applauded the concept of a simple, extensible standard, but I suspect he would have been dismayed by how complex DITA has become. He was at heart a minimalist, both in his designs and in his writing.

An even more direct descendant of manual pages can be found in DocBook. DocBook 5: The Definitive Guide, and earlier editions, use the man page structure directly, providing an easy-to-use, clear guide to the standard. And, DocBook has specific markup for Unix-style manual pages.

In fairness, a lot of these ideas have been floating around for decades (aircraft Pilot Operating Handbooks are another early, though not quite as consistent, example), but if you look for parallels in current structured authoring environments, the Unix manual page is clearly a primary influence.

So, as the programming world celebrates the life and accomplishments of Dennis Ritchie, technical communicators should reflect on his influence on their work, too. Thanks Dennis.

This entry was posted in Commentary and tagged , , , , . Bookmark the permalink.

Comments are closed.