[TUHS] Proliferation of options is great simplification of pipes, really?

Will Senn will.senn at gmail.com
Mon Feb 22 14:34:10 AEST 2021


On 2/21/21 9:32 PM, G. Branden Robinson wrote:
> At 2021-02-21T20:34:55-0600, Will Senn wrote:
>> All,
>>
>> So, we've been talking low-level design for a while. I thought I would
>> ask a fundamental question. In days of old, we built small
>> single-purpose utilities and used pipes to pipeline the data and
>> transformations. Even back in the day, it seemed that there was
>> tension to add yet another option to every utility. Today, as I was
>> marveling at groff's abilities with regard to printing my man pages
>> directly to my printer in 2021, I read the groff(1) page:
>>
>> example here: https://linux.die.net/man/1/groff
> A more up to date copy is available at the Linux man-pages site.
>
> https://man7.org/linux/man-pages/man1/groff.1.html

I just picked the first hit in google :) shoulda known better. However, 
it's the same text that's in my mac's install (Mojave).

>
>> What struck me (the wrong way) was the second paragraph of the
>> description:
>>
>> The groff program allows to control the whole groff system by command
>> line options. This is a great simplification in comparison to the
>> classical case (which uses pipes only).
> What strikes _me_ about the above is the awful Denglish in it.  I fixed
> this back in 2017 and the correction shipped as part of groff 1.22.4 in
> December 2018.
Mac Mojave: Groff Version 1.19.2              3 July 
2005                         GROFF(1)

>> Here is the current plethora of options:
>> groff [-abcegilpstzCEGNRSUVXZ] [-d cs] [-f fam] [-F dir] [-I dir] [-L arg]
>> [-m name] [-M dir] [-n num] [-o list] [-P arg] [-r cn] [-T dev] [-w name]
>> [-W name] [file ...]
>>
>> Now, I appreciate groff, don't get me wrong, but my sensibilities were
>> offended by the idea that a kazillion options was in any way simpler
>> than pipelining single-purpose utilities. What say you? Is this the
>> perfected logical extension of the unix pioneers' work, or have we
>> gone horribly off the trail.
> I'd say it's neither, and reflects (1) the limitations of the Unix
> filter model, or at least the linear topology of Unix pipelines[1]; and
> (2) an arbitrary set of rules determined by convention and common
> practice with respect to sequencing.
snip...

Very informative post, Branden. I appreciate the details. I gotta read 
more code :).

Will


More information about the TUHS mailing list