Andrey spaketh:
Competition is good, on that I agree with you. But I don't think MSVC is
the compiler that drives the competition currently.
Niall respondeth:
I personally think you're very wrong on this.
I really have to agree with Niall on this.
We use gcc, clang, and MSVC to compile a common codebase. The current
project is fortunate enough to be able to use the "latest-tools". The
product will deploy using gcc/Linux. I do most of my development using
MSVC.
This is because:
*- The IDE is fast-and-snappy (MSVS2015). (Yes, IMHO MSVS2010 and 2012
were unusable, MSVS2013 was ok).
*- No better alternative exists for workspace refactoring,
code-completion/intellisense, and the available "plugins" are good (colored
error-output, etc.)
*- The integrated debugger is fantastic (fast, powerful, and accurate), and
they have invested lots in profiling and multi-threaded debugging support.
*- MSVC generates useful and interesting warnings/errors, sometimes
different or complimenting to gcc and clang (our codebase generates no
warnings nor errors on any of the three compilers as a prerequisite for
merge-to-master).
*- The C++ Language compliance is good, albeit lagging for some C++14 TMP,
and some hiccups with Boost-lib support (currently being discussed on other
threads).
*- Regarding "driving-the-competition", their experimentation with modules
and resumable functions is very sound and interesting, and may
significantly advance the C++ language standard and change how the
community solves problems.
*- I've spoken directly with a number of the MSVC compiler and library team
members over the last several years, and concluded that they are really
smart, have very substantive insight, and are very active in supporting and
driving forward the C++ language standard and coding community. (Yes, this
is likely "more-true" in the last several years as compared with previous
eras, but I see it as a positive trend.)
So, if the discussion relates to "drive the competition" or even "positive
for the C++ ecosystem", IMHO the MSVC compiler is quite significant.
I'm not a "fan-boy", but merely want the best tools. I can write the
greatest amount of high-quality C++11/14 code per unit-of-time using MSVS,
so I use it. One of the biggest pain-points is that the NTFS file system
is so slow. Others on the team use SlickEdit, vim (no IDE), Eclipse, are
experimenting with CLion, and I also spend a lot of time in QtCreator. I
realize this "mixes-the-discussion" because the compiler is not the IDE,
but our codebase targets MSVC because it's a good compiler, and because the
IDE is so strong.
Lastly with regards to, "driving the competition", I've come to develop a
very deep appreciation for "compiler-attitudes" and for that which is
intended (or ambiguous) in the C++ standard, so I really do think options
among these tools-and-compilers is positive for the C++ ecosystem. For
example, it's been mentioned that gcc is "eager" to parse templates, while
MSVC is "lazy", and there are pros-and-cons for the implications and how to
think about that which might be "preferred" (e.g., IMHO
good-for-the-ecosystem). Further, clang and gcc seem to be competing-with
and mimicking each other (in different ways), so it's nice to see MSVC as a
"fresh-approach" or alternative.
--charley