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)

Reply via email to