3 ms·
But is is changing, the standards committee keeps adding things. Some of those are reasonable (stdbool.h, atomics), others are head scratchers (VLAs, now deprec
by sirwhinesalot 5y ago
But is is changing, the standards committee keeps adding things. Some of those are reasonable (stdbool.h, atomics), others are head scratchers (VLAs, now deprecated).
It might have been better for C to have stayed frozen in time.
But look how many libraries are written in C, such that they can be made available everywhere. Look at how many are written in C++/Rust but with C wrappers with plenty of pointers and bad error handling.
Any improvements to the C standard would have meant a safer surface area for those languages to use to talk to other languages, since C is the english of programming.
There's no reason why C couldn't have namespacing, out-of-band errors, fat pointers, minimal reflection (typeof), standardized attributes, etc. ages ago. None of that would have screwed with the ABI or with optimization, but would have made language interoperability a lot easier.
- fivea 5y ago> But is is changing No, not really. At least in practical terms. C11 saw some changes, and arguably only minor ones. C17 is a bugfix update to C11. And C20 is still in the works, and none of the proposed changes are relevant. Consequently, C as been dormant since the release of C99, which already was criticized for not bringing anything new to the table other than C++98 tuneups, and support for inline comments (?!)
- sirwhinesalot 5y agoC11 had some very good updates for multithreading, unicode support and alignment specifications. All of those things made the language better. Yes compared to the crazy changes going on in C++ land all of these are minor, but they are good maintenance improvements. C11 also had _Generic as a "major" addition (and a crappy one IMO). I agree that if C is not going to evolve in any meaningful way, they should probably just stop adding stuff to it entirely. Either go for a "C++11" or let it be frozen in place.