troff
<text, tool> /T'rof/ or /trof/ The grey eminence of Unix text processing;
a formatting and phototypesetting program, written originally in PDP-11 assembly
code and then in barely-structured early C by the late Joseph Ossanna, modelled
after the earlier ROFF which was in turn modelled after Multics' RUNOFF by
Jerome Saltzer (*that* name came from the expression "to run off a copy"). A
companion program, nroff, formats output for terminals and line printers.
In 1979, Brian Kernighan modified troff so that it could drive phototypesetters
other than the Graphic Systems CAT. His paper describing that work ("A
Typesetter-independent troff", AT&T CSTR #97) explains troff's durability. After
discussing the program's "obvious deficiencies - a rebarbative input syntax,
mysterious and undocumented properties in some areas, and a voracious appetite
for computer resources" and noting the ugliness and extreme hairiness of the
code and internals, Kernighan concludes:
None of these remarks should be taken as denigrating Ossanna's accomplishment
with TROFF. It has proven a remarkably robust tool, taking unbelievable abuse
from a variety of preprocessors and being forced into uses that were never
conceived of in the original design, all with considerable grace under fire.
The success of TeX and desktop publishing systems have reduced troff's relative
importance, but this tribute perfectly captures the strengths that secured troff
a place in hacker folklore; indeed, it could be taken more generally as an
indication of those qualities of good programs that, in the long run, hackers
most admire.
groff is GNU's implementation of roff in C++.
[Jargon File]
(1995-03-21)
Nearby terms:
Triton VX « Trivial File Transfer Protocol « TRO «
troff
» troglodyte » troglodyte mode » Trojan horse
|