I still see a lot of people using the out-of-date and unmaintained Bloodshed Dev-C++ IDE, 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, code-completion support or 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++.
- For those who just can’t let Dev-C++ go, the wxDev-C++ project is an updated version with less bugs and a few additional features. I’ve not personally used this and see no real reason why given the excellent options from MS or Code::Blocks, but from what I’m told it works acceptably.
I’d been meaning to make a blog post like this so that I could link newbies to it, but it looks like you beat me to it! I’m adding this to the bookmarks collection.
Comment by MJP — January 14, 2009 @ 4:38 am
Well put. For those who are on dev-c++ and do not want to go though the trouble of converting, DO IT! It took me a while to get used to Visual C++, but it was well worth it. Trust me, you will never look back.
Comment by Dan — May 6, 2009 @ 10:24 am
Is there any reason why you didn’t encourage people to switch to wxDev-C++? It addresses issues 1 and 5 immediately. Point 2/3 seems odd, especially when the feature set of the debugger depends on gdb, not Dev-C++. The same is true of point 4, which is a result of the compiler, not Dev-C++.
Personally, I feel that while Dev-C++ is old, it does one thing well: it lets people figure out if they basically like C++ without a lot of investment. I’ve tried Code::Blocks, and have several gripes against it. MSVC++ 2008 doesn’t run on my Linux netbook, so that’s not an option either. While I like an editor + compiler (I use jedit+GCC), command-line compilation is very intimidating to new users and raises the bar for entry to an unacceptable level for many of them.
Comment by WingedPanther — May 9, 2009 @ 10:19 pm
@WingedPanther:
wxDev-C++ is indeed a valid option that people could consider. It isn’t on my list of recommended alternatives simply because I wanted to keep the list short and concise. Whilst I could provide a long and comprehensive list of alternatives, I prefer to instead give a few options I can personally vouch for and leave it as an exercise to the reader if they want to look into additional options. My main intention is simply to get people away from Dev-C++, and a longer list of alternatives doesn’t strike me as something that would further my goal.
You’re correct in your observation that the debugging facilities depend on gdb rather than Dev-C++ itself, but as with point 5 (shipping with an outdated compiler) the fact that the version shipping with the IDE is outdated and has a few issues is something a lot of beginners are unaware of and may have trouble dealing with even if told about the problem. That aside, the lack of good intellisense and code-completion facilities is a matter where the Dev-C++ IDE itself is completely at fault; has this been improved in wxDev-C++?
Again, while your objection to point 4 (poor documentation of error messages) is valid I feel that it’s an issue beginners are largely unaware of and will likely have difficulty solving even if informed.
I’ll make a point of setting aside some time to give wxDev-C++ a try and consider adding it as an additional or alternative recommendation if I like what I see. Thanks for the comment.
Comment by Jason — May 9, 2009 @ 11:13 pm
[...] this impacts users who are migrating from an outdated tool like Dev-C++ the most, because Dev-C++ did not require you to have a project structure in place to compile. [...]
Pingback by How To: Create A Blank C++ Project in Visual Studio « Scientific Ninja — June 10, 2009 @ 12:19 pm
Thanks for the useful info.
Comment by JamesD — June 11, 2009 @ 11:33 pm
There’s a reason why Dev C++ is still being used and why it isn’t “…ridiculous that it ever ends up in the hands of anyone who is just now starting out.” If you’re wondering who a beginner is, well you’re looking at him. Or… uhh you’re looking at what he typed on your blog. Anyway, a beginner, novice, rookie, nub, new guy, idiot, loser, newcomer, etc. finds Dev C++ a good option, even if it isn’t sexy and up to date. I decided to try Code::Blocks and Programmer’s Notepad after being scolded by the experts on a few forums. It’s been about 3 days now and so far I’ve only been able to compile a program on… you guessed it, Dev C++. I decided to go to the Code::Blocks forum help section to see what I was missing when the compile button didn’t work. My thread was locked and I still can’t seem to compile a program on Code::Blocks. With my thread locked on their “help” forum, there was no follow up and I was really left on my own, a novice-rookie-loser still without a clue… *sigh* at least I can still test practice programs and hone my talent on Dev C++ until I’m up to speed enough for more advanced IDEs like Code::Blocks and PN.
Comment by Beard Pass — July 9, 2009 @ 8:46 am
Thank you for useful information.
Comment by makalbo — July 13, 2009 @ 3:31 am
@Beard Pass: You make a good point there, but I would argue that the issues you identify are problems with the available documentation and articles online rather than actually making a good case for using Dev-C++. In the case of your problem with Code::Blocks (and I don’t know why they didn’t provide you help with this) I believe the problem is likely that you have to install a compiler seperately to the IDE, as explained in step 2.1 of this article on setting up Allegro with Code::Blocks. The most common problem people have with Visual Studio tends to be getting confused by all the options and not knowing which type of project to make, which is explained in this article on creating a blank project in VS.
It’s my firm belief that people should continue working to create and improve documentation on proper use of newer solutions rather than encouraging beginners to use an outdated option like Dev-C++, and that although there is unfortunately currently a slightly increased level of difficulty in starting out with these newer tools it is well worth the effort of using them in the long run.
Comment by Jason — July 14, 2009 @ 4:28 pm
I have VS 2008 and VS 2010 Beta. Before that you can definitely guess what I used… Dev C++… Dev C++ doesn’t have any of the many features that new developers like. I was a rookie programmer when I tried it. I immediately switched to Visual C++ 2008 Express edition. I couldn’t stand the horrific GUI nor the fact of how outdated it is and the simplicity of it is poor. Visual C++ quickly brought up to par with the C++ language. The features (for me) weren’t hard to sort out. Each project type was clear as was the options. Along side the other post it is definitely worth the effort to learn to use them. Also if your considering Visual C++ then they got alot of documentation and tutorials for the novice programmer.
Comment by accelleon — July 15, 2009 @ 10:33 pm
This is a fantastic blog post and one that I frequently link to whenver I’m asked about Dev-C++. I used Dev-C++ back in 2000 when it was still being updated and other freely available tools either were sub-bar (sorry, but the text-mode editors that came with GCC were severly limited when it came to the expectations of a GUI environment) or were non-existant (Visual Studio Express Edition didn’t become available until the 2005 series).
Code::Blocks is a pretty good alternative and its updated installer package makes it a lot easier for beginners to use. However, it doesn’t get updated frequently enough to compete with other well-established projects like Eclipse (not really for beginners, I know) and CodeLite.
Regardless, I always suggest that someone who is uninsterested in cross-platform development and is a Windows user should use Visual Studio Express Edition. It’s (mostly) full featured despite a lack of a few resources, in particular those that power and professional users will [probably] never need. And, it’s a great introduction to Visual Studio development so that should a beginner decide that they want to continue development moving to a full version of Visual Studio is pretty painless.
There are always better alternatives to any software package and it often requires a bit of research to make a final decision. No matter which way you look at it, however, Dev-C++ is one package that should not be blindly linked to anymore when there are other much better solutions available.
Comment by leeor_net — December 2, 2009 @ 5:42 pm
points are well stated ! dev c’s been a great alternative after Turbo C++ in many ways but with not being updated/maintained it is proving to be worthless in many courses. I’ll include Code::Blocks in my updates, and thanks for taking your time to inform me on a better note
Comment by iLLukin mYztiKa — December 3, 2009 @ 4:36 pm
Embarcadero For The Win.
C++ Builder is miles above MSVC in my opinion.
Of course it’s not free, but it is the only reasonable “move up” for when you’re ready for a /real/ production tool.
Quality has a pricetag.
Another alternative to Code::Blocks is Aptana Studio.
It pretty much does everything, and supports everything from Java and Python to Ruby and Groovy.
It’s a one-stop-shop with a very nice interface.
Comment by GoDK — February 4, 2010 @ 5:59 pm
[...] because it hasn’t been updated since 2005 and the compiler that comes with it is outdated. This article summarizes best why you should not use Dev [...]
Pingback by A word on IDE’s « ArthY303 — February 16, 2010 @ 9:44 am
Going on free alternatives, you could install GCC or MinGW with GCC and compile from the command line. This would help if you planned to move to Linux and use the terminal.
Comment by Dragonsoulj — February 18, 2010 @ 8:30 pm
Dev-C++ can be zipped, with compiler, with SDL and other libraries included, in a zip file of less than 20MB.
Unzip that on any MS Windows computer, and BOOM! You’ve got a working IDE + compiler + all libs you need with 5 seconds of work.
For someone who develops in Linux and just wants to deploy something on various Windows computers now and then without any compiler or whatever installed on them, such a zipped Dev-C++ is the only sane solution!
Dev-C++ rocks
Comment by Me — March 19, 2010 @ 2:58 am
Or you could do the same thing with Code::Blocks and have an IDE and compiler that ISN’T outdated and buggy. Sorry, but I just don’t think your argument holds much water, Code::Blocks is a viable, and in my opinion superior alternative to Dev-C++.
Comment by Jason — March 19, 2010 @ 11:46 pm
[...] Windows regularly, so couldn’t make a recommend on that myself), I came across a post about why you shouldn’t use Dev-C++. That writer recommended Programmer’s Notepad, Code::Blocks (which also runs on Mac OS X and [...]
Pingback by Larry Ullman's Blog » C++ Development Tools — April 5, 2010 @ 12:50 am
this showed up as a comment on my blog, so i followed it and boy am i glad i did. yes, i still use dev-c++. however, it was a far better alternative than using the [extremely] outdated turbo c++ which most of my classmates still use - since it was provided to us by our c teacher, apparently it must be the best for coding *roll eyes*.
thank you for providing me with alternatives. i’m downloading microsoft visual c++ as i type this.
_lolex.
Comment by lolex — April 7, 2010 @ 3:27 am
btw, was just looking at some other posts of yours and realized something - we’re kinda the same. i.e. both [i assume you are] into coding and like awesome music [read: metal]. plus i was in melbourne for just over 3 years from 2004-2008. miss the party/music scene there. returning next year.
anyways, not trying to be that weird guy on your blog.
_lolex.
Comment by lolex — April 7, 2010 @ 3:44 am