4 ms·
> That's not unique to JS. Some compilers took over a decade to implement C99 features. I sometimes wonder what's the point of new versions of C, too. Also, a
by ken 7y ago
> That's not unique to JS. Some compilers took over a decade to implement C99 features.
I sometimes wonder what's the point of new versions of C, too.
Also, a new feature I want to use needs only be supported by one C compiler: the one I'm using. With JS, I need all of them to support it.
- bfdm 7y agoTHat's not right, the same is true of JS. You'd run a "build" step on a system you control to transpile your fancy modern JS back as far as you'd like official support and put the output JS file on your webserver. Using modern JS features does not require universal support.
- jolmg 7y ago> Also, a new feature I want to use needs only be supported by one C compiler: the one I'm using. I've always had the impression that C programmers also care about standards compliance, and aren't typically willing to marry their project to a particular compiler. At least, it's the language community where you see "language lawyers". I'm sure there are "language lawyers" in other language communities, but I've never seen discussions about what causes "undefined behavior" or what's "implementation dependent" or discuss interpretations of particular passages of the standard like I do with the C and C++ communities.
- dingo_bat 7y agoMaybe C++ programmers care about standards compliance. C programmers care about what gcc does.
- simias 7y ago>I sometimes wonder what's the point of new versions of C, too. At this point I'm mostly fine with the feature set of C99 so I can live without the newer standards. Actually there's stuff in newer standards that I find questionable, but that's a different discussion. C99 on the other hand was sorely needed, if only for standardizing some basic features that up until then were only available as vendor-specific extensions. Things like inline, stdint.h, bools, variadic macros, restrict, compound literals and more[1]. Writing code without these features is often severely limiting. Or rather, you probably won't be limited but you'll have to rely on vendor extensions and write non-portable code. Or maybe you'll use a thousand-line long configure script to make the code portable. >Also, a new feature I want to use needs only be supported by one C compiler: the one I'm using. With JS, I need all of them to support it. If you're making proprietary software that makes sense, if you're developing open source code you very much care about portability and compatibility. I care about the compiler I use, the compiler OpenSuse uses, whatever garbage Visual Studio uses, the compiler FreeBSD uses etc... Besides I have basic code snippets I wrote over a decade ago that I still use today, regardless of the environment. That's valuable too. [1] https://en.wikipedia.org/wiki/C99 https://en.wikipedia.org/wiki/C99
- munificent 7y agoI don't think I ever write C code that I intent to only be compiled using one compiler. One of the primary reasons I use C is to write cross-platform code, so I care about GCC, Clang, and VS, at least.
- oefrha 7y agoGCC and Clang are both cross-platform, and users typically don’t care about which compiler you used to produce the binary. At least until the early 2010s plenty of projects used GCC-specific features and wouldn’t compile with Clang. The situation must be better now but I bet GCC is still the only blessed compiler for many maintenance-only code bases.