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

C89 still has an active community of people using the language and building things with it.

In addition to this, its existence and validity is still relied on by basically every other language via standard library, transient dependency, or calling convention. Heck, practically every C++ project probably depends on it.

The Linux Kernel, ffmpeg, SQLite, curl and many others chose C89 and often consider using C99, but most do not. Each of those projects also write at-length via newsletter or blog as to why they’re still not quite ready to update (and sometimes why they are.)



The Linux kernel and ffmpeg require C11.


Yes, “chose” in past-tense (and that whole clause about the tension displayed in public communications of these projects contemplating the change.

Both projects made this change in the last couple years. ffmpeg still requires c99 compatibility for their headers, and may indefinitely.


When Linux was created, there was not much choice. In reality, most active projects moved on and only projects with relatively extreme portability requirements stick with C89, mostly because MSVC does not support anything later properly.


I think that’s fair, but I also believe that the same things that make C89 meet “extreme portability requirements” are why Eskil still uses it.

Should everyone? No, probably not.


Yes, but also because he made it work well for him. He also understands that most of the innovations in programming languages is actually not nearly as useful as people think and often does more harm than good. Rejecting newer C standards is a bit too extreme in my opinion, as C is very slowly evolving already.




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

Search: