this feels like a silly thing to say but even though i’ve been using linux since 2004 I feel like i’m learning recently that the impact of the GNU project’s software (and its design decisions) on me is even bigger than I thought

like even just the fact that (afaik) many of them used Emacs has an impact on me today

(please no “it’s GNU/Linux”)

for example I thought the “vim vs emacs” flamewars were silly (who cares? use what you want!)

but actually I feel like some of the GNU software design decisions are really influenced by emacs (readline, info pages) and that does actually have an effect

(please don’t tell me that readline has a vi mode)

(2/?)

also this guidance on command line arguments is great, I didn’t realize these things came from the GNU project and I really appreciate them https://www.gnu.org/prep/standards/html_node/Command_002dLine-Interfaces.html#Command_002dLine-Interfaces

(via @zwol)

(3/?)

Command-Line Interfaces (GNU Coding Standards)

Command-Line Interfaces (GNU Coding Standards)

also I didn’t realize that standardizing “—help” came from the GNU project, it makes me wonder if folks have proposed adding —help to programs that predated GNU (or are from a BSD project etc) and if so what that conversation looked like

I imagine it’s not always possible to do without breaking backwards compatibility

(4/?)

@b0rk zsh even calls it "gnu_generic" (try something like compdef _gnu_generic opusenc to auto-populate tab completing the arguments for opusenc based on its --help).

I try to ensure all of my scripts can be parsed by that. As a POSIX shell scripter, that means using my hack to support long options with getopts: https://stackoverflow.com/a/28466267/519360

Using getopts to process long and short command line options

I would like to have the long and short forms of command line options invoked using my shell script. I know that getopts can be used, like in Perl, but I have not been able to implement the same us...

Stack Overflow