JS performance is interesting since 4 companies (Google, Mozilla, Apple, Microsoft) have poured money and talent at this arms race, probably the first time we’ve had this happen for basically-fully-compatible implementations of the same language (happy to hear if I’m wrong).
There used to be an awful lot of commercial C compilers before GCC killed off most of them, and even now there’s still a big 3: GCC, Intel’s compiler, and LLVM.
Yes, C is the one counterexample I had in mind, but I vaguely recall compatibility issues much larger than is acceptable for JS. I might be wrong.
I remember porting code between GCC and ICC basically painlessly but not so much the details. Are the three compilers expected to run code tuned on the others with 0 complaints? How prevalent are compiler-specific settings? (I do remember needing to do inline assembly in a special way, I think).
Ok, got some answers. It seems GCC leads by adding non-standard features, and ICC/Clang follow to be compatible. This doesn’t seem to be the case in the JS world, where the competitors seem to be on a more equal footing (though V8 has the mindshare lead, with node.js etc.). If this is enough to support the “first ever” description is I guess a matter of personal taste at this point. All in all, thanks for the counter Gwern.
There used to be an awful lot of commercial C compilers before GCC killed off most of them, and even now there’s still a big 3: GCC, Intel’s compiler, and LLVM.
Yes, C is the one counterexample I had in mind, but I vaguely recall compatibility issues much larger than is acceptable for JS. I might be wrong.
I remember porting code between GCC and ICC basically painlessly but not so much the details. Are the three compilers expected to run code tuned on the others with 0 complaints? How prevalent are compiler-specific settings? (I do remember needing to do inline assembly in a special way, I think).
Ok, got some answers. It seems GCC leads by adding non-standard features, and ICC/Clang follow to be compatible. This doesn’t seem to be the case in the JS world, where the competitors seem to be on a more equal footing (though V8 has the mindshare lead, with node.js etc.). If this is enough to support the “first ever” description is I guess a matter of personal taste at this point. All in all, thanks for the counter Gwern.