On 2022-12-14 at 06:02:58 +0300, Greg Minshall <minshall@umich.edu> wrote:
2QdxY4RzWzUUiLuE@potatochowder.com wrote:
Now who told tar and ps that they don't need the dash? ;-)
probably you didn't *really* want a history lesson (which i'm not *really* qualified to give), but in the 1980s there was an effort to standardize all this. earlier commands had, or hadn't, used a dash. dashes were now considered a requirement. but, there would have been a grandfather clause for, e.g., ps, tar, and friends.
IIRC, SystemV ps required a dash (which is why I type "ps -ef"), but BSD ps didn't/doesn't (which is why I still type "ps -auxww").
slightly later, but still, i think, in the 1980s, long options were standardized to use two dashes. but, again, grandfathered in were no dashes (like dd), one dash (like [n]mh).
Long options are *not* standardized, at least not in the sense that there's a specification from which to write a parser.⁰ Certain specific options are pervasive (e.g., --verbose) and enshrined in GNU guidelines.¹
on the main subject, but still historical, i am reminded of the arguments we had about GUI versus command line interfaces for actual computer operators (tapes, disk drives, print out, card readers, etc.). for novice operators, or even experienced operators using rare commands, a GUI was desirable. for experienced operators doing the same thing over and over again, the command line. (sadly, i don't see the relevance here!)
Old xterm man pages contained the "bug" that most commands hadn't been rewritten for X11. And here we are, four decades later, inventing all manner of kluges to automate and/or script GUIs (and don't even get me started on the WWW). :-) Apple's AU/X had (I don't use MacOS X now) a thing called Commando, which turned a machine-readable description of a program's command line arguments into a dialong box, a sort of "best of both worlds" solution. ⁰ https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap12.html ¹ https://www.gnu.org/prep/standards/standards.html