Hacker News new | past | comments | ask | show | jobs | submit login

I think that's a bit dishonest -- the standard is almost entirely supported by GCC:

http://gcc.gnu.org/c99status.html

> C99 is substantially completely supported as of GCC 4.5 (with -std=c99 -pedantic-errors used), modulo bugs, extended identifiers (supported except for corner cases when -fextended-identifiers is used), and floating-point issues (mainly but not entirely relating to optional C99 features from Annexes F and G).

... and also by clang:

http://clang.llvm.org/docs/UsersManual.html#c

> The support for standard C in clang is feature-complete except for the C99 floating-point pragmas.

Compiler/library support for C++ is much less complete(standards were published in 1998, 2003 and 2011, and none are completely implemented in any compiler) but that clearly didn't stop people from using C++. The reason is that the commonly supported subset was useful enough. The same is true of C99.

I think it was mostly Microsoft that was holding C99 adoption back by refusing to support it in their compiler suite (officially, they support C++ and C89/C90 only). That means you can't generally compile C99 code with the Microsoft C/C++ compiler, which meant you had to avoid either that compiler or (if you care about portability) the C99 standard. I don't think limited C99 support in GCC or Clang was a limiting factor to anyone in the past decade.




Compiler/library support for C++ is much less complete(standards were published in 1998, 2003 and 2011, and none are completely implemented in any compiler)

Clang begs to differ on that point http://clang.llvm.org/cxx_status.html

and gcc claims to implement "all of the major features" so you may be right on that one http://gcc.gnu.org/gcc-4.8/cxx0x_status.html

At any rate C++11 features are quite well supported IMO. Even VC++ is catching up.


> Clang begs to differ on that point http://clang.llvm.org/cxx_status.html

Impressive! I see that exported templates got scrapped in the latest standard -- they probably never supported that.

In any case, my point wasn't that Clang was bad (I think Clang is very good) but that the few limitations that might exist in Clang or GCC are probably not holding back C99 adoption.


I'll just note, that after coming back to C after a while in ruby/python/ungh, perl land everything in C99 and C11 has been a welcome change.

Seeing lack of adoption to things like just stdbool.h or even C99 initializer syntax is somewhat amusing. I understand backwards compatibility and all but there seems a general unwillingness to abandon C89 which I can only think is due to the microsoft toolchain.

As to c++ support clang has been really spearheading the implementation of new c++ standards and last I recall they even found bugs or inconsistencies. It always pays to have at least one implementation before standardizing I think.




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

Search: