On 2026-01-28 20:42:44 -0500, Derek Martin wrote:
> On Thu, Jan 29, 2026 at 01:53:08AM +0100, Vincent Lefevre wrote:
> > > GNU is an abomination,
> >
> > I disagree.
>
> Here's what Google Gemini says about it:
>
>
> The GNU Coding Standards, which emphasize a very specific,
> traditional formatting style (e.g., placing braces on new lines,
> specific indentation patterns, space before opening parentheses),
> are frequently criticized for poor readability and being outdated.
>
> Based on developer discussions and historical context, here is
> a summary of the criticisms and defenses regarding the GNU Coding
> Standards:
>
> Arguments Against GNU Coding Standards (The "Garbage" Perspective)
>
> - Poor Readability: Many developers find the style, particularly
> the indentation and brace placement, makes code hard to read.
>
> - Too Many Rules: Critics argue the standards are overly
> prescriptive regarding formatting, which is considered a minor
> issue compared to actual program logic.
>
> - Outdated/Too Verbose: The standards can lead to excessive
> vertical space, making it difficult to read large chunks of
> code on one screen.
>
> - "Burn Them": Famously, the Linux kernel coding style guide,
> often considered the antithesis of the GNU style, suggests
> printing out the GNU coding standards to "burn them" as a
> symbolic gesture.
>
> - Unnecessary Complexity: The standards are seen by some as
> encouraging overly complicated C code, often described as
> "messy" or "unreadable" by critics.
All of this is subjective. Moreover, you'll probably find more
criticisms as those who are fine with them do not need to say
anything.
I personnaly find the Linux style horrible with its 8-space
indent and strange alignment. For instance in fs/aio.c:
file = alloc_file_pseudo(inode, aio_mnt, "[aio]",
O_RDWR, &aio_ring_fops);
while I would rather see the second line aligned on the right
of the opening parenthesis.
.name = "aio",
.init_fs_context = aio_init_fs_context,
.kill_sb = kill_anon_super,
looks also strange. So is
struct kioctx *ctx = iocb->ki_ctx;
struct aio_ring *ring;
struct io_event *ev_page, *event;
unsigned tail, pos, head, avail;
unsigned long flags;
--
Vincent Lefèvre <[email protected]> - Web: <https://www.vinc17.net/>
100% accessible validated (X)HTML - Blog: <https://www.vinc17.net/blog/>
Work: CR INRIA - computer arithmetic / Pascaline project (LIP, ENS-Lyon)