In the same vein as my earlier post on Why You Shouldn’t Use Dev-C++ I’d like to outline a few reasons you shouldn’t still be using Visual C++ 6.0. These arguments may not apply if you’re working with a computer that is both particularly underpowered and running a very old (pre-’98) version of Windows, but in the overwhelming majority of cases VC++6 is a terrible choice of development environment.
- Visual Studio 6 was released over a decade ago in 1998. It is not only unsupported, but also predates the C++ standard and therefore behaves incorrectly in some cases; you may get errors when trying to compile perfectly valid C++!
- There are serious problems with the version of the STL which shipped with this compiler, leading to the need to use STLPort or similar solutions in many cases. Newer products ship with vastly improved versions of the C++ Standard Library (of which the majority of the STL is a subset).
- Newer libraries do not typically support the VS6 compiler or environment. You’ll often have trouble finding compatible binaries to work with (although you may still be able to compile from source yourself) and likely won’t find documentation for your outdated environment either.
- The programming community has moved on for the most part, making it hard to find people familiar with the error messages or layout of VC++6 if you need help.
- Alternatives are freely available. Cost should therefore not need to be a factor in your decision.
My recommendations for alternatives are the same as last time:
- Microsoft Visual C++ 2008 Express Edition is by far the best option when it comes to Windows-based IDEs; it costs nothing, allows commercial distribution of products, and is a fully featured solution including excellent debugging facilities.
- Code::Blocks is a good alternative if you for some reason wish to avoid the Microsoft offering.
- If you really want a simpler programming environment you would be better off using your choice of compiler in combination with Programmer’s Notepad or one of the many similar products out there: minimal resource usage, and no extra tools or features to clutter your screen-space or confuse you.
I still see a lot of people using the out-of-date and unmaintained Bloodshed Dev-C++ IDE (Integrated Development Environment), and I’d like to briefly explain why this is a bad idea as well as pointing any interested readers toward a couple of good alternatives.
- Dev-C++ has not been updated since 2005 and is not currently maintained. Given the availability of newer software packages the majority of the programming community has moved on from Dev-C++, making it hard (sometimes impossible) to find help with any issues you may have. Bugs which are currently present in the software are unlikely to ever be fixed; according to the SourceForge listing, at the time of writing there are 340 known bugs.
- Dev-C++ lacks many of the features of newer IDEs such as good intellisense or code-completion support and a fully featured debugger. These things can greatly improve workflow for a more experienced programmer and are a minimal hassle for a confused beginner to simply ignore until ready. Given the obscure bugs that often arise and are hard to find support for it isn’t worth it for a beginner to choose Dev-C++ as a simpler environment; if a simpler environment is really the goal then something like Programmer’s Notepad would be a far more suitable choice.
- Following on from point #2, the debugging facilities provided by Dev-C++ are far inferior to those available in other free options and can be very confusing to use. A good debugger is nearly essential to skilled programmers, and debugging is a skill that should be learned by all beginners at a reasonably early stage.
- Error messages and the steps required to solve them are not well documented when compared to other free solutions, and as mentioned above it can be difficult to find other users who are still familiar enough with the software to help.
- The compiler that ships with the Dev-C++ IDE is outdated. This is easily fixed, but it is not obvious to a beginner that this should be done or how they could go about doing it.
- The “devpack” system provided for working with 3rd party libraries is no longer maintained or supported by many libraries, leading to Devpacks either being unavailable or out of date in many cases. When not working with one of these packages it can be difficult and non-obvious how to otherwise get 3rd party code working in the Dev-C++ environment.
Given the availability of free alternatives it’s amazing anyone still clings to this outdated beast, and frankly quite ridiculous that it ever ends up in the hands of anyone who is just now starting out. To finish up, what are those free alternatives?
- Microsoft Visual C++ 2008 Express Edition is by far the best option when it comes to Windows-based IDEs; it costs nothing, allows commercial distribution of products, and is a fully featured solution including excellent debugging facilities.
- Code::Blocks fills the void once occupied by Dev-C++ as an alternative solution, and can also be used on other platforms. An excellent alternative to the higher-quality MS solution.
- For those who really want a simpler environment, your compiler of choice in combination with Programmer’s Notepad or a similar solution is a far better choice than the outdated and unsupported Dev-C++.