Have you ever been supporting a large C++ code base to be compiled both by MS VC++ and gcc (or clang)? It's not too bad, but you are constantly working around minor incompatibilities and different levels of language support, time that could be productively spent elsewhere.
I agree that competition is good, I'd much rather prefer compilers competing on the speed, quality of their optimization, static analysis, supported platforms - something that does not give me much of a headache.
Having said that, I acknowledge that MS compiler team made great progress in the recent year catching up on C++ standards, compatibility, and compilation speed.
Can't speak for the parent, but all code I work on professionally or for personal projects compiles cleanly on GCC, clang and VC (all in all about 2 million lines of code). I think it is good for code quality to compile on different compilers, since they all catch different bugs through their warnings and static code analyzers. For this I can forgive minor inconviniences like that VC doesn't fully support C++11, or that clang on iOS doesn't support std::thread_local, or (as a random example that I stumbled upon) that the GCC version I am locked to doesn't have full support for variadic templates as lambda arguments, etc... all compilers have their little problems and corner cases, it would be worse to lose one of the big three compilers.
> Have you ever been supporting a large C++ code base to be compiled both by MS VC++ and gcc (or clang)? It's not too bad, but you are constantly working around minor incompatibilities and different levels of language support, time that could be productively spent elsewhere.
That is what happens to any technology based on standards instead of gold implementation.
>>the speed, quality of their optimization, static analysis, supported platforms
if the C++ committee wasn't that "prolific" about adding yet new ways to do the same thing to the language. It sucks a lot of resources to implement that monstrosity and every 3 years or so there is a new set of toys to play with.
I agree that competition is good, I'd much rather prefer compilers competing on the speed, quality of their optimization, static analysis, supported platforms - something that does not give me much of a headache.
Having said that, I acknowledge that MS compiler team made great progress in the recent year catching up on C++ standards, compatibility, and compilation speed.