Home – The history of troff
Troff was originally written by the late Joe Ossanna in about 1973, in assembly language for the PDP-11, to drive the Graphic Systems CAT typesetter. It was rewritten in C around 1975, and underwent slow but steady evolution until Ossanna's death late in 1977.
In 1979, Brian Kernighan modified troff so that it would produce output for a variety of typesetters, while retaining its input specifications. Over the decade from 1979 to 1989, the internals have been modestly revised, though much of the code remains as it was when Ossanna wrote it.
— Taken from the Troff User's Manual.
Get an image of Ossanna. Salus used one in his book.
Need to mention Brian Kernighan. Then James Clark of course with his re-implementation. Ted and Werner as the current maintainers.
troff's lineage can be traced back to the CTSS operating system and its text processing system called ‘runoff’ written by J. E. Saltzer. Bob Morris moved runoff to the 635??? and changed its name to ‘roff’. A descendant of roff was ‘rf’ for the PDP-7??? written by Dennis Ritchie; rf had no descendants.
‘That allowed for editing, but what about printing? J.E. Saltzer had written runoff for CTSS. Bob Morris moved it to the 635, and called it roff. Ritchie rewrote that as rf for the PDP-7, before there was UNIX (it was an evolutionary dead end). At the same time, the summer of 1969, Doug McIlroy rewrote roff in BCPL (Basic Combined Programming Language by Martin Richards, 1966), extending and simplifying it at the same time. It was McIlroy's version that first Joe Ossanna and, after his death, Brian Kernighan turned into the troff we still use.
‘(By the way, TECO is also the ancestor of Emacs.)
‘Nearly a decade later, Ted Dolotta created the memorandum (-mm) macros, with a lot of input from John Mashey. Thereafter, Eric Allman wrote the BSD -me macros.’
From: "John R. Mashey" <email@example.com> To: <ralph> Subject: re: http://troff.org/history.html Date: Tue, 26 Mar 2002 22:09:05 -0800 Actually, the -mm macros were mostly designed and implemented by Dale Smith and I, with a lot of input/requirements and some code (footnotes) by Ted Dolotta (who was our boss, and a typesetting expert). [Even better, he sold me his California UNIX license plate when he moved back to NJ.] Also, -mm was preceded by Mike Lesk's -ms macros, which also got wide use. We did -mm because we had a bunch of additional format requirements, and we couldn't figure out how to extend -ms. Specifically: 1) We had several existing format specs (which were *not* Bell Labs TM's or MFs) that had to be matched [to help a massive conversion of BTL typing pools]. We also had much bigger manuals, not just memos. 2) We had documents whose source needed to be printed in several different formats. All of this led to the design (a predecessor of style sheets) that emphasized structural descriptions (like .P or .H level), whose appearance was easily changed by a few parameters. At the time, -mm stretched troff to the utmost, and Joe O was extremely helpful in fixing bugs that only Dale & I managed to encounter!
From: "John R. Mashey" <firstname.lastname@example.org> To: <ralph> Subject: RE: http://troff.org/history.html Date: Sat, 30 Mar 2002 09:31:38 -0800 Sure, use as you like. MF = memorandum for file TMs were done for things you wanted ‘published’ inside Bell Labs, going though a formal distribution system that people subscribed to. MF's were more like departmental internal memos.
History of UNIX Manpages has quite a lot about troff's history too.
Copyright Ralph Corderoy, 2001, 2002, 2003, 2012.