UNIX man pages were almost universally accurate, complete, and succinct. 

That third admirable attribute gave me the opportunity to write Advanced UNIX Programming

So I wasn't complaining.

Marc

On Sat, May 18, 2024, 11:33 PM Steffen Nurpmeso <steffen@sdaoden.eu> wrote:
Douglas McIlroy wrote in
 <CAKH6PiXaYGEUmVFRX99eM6s3+nTJrbVvkuBRa-Awhhd69xzJrg@mail.gmail.com>:
 |I just revisited this ironic echo of Mies van der Rohe's aphorism, "Less is
 |more".
 |       % less --help | wc
 |      298
 |Last time I looked, the line count was about 220. Bloat is self-catalyzing.

I do not buy that.
You are working on Windows and in the meantime have switched to
one of those graphical browser monsters (i think) where each
instance has more code active than the entire Unix history
altogether.

less(1) can now Unicode, and that is not as easy with ISO/POSIX as
it was on Plan9 for example which simply goes UTF-8 and has some
(smart) lookup tables (now in go, more or less, last i looked),
but that is not the whole picture of it.

It can those ANSI / ISO 6429 color sequences that everybody wants,
as you have them everywhere, even GNU's yacc, bison.

The OpenBSD people took a port done by an OpenSolaris (i think,
that scene, anyhow) guy, and together they stripped it down
massively.

But i do not use it, because after almost exactly a decade i got
upstreamed to Nudelman's less(1) the necessary patches to have
active hyperlinks on the terminal, in a normal Unix (roff mdoc)
manual.  (These work via OSC-8 escape sequences; it was a "15
files changed, 601 insertions(+), 9 deletions(-)" patch, which
included careful quoting of file paths etc. for man(1) openings
(ie, such code gets lengthy), but he did it differently a bit, and
left off some things i wanted, included others (good), but if you
use --mouse with his one then you have a real browser feeling.
I have problems with --mouse, unfortunately, because when used you
can no longer copy+paste -- he would need to add clipboard control
in addition i'd say.., adding even more code.)

You know, it may be viable for some tools, but for others, .. not.
You say it yourself in your "A Research UNIX Reader": "Electronic
mail was there from the start.  Never satisfied with its exact
behavior, everybody touched it at one time or another".
In the meantime the IETF went grazy and produced masses of
standards, and unfortunately each one adds a little bit that needs
to be addressed differently, and all that needs documentation.
Now mail is an extreme example.

And almost a quarter of a century ago i wrote a small pager that
even had a clock, and it required less CPU on a day with some
scrolling than less/ncurses for a one time scroll through the
document.  But that pager is history, and less is still there,
running everywhere, and being used by me dozens to hundreds time
a day.  Also with colours, with searching, and now also with

  ^O^N  ^On         *  Search forward for (N-th) OSC8 hyperlink.
  ^O^P  ^Op         *  Search backward for (N-th) OSC8 hyperlink.
  ^O^L  ^Ol            Jump to the currently selected OSC8 hyperlink.

And prepared mdoc manuals can now display on a normal Unix
terminal in a normal (actively OSC-8 supporting $PAGER) a TOC (at
will, with links), and have external (man:, but also http: etc;
man is built into less(1) -- yay!) links, too.
For example here ∞ is an external, and † are internal links:

   The OpenSSL program ciphers(1)∞ should be referred to when creating a
   custom cipher list.  Variables of interest for TLS in general are
   tls-ca-dir†, tls-ca-file†, tls-ca-flags†, tls-ca-no-defaults†,
   tls-config-file†, tls-config-module†, tls-config-pairs

So ^O^L on that ciphers(1) opens a new man(1)ual instance.
For all this functionality a program with 221K bytes is small:

  221360 May 18 22:13 ...less*

Also it starts up into interactive mode with --help.
So you could have "full interactivity" and colours and mouse, and
configurability to a large extend, which somehow has to be
documented, in just 221 K bytes.

I give in in that i try to have --help/-h and --long-help/-H, but
sometimes that -h is only minimal, because a screenful of data is
simply not enough to allow users to have a notion.

So less could split the manual into a less.1 and a less-book.7.
The same is true for bash, for sure.  (And for my little mailer.)
But things tend to divert, and it is hard enough to keep one
manual in sync with the codebase, especially if you develop
focused and expert-idiotized in a one man show.

 |What prompted me to look was another disheartening discovery. The "small
 |special tool" Gnu diff has a 95-page manual!  And it doesn't cover the
 |option I was looking up (-h). To be fair, the manual includes related
 |programs like diff3(1), sdiff(1) and patch(1), but the original manual for
 |each fit on one page.
 --End of <CAKH6PiXaYGEUmVFRX99eM6s3+nTJrbVvkuBRa-Awhhd69xzJrg@mail.gmail\
 .com>

--steffen
|
|Der Kragenbaer,                The moon bear,
|der holt sich munter           he cheerfully and one by one
|einen nach dem anderen runter  wa.ks himself off
|(By Robert Gernhardt)