← Back to context

Comment by chrisseaton

3 years ago

> It doesn't have to be C, but as of today there is no other option

Isn’t C99 an option? Why can’t more advanced things go into newer C and people who genuinely need something more basic can use C99.

We can! Many of us still use c89.(c99 has problems, like variable length arrays).

The reality however is that you cant escape never versions entirely. Not all code you interact with was written in the subset you want, so when your favorite OS or library starts using header files with newer features you need to run that version of the language too.

Another less appreciated detail, is that a lot of WG14 work is not about adding new features but clarifying how existing features are meant to work. When the text is clarified this gets back-ported to all previous versions of C in major compilers. An example of this is "provenance". This is a concept that implicitly been standard since the first ISO standard, but only now is becoming formalized. This means that if you want to adhere to the C89 standard, you will find a lot of clarifications about how things should work in the C23 standard.