4 ms·
> We're 4 years away from the time when TFA predicts no new projects will begin with C. I'm not sure if this is representative, but most of my recent FLOSS pro
by arinlen 4y ago
> We're 4 years away from the time when TFA predicts no new projects will begin with C.
I'm not sure if this is representative, but most of my recent FLOSS projects have all been C89 libraries.
The rationale is that it's trivial to add C bindings in any language, it's extremely fast to build, and it runs everywhere.
- andrewmcwatters 4y agoThis is the exact reason I build and ship using C89.
- chrchang523 4y agoIn your case, how much compatibility is lost from using C99 over C89? (I'm comfortable with C99 and still write some low-level multiplatform code in it, but losing the ability to declare variables where they're first used is a bridge too far for me...)
- SubjectToChange 4y agoJust for reference, projects like SQLite use C99. IMO, targeting C89 is only warranted when you know for a fact it's needed. After all, not only is C99 a good improvement but toolchains stuck on C89 are not the type of toolchain I'd want to support.
- arinlen 4y ago> In your case, how much compatibility is lost from using C99 over C89? Until somewhat recently C89 was the latest version of C that was supported by the MSVC compiler. Support for C99 was always terribly broken and Microsoft chose to claim it did supported C99 but without supporting mandatory features, which meant they did not in fact supported C99. This sad state of affairs only changed significantly in 2020, with a lowkey announcement. https://devblogs.microsoft.com/cppblog/c11-and-c17-standard-support-arriving-in-msvc/ https://devblogs.microsoft.com/cppblog/c11-and-c17-standard-...
- pjmlp 4y agoThey claimed support for C99 to the extent required for ISO C++ compliance, plus some features critical for a couple of their developers. Likewise, even with the updated C11 and C17 support, it isn't 100% there, only good enough, because C++ is what matters for Windows developers when not using .NET.