I guess what ticked me off in your original response was simply that you started it with “I hate C with a burning passion” (even if “to actually live up to that mantle” then softened this sentiment at the end).
I understand what youʼre getting at with this somewhat more detailed breakdown of the languageʼs problems (as you see them)… while I agree that a more uniform, standardized way of doing things across platforms would be nice—in that regard C23ʼs bit utility functions are a welcome addition—I think youʼre overstating the scope and impact of these problems.
Sure compiler-specific extensions, intrinsics and whatnot are sometimes a nuisance, but since most programmers usually spend their work days developing for a single platform/target of choice, I donʼt really see that as that much of a problem.
If I may I would like to pose another question:
Why did managed languages like Java (or C#) suddenly become all the rage at the beginning of this millenium? Was it really because of C++ʼs inadequacies/because constexprʼs, for-each loops, unique/shared_ptr were missing?
I donʼt think it was. Nor was it simply because “Garbage collectors are nice”. Rather, the “all-batteries-included” approach was what convinced people… and since then built-in dependency managers (like Cargo for Rust) have also become something that people just expect.
I would argue that Cʼs problem isnʼt the language… the main reason for its demise will be that it never even got a “standard library” that deserves to be called as such.
Sure, looking through the “WG 14 Document Log” thereʼs strb_t, which—if adopted by people—should help reduce string related bugs. However, even strb_t is just a thin veneer over null-terminated strings… it wonʼt really help with Uɴɪᴄᴏᴅᴇ strings, traversing and working with grapheme clusters, normalization forms and other niceties.
While there are some things that sound interesting—defer and _Optional/nullable types, for example—there are also proposals for “Case range expressions”, “Named loops” or “Strict order of expression evaluation” where I really question who these are for. (Are such minuscule things really of importance/deserving of a standards change?)
All that being said… before ending I would like to emphasize that the above sounds more negative than I intended it to be. I am grateful that people (like you) are spending their valuable time trying to improve the language. I just donʼt think that the kind of improvements that all to many seem to invest their time in will really save C from more modern alternatives like Rust and Zig.