Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Because the C family is guided by a committee. Even worse, an important and respected committee.


The issue seems to be the C++ committee, never heard anyone complain about C's committee.


The C committee's big problem is being too conservative. But you don't hear too many complaints because people just use C++.


I think the reason is more that the goals of the C committee align better with the goals of C programmers (which is a language that's a tool and not a playground for language designers).

Unlike C++, C also remained a simple language (which is definitely a side effect of the "conservatism" of the C committee).


That's what he means; like the puddle which marvelously fits its own hole, anyone for whom C in all of its aspects is not very close to optimal has long ago moved to another language.


Wait what? C's greatest strength IMO is that it hardly change at all.

The mental overload of some small things added every 10th year and in use 20 years later is how I like it.


Amen.

If you crave excitement, there's Rust and Go. (And I say that in the vein of "may you live in exciting times". ;D)

Oh, and there's D if you want to immersively roleplay like you're in an alternate timeline, like Infinite Jest or something.


Go check the complaints on anything past C11, or how after 50 years WG14 keeps ignoring security issues.


The "C family" has two committees, one that works fairly well (https://www.open-std.org/jtc1/sc22/wg14/) and one that doesn't (https://www.open-std.org/jtc1/sc22/wg21/).


WG14 has only "worked" fairly well insofar as it did absolutely nothing but file the serial numbers off of things standardized in C++ and release them. The biggest C-original features (type generic macros, annex K) are all gigantic boondoggles. Even many of the features that were lifted from C++ were poorly thought out (e.g. compatibility between <stdatomic.h> and <atomic>).


The biggest C-original feature since C89 is easily designated-initialization in C99, and WG21 couldn't even get that simple thing right when they tried to copy it into C++20 two decades later (even though Clang had a working implementation in C++ mode since forever which just had to be copied by the standard).


Your struct should just have a constructor. :)

Hey, pass me more OOKoolaid.

No, it's fine; all the bottles say "Expires 2005", but it's still good.


TBH, all the gazillion ways that C++ has invented over time for initialising data are a poor substitute for simple C99 designated init.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: