Note: The last version of Microsoft's IDE and compiler I used was version 6.0. Everything else is by word of mouth and/or a simple Google search.
[quote="desertfox";p="474001"]Actually, Visual Studio 7.1+ is a very, very nice IDE. There simply is no better one.[/quote]
I
hated the Visual Studio IDE. The most important thing in programming is your text editor and Visual Studio's sucked big time. It didn't even auto-indent by default! I also didn't like the debugger interface as it was clumbsy to use for anything but inspecting flow and the current scope's variables. The text editor and the debugger are the most important tools in the programmer's shed, followed by a build system and source control IMHO.
As to what IDE is better, I'm not too sure. I use Emacs so I've got a great IDE (and email client, news browser, tetris, doctor, and the kitchen sink). For a more geewy IDE I hear that
KDevelop is good. Apparently it can even use a VI clone for the text editor. Now that's cool.
And, the MS compiler is absolutely superb. I don't know where you get your information from, but the MS compiler has very few bugs, has few quirks, and is actually more standards compliant at last check than the GCC compiler. Plus, GCC is NOT that great of an optimizer, and at high levels of aggressive optimization it will actually produce incorrect code.
First off I have had a huge number of issues with VC++ 6.0 from namespace problems to standards incompliance. I know a few OSS projects that support Windows only with GCC or VS 7.0 and better. Even with VS 7.0 there was
some grumbling with its broken linker and quirks.
Second, there really is no comparison between the Microsoft/Intel compiler and GCC. Just to give an idea on why here's what GCC supports: DOS, Windows, OS/2, ELF, xtensa, vax, vxworks, sparc32, sparc64, and sparc v9, system 390(x), PPC, MIPS, m68k, x86, x86 64, IA-64, ip2k, alpha, arc, arm, xscale, avr, c4x, hppa, IQ2000, and the M32R with C, C++, Objective C, Fortran, Java, Ada, Pascal, Mercury, Cobol, and PL/1. There are a few others but I do don't think they are in the main release or distro releases. It's hard to have a general optimizer for all these platforms and so it doesn't surprise me that Microsoft's or Intel's compiler may be able to beat GCC on the x86 targets. That doesn't mean GCC's optimizer is complete crap either. Pratically everything on most Linux distrobutions is compiled with GCC and I don't feel any slowdown on my low-powered machines, like my 600mhz Intel laptop. I'm sure many people can attest to that.
Anywho, give me a call when Microsoft's compiler can compile for even a few of GCC's supported languages and platforms.
As for bad code generation I haven't had GCC generate bad code except for the MPC860 target and that was the fault of the programer (old and incorrect low-level-for-even-C directives were used). I've heard stories about it in eariler releases (3.0 and 3.1) but GCC has matured greatly in the 3.x series (current is 3.4.3). Don't even think about trying to knock down the 2.95 series. 2.95.3 is the most code accurate compiler I know of.
And another thing, no friggin' kidding that GCC can produce incorrect code with aggressive levels of optimization! Any compiler would do that with aggressive optimization. Things like breaking the IEEE math specification or messing with memory allignment is normal for an agressive optimizer. It is this very reason that any compiler manual advises using optimizing options with care.
Please stop spreading misinformation, I love how people bash all Microsoft products just because they have the name 'Microsoft' attached to them.
I would love it if people would be able to take criticism without turning this into a holy war. Just because I don't like some Microsoft product doesn't mean I hate everything that Microsoft develops.