The problems with the compiler stem from the problems with their programming habits. However, you must understand they don't see them as problems or flaws.
I didn't, in any way, mean to intend that the only disadvantage in using the win compiler was losing some "tricks". That was simply an example of how they do not follow the ANSI standard. Which, if you are wondering, are the standards for C and C++. Internationally.
I just don't use IDEs all that often. That doesn't imply that I don't use debuggers though and please don't think they're one in the same. For debugging I usually use DDD. In combination with the GNU compilers. There's some things they don't allow either that are in the standard, but they're usually minute (they don't allow the word "class" to be in a hierarchy definition, so you can't say class classname: public class blah, it'll give a compile error because it thinks you're defining a new class that never ends)
Auto completion is in every IDE. Project spaces are in every IDE. However, most other IDEs allow set ups for ANY language as long as you supply a compiler and a configuration for the syntax.(Including a language you make up)
Speaking of DDD, something that is very nice about it is the graphical display. It'll graphically map out your dynamic data so you can plainly see if there are breaks in allocations (segmentation faults, blue screen of death or "send error report" under Windows).
I think that any compiler that ignores standards that have been set by a committee, who knows the language far better then some group of people, is a bad compiler. To be honest, the only reason why Visual Studio is so popular is because it's the main development tool for Windows and Windows is widely used by whatever developers target consumer market. That's it. Granted .NET was the first IDE to do (so called) complete integration. However, that doesn't make it the best.
What I was talking about with the whole "mistakes" speech is that they STILL haven't fixed the problems. It stems from the standards they set for themselves, and inherently, for anyone who programs on their platform.
I've never had time to do a big project, nor the man power. But, pretty much any assignment I've ever done has been using Vi on a Unix machine. (Vi is a text editor for Unix platforms, very very handy. Vim is nice too, it has language recognition, but it also has to be configured). I might be able to start something soon if I can get some people to help out. Sadly I only know a couple other people who're on the same page with me when it comes to C++.  (My software engineering class assignment was an online library. Used Vi with PHP and DHTML. Just because I don't want to list all those languages out)
You also have to remember that I don't exactly have a mouse or anything when I do most of this stuff 
 
 
Typing is much faster then taking your hand away from the keyboard moving the mouse and clicking. If someone says it isn't it's just because they're not used to the environment and they don't know how to use the tool.
Not to mention, in a Unix environment you can hit a key or two and be in a completely different application while having your previous work still running. It's very handy ESPECIALLY for developers. There's a reason why people still use Unix and Unix platforms even though they've been around, practically, un-alerted since the 70s. Thanks AT&T.
I'll be able to whine about compilers more in a few months once I take the compiler courses, lucky for me: they're in Java :biggrin:
But, seriously, I could go on about several practices Microsoft and many many other developers. Hell, a lot of authors of programming books teach bad practices. Anyone remember the "pre fix or post fix" argument? It's that type of widespread ignorance about the tools programmers use that is the problem; yes, it is a PROBLEM. Templates are another can of worms.
I know that learning to use the Microsoft suite is much easier (or at least it seems to be :wink: ) but in the end you'd be less knowledgeable and rather useless as a developer in only being familiar with it. It's like people who goto DeVry or ITT and get a degree just to get a dead end job. Only knowing how to develop on a particular companies software gives that company all the power. Which is never a good thing. You, as the developer, then become dependent on a corporation while the language you use is complete and free to develop for otherwise. This puts you in a very bad situation because you have no control.
                                            
                        Blame it on Microsoft, God does.