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”)

@b0rk people mock the "GNU Coding Standard" because its specification of how to indent C is legitimately weird. But that's actually the least important part of the document. There is stuff in there about how programs should *behave* that's been much more influential.

https://www.gnu.org/prep/standards/html_node/Program-Behavior.html

Program Behavior (GNU Coding Standards)

Program Behavior (GNU Coding Standards)

@zwol ooh I should look at this thanks

@zwol “Please define long-named options that are equivalent to the single-letter Unix-style options. We hope to make GNU more user friendly this way.”

i had no idea this was the goal and it’s so good

@b0rk @zwol This is defining behavior from GNU. It doesn't exist in CP/M or DOS. It doesn't exist in Unix. This "GNU-ism" is so useful that people straight up stopped using POSIX `getopt(3)` over it.

@Conan_Kudo I recently started making a makepkg clone-ish and at the start I thought "Imma try to stick to pure POSIX 2024 (+ cURL and bsdtar)" and not only was the shell syntax very limiting (specifically arrays, but I can work around that with HEREDOCs and newlines) but what made me decide "nope, Imma stick to "bash and GNU coreutils" is that all the tools only define the short options. It makes the scripts so unreadable :(

on a different note: I recently learned that GNU getopt allows abbreviating all long options as long as they don't clash (e.g. specifying --dir instead of --directory)

@NekkoDroid Yep, there are so many nice things about the GNU stuff that people just don't realize are from GNU.
@NekkoDroid @Conan_Kudo Heh, the arrays are from the Korn Shell so it's actually pretty portable (like even *BSD, illumos, … default install portable) and are one of the things I wondered if they could get into POSIX with someone else like 2 weeks ago.