tags:

views:

693

answers:

11

Are there any reasons why I shouldn't use Visual Studio 6 for C++ development?

  • Where can I find some resources why this would or wouldn't be a good idea?
  • Are there any lists of issues I would have with this?
+22  A: 

I wouldn't say that Visual Studio 6 should "never" be used for C++ development. I would say that it should "no longer" be used for C++ development. Reasons:

  1. Microsoft's later compilers (particularly Visual Studio 2008) are much more compliant with the C++ specification.
  2. Microsoft's later compilers add better warnings and errors. These are useful when looking for potential security problems with your code.
  3. It's no longer supported. Newer releases of the Windows SDK don't work with Visual C++ 6, so you won't be able to use newer features in Windows without extra work.

To summarise: stop using Visual C++ 6. If you have to use a Microsoft C++ compiler, use Visual Studio 2008.

Roger Lipscombe
Visual C++ Express is a free download, with the same compiler as full (paid for) VS 2008.
Richard
...but not the same compiler as VS 2008 Team Edition, which includes static code analysis.
Roger Lipscombe
Which is a tool you would still have to pay to get. To see C++ itself, Express is a cost efficient way to see if VS2008 meets your needs.
John Baughman
+2  A: 

I think the main reason for Visual Studio falling out of favor for C++ development is because of it's age. The compiler has also been improved significantly since then.

John T
A: 

I can give you some problems with VC++ 6 but where did you get that "It is known...." ???

João Augusto
+6  A: 

Visual Studio 6 is fine, if you want a fast, lightweight environment with a good debugger. The problem is the C++ compiler that comes with it, which is very outdated. After many years as a happy VC++ 6 user, I've now switched to Code::Blocks, which gives you a similar IDE but allows you to use the up-to-date g++ compiler.

anon
The G++ compiler is nowhere near as optimized as the VC++ compiler.
Jimmy J
any reference? in my case g++ is usually faster then vc++ compiler.
Nazgob
search SO, there's a post/link about the optimisations used by VC v GCC for SSE code. GCC beats VC by a lot. Of course, the link is about newer VC compilers.
gbjbaanb
A: 

Another reason not to use Visual Studio 6 is that it is no longer supported by many open source libraries (ACE framework for example). Also if you use Visual Studio 6 you should apply all the patches because some code it is not compilable without those patches. The template support is not very good.

As a conclusion: I would recommend using modern/newer C++ compilers.

Iulian Şerbănoiu
A: 

Main reason: vc++ 6 have poor standard support. As result some of libraries couldn't be compiled by this compiler. And your project will have truobles when you will decide to compile with other compiler.

bb
+2  A: 

If you believe the MS hype, Visual Studtio 2010 will be greatly enhcanced for C++ development, and include much of the Visual Studio 6 functionality that was lost in later releases. I personally find Visual Studio 6 to be a very productive C++ development tool, to the extent that I still use it for much of my development, and do final compiles and testing under VS2008. My reasons for doing this are given in a previous question here

Shane MacLaughlin
+7  A: 
  1. std::string multicore/proc issues in the runtime, re: KB813810
  2. poor STL support
  3. even poorer Standard C++ support

Don't do it.

D.Shawley
+1  A: 

Current VS6 user here. We are transitioning away this year, but I'm still using it today.

I pretty much agree with what I'm seeing said here. It sucks.

One thing I've seen hinted at here, but hasn't been said explicitly, is that some of the more interesting features of the STL are all but unusable in VS6. As near as I could tell, this is mostly because the compiler has a lot of trouble figuring out implied template parameters. For example, pretty much everything in std::algorithm is going to either be totally unusable, or require so much explicit instantiation that it would be easier and cleaner-looking to just write the code by hand.

Boost can help a bit with this, but a great deal of Boost will be unavailable to you too. :-(

T.E.D.
+1  A: 

I taught myself C++ on MSVC++ 6 when I was in middle school. To my horror, I discovered my current company still using it. I causes us endless pain, mostly regarding templates failing to compile. We get great internal compiler errors. Oh, and the mutable keyword doesn't seem to work. There's also tons of standards compliance issues, some of them quite serious, like my favorite:

for (int i = 0; i < 10; ++i)
{
     // do some stuff here
}

cout << i; // THIS COMPILES AND WORKS!  i is in the function scope, not the loop scope.

I found a fairly nice list of bugs and misfeatures in MSVC++ some time ago in an attempt to convince my boss to transition away... here's the link.

rmeador
+1  A: 

Ok, vs2005 and upwards provides standards compliant c++ and a better IDE (I find the intellisense a little less buggy for example).

That said if standards compliance doesn’t bother you, you only develop managed code and your projects are very UI orientated you may prefer VC6 (class wizard is awful on vs2008).

Personally, as poor as class wizard is, I would still go for the later IDE. The benefit of better source control integration, the ability to use third party plugins, etc still outweighs the cons.

Vman