What Free IDE Do You Use? 1055
postermmxvicom writes "I program only occasionally and mostly for personal interest. I went to update my favorite free IDE, Dev C++, yesterday and noticed that it had not been updated since 2005! I went looking for other free IDEs and came across Code::Blocks and Visual Studio Express. I work from a Windows machine, use C++, and make mostly console apps; but have written a few Windows apps and D3D or OpenGL apps. I wanted to know what free IDEs you use and recommend. What do you like about them? What features do they lack? What about them irritate you (and what do you do to work around these annoyances)? For instance, when I used Visual C++ 6.0 in college, there was an error in getline that had to be fixed, and the code indenting in DevC++ needed to be tweaked to suit my liking."
Vim (Score:4, Insightful)
Re:Vim (Score:5, Funny)
Re:Vim (Score:5, Funny)
Strangely enough, you're not the first person I've seen who's sed that.
Re:Vim (Score:5, Funny)
Re:Vim (Score:5, Funny)
Re:Vim (Score:4, Funny)
How do I filter out all these perls of wisdom?
Re:Quite (Score:5, Insightful)
Vi, gdb/dbx and strace should be all any unix/linux coder needs.
Which means that you don't use vim, make, a sccs, a profiler, ctags, or one of a dozen other tools.
Re: (Score:3, Insightful)
Frankly, I would put /bin/bash as first on the list.
My toolchain (ranked by degree of my dependency on the tool) is: bash, vim, exuberant ctags, GNU make, GNU diff, GNU grep, GNU find, GCC, man, git, perl, gdb, objdump.
The chain covers about 95% of projects I do. (To GNU moniker: I'm no GNU nazi, but just to highlight the fact that - flame me all you want - I find the BSD variants of the tools mostly useless in everyday use.)
VIM is powerful indeed. But one should never forget that sizable chunk of
Re:Quite (Score:5, Informative)
I thought people preferring GNU make did so due purely due to availability or having all their experience with that - but if I read you right, you say you actually have deep experience with both and still prefer the GNU variant?
I used BSD make ~10 years ago and only very shortly. So I can't really opine on it.
GNU make is often pain, but with careful planning it's getting the job done. But from my experience I would admit that GNU make has enormous capacity to confuse and freak out people. Lazy evaluation isn't for everybody. I probably should be considered GNU make profi, as I have read through its documentation numerous times already. That further precludes me from commenting on BSD make.
I personally prefer (and use for all my pet projects) GNU cons. It's simple and perl based. (N.B. There is also SCons which is Python based. At times slower than cons, but has more features and more portable.) Cons is pretty much only known to me solution to retain sanity on large projects: built-in dep checker, built-in installation support, proper dependency handling for static libraries, built-in object caching, support for commands having multiple products, etc. But the main goal of cons (and what I love it for most) is to guarantee consistent builds: unlike make(s), cons uses MD5 to check whether the source have changed. (Though can be reconfigured to use timestamps). Takes time to get used to, but is really worth it.
Re:Quite (Score:4, Funny)
# !cc
What else do you need?
Re:Quite (Score:5, Insightful)
Sounds like you've never found an IDE that suits you. I've tried using the vim + gdb + strace type of development and gotten along just fine, but when you find a decent IDE with a good debugger, stack trace, good search facility, debug probe and a ton of other helpful tools it's hard to go back to messing around with lots of separate ones. I think it's important to be able to use the separate utilities to get a project done, and understand what you're doing with them, but why make life more difficult if you can get something that's integrated and does everything you need in one place?
Try to stop being so suspicious of people who like to work differently to you. It's likely they know how to use the tools you use but prefer an integrated environment to get their work done. Not everyone using an IDE is using it because they want their hands held. Those that do won't be using their IDE properly anyway.
Re:Quite (Score:5, Informative)
Vim with Exuberant CTags, GNU tools and a little self-education comprises a fully featured IDE.
The reason so many use and keep using Vim as an IDE, even for large projects is that they can roll together the toolchain - including debugger, profiler, code browser - and builders that suit them, in the way that suit them. Much of the time the people that complain that Vim cannot function as a full featured IDE seem unaware of Vim's shell interface (:!<program> <args> && <program2> <args> [..]) or its 'plugin' architecture, let alone tabs, split modes, keyword completion, folding or numerous other features typical of other IDEs.
A single terminal hosting Vim is enough to comfortably develop large projects in almost any popular language, covering coding, compiling, debugging and execution. Having worked a lot with the awfully bloated and manifold XCode, the sprawling and mysterious Visual Studio and a little with the rather nice Code::Blocks it's clear that I have no reason to consider changing IDE, for the time being.
You keep using that word... (Score:4, Insightful)
I do not think it means what you think it means.
An IDE is an Integrated Development Environment. That means all the necessary development steps for at least coding and compiling and debugging are part of the same interface.
That doesn't mean swap out to a different terminal session and type "make."
I've never understood the sad devotion to vi and vim and other obfuscated tools that UNIX elitists have. Sure I can use vi, but why in god's name would anyone want to unless they're forced to work over ssh for all of their development?
If you're comfortable with it, that's one thing. Recommending somebody else cripple themselves with obsolete technology that completely ignores how people actually work because it should be enough for anybody reeks of that famous Bill Gates quote.
Re:Quite (Score:5, Insightful)
Re:Quite (Score:5, Interesting)
I was a vim guy for a long time. I used it for everything from scripting, to full on applications, and even website development.
Then I bought my mac and discovered XCode. It blew my mind. If I ever go back to linux I will be finding myself a good IDE.
Speaking of which XCode + Interface Builder + applescript makes some of the most powerful graphical applications that any idiot could write. It's really quite amazing how easy stupid it can be. Of course real apps on a mac require ruby, python, or Obj-C.
Re:Quite (Score:5, Funny)
You guys are such weenies.
Did you read the author's question? He's doing this for his own personal interest. He doesn't want to have to kill and dress a buffalo with his bear hands just to eat a hotdog.
Re:Quite (Score:5, Funny)
Newsflash: The 1980's are over. (Score:4, Informative)
It's not about "not having a choice". Windows programmers aren't stupid, they figured out IDEs are far more productive.
To answer the question: Visual C++ Express is the one. Lightweight IDE, best compiler, most standards compliant, best debugger ... it's a free download so don't waste time looking at anything else.
Re:Newsflash: The 1980's are over. (Score:5, Interesting)
To answer the question: Visual C++ Express is the one. Lightweight IDE, best compiler, most standards compliant, best debugger ... it's a free download so don't waste time looking at anything else.
Lightweight IDE - it may only be a 3MB installer, but it downloads a lot more to install on the fly and it can chew up plenty of resources for any non-trivial code bases. It often stalls out updating Intellisense on a project of any appreciable size. Part of the reason it's a smaller install is all the help and docs are online which makes doing work without an active internet connection a PIA (i.e. laptop on an airplane).
best compiler - Nope. Not even close. Intel compiler is generally 10-20% faster code than MSVC++.
most standards compliant - I don't even know how to answer this other than to say I'm hoping you are joking. MSVC++ doesn't even handle empty-struct inheritance according to the C++ standards. Oh, and how about variables defined in a for-statement leaking out of their scope? For an idea of just how non-standards compliant MSVC++ is, take a look at the Boost source code and then check out how much of the code is actually work-arounds for bugs / non-standard features in MSVC++. Both GCC and Intel compilers come much closer to the C++ standard than MSVC++.
best debugger - You got me there. Visual Studio (Express) does have a pretty well polished and easy-to-use debugger. I guess I can give you one out of four.
Eclipse and Netbeans (Score:5, Informative)
Contrast those with Netbeans and Eclipse which are known as Java IDEs but can be configured with plugins and add-ons to do all kinds of stuff, including C/C++ development. I haven't tried either of the two for C/C++ but I believe that Eclipse would be a the good middle ground between Dev C++ and the bloated NetBeans.
Here's [google.com][PDF warning] a good place to start. Good luck.
Re:Eclipse and Netbeans (Score:5, Funny)
I've used eclipse since version 2. I can't comment on it, I'm still waiting for it to open.
I'm here all week, try the tuna salad!
Re:Eclipse and Netbeans (Score:5, Informative)
I've used eclipse since version 2. I can't comment on it, I'm still waiting for it to open.
Huh? OK, Eclipse may start up slower than freecell, but I usually start it only once a day while I pour me a coffee. The real issue with Eclipse is that it's (almost) no use with less than 2GB memory, so it doesn't really run everywhere (yet).
I tried it as a C++ IDE for a while and found it quite nice, only to find out that C++ sucks compared to Java (from a developer's POV). I had to look at someone else's code and it was uber-hard to locate the places where all those macros and typedefs are. I haven't found an IDE that can help you here, so I ended up grepping a lot.
NB: As a Java developer I was mildly insulted by the fact that TFA never even bothered to mention that he's looking for an IDE for C++.
Re:Eclipse and Netbeans (Score:4, Informative)
never even bothered to mention that he's looking for an IDE for C++
Read more thoroughly.
I could be snide and say that's a symptom common to most Java programmers, but it would be too easy.
Re:Eclipse and Netbeans (Score:5, Funny)
Excuse me, something's wrong with your boldfaced text. When I mouse over it, nothing happens?
Re:Eclipse and Netbeans (Score:5, Insightful)
I am surprised to see you describe Netbeans as bloated when compared to Eclipse. I fought with Eclipse for years before trying out Netbeans, and have been nothing but pleased with it. More than anything, it is the bloat of Eclipse that drove me away! Plugins upon plugins upon plugins, all heaped together in some massive directory. Configuration panels that need a search box!
My Netbeans experience has been a breath of fresh air.
Re:Eclipse and Netbeans (Score:4, Informative)
Conversely, I was searching for an alternative for linux (yes, I'll learn vi/vim some day, just not now), and what I found was Geany [geany.org]. It starts up at the flick of a finger and manages to look a lot like Dev-C++ (perhaps more polished even). The only thing I dislike about it is its (intentional) weak project support, but that could conceivably be fixed with the nice plugin system. So, Geany is very lightweight and supports quite a lot of languages, it has its default settings such that if you have the necessary compilers installed (which is basically mostly true on most linux systems, or can be done with one line at the shell), it'll work out of the box. The same for python, perl, etc.
Then I noticed that it also has a windows port, that comes with its own GTK+ runtime (all nicely contained in Geany's folder, and nicely uninstalled if you want), I tried it and while the first startup is not as fast (due to the GTK+ libraries needing to be loaded), all the rest is just as snappy. Ofcourse the windows version needs a little more help to get started, but not _that_ much more. All you basically have to do is install MingW [mingw.org] and set your $PATH to search MingW/bin.
So basically the only problem with Geany that still remains (for me), is that it doesn't really support projects like Dev-C++ did, so for now you basically have to make your own makefiles. This could also be viewed in a positive light ofcourse, as learning about makefiles will prove to be a good skill if you want to do some open source contribution. But I'm sure it could get tedious as well (haven't done many large projects lately), so someone developing a plugin would be really nice, and probably not too hard as well.
Well, I've been ranting and promoting long enough now, time for Geany to promote itself, give it a spin (it's free, the only cost is your time
Re:Eclipse and Netbeans (Score:4, Informative)
Re: (Score:3, Funny)
Ya, and compared to Jack Black I'm actually kinda attractive.
Re: (Score:3, Funny)
A rotting whale on the beach.
Emacs (Score:5, Insightful)
What else would you need?
Re:Emacs (Score:5, Funny)
That's somewhat obvious.
Re: (Score:3, Funny)
vi?
Re:Emacs (Score:5, Insightful)
vi is not an IDE or emacs competitor. Now vim on the other hand...
Either emacsclient or ed (Score:3, Interesting)
Say you're working with git (but it may be the same with other VCSs, not sure).
Say you run git-commit -a (with no -m) in a M-x shell. Then git wants to spawn your $EDITOR so that you can edit your commit message (and see what you're committing).
In that case, you'd want either emacsclient, which tells emacs to open up a new window for the to-be-edited file (and when you say you're done, emacsclient terminates).
Or, you know that the thing that call $EDITOR from M-x shell require very light-weight editing, so
Re:Either emacsclient or ed (Score:4, Informative)
more reading [credmp.org]
Re: (Score:3, Insightful)
Why would you do that from a shell buffer instead of using Emacs built in version control operations?
Re:Either emacsclient or ed (Score:5, Funny)
Because I lost two of the fingers on my third hand in a freak threshing accident, you insensitive clod.
Re:Emacs (Score:5, Funny)
What else would you need?
Vallium, Panadol and Coke.
Re:Emacs (Score:4, Insightful)
Spare hot-swappable pinky fingers?
Re: (Score:3, Interesting)
Re:oOps (Score:4, Informative)
Emacs can be compiled without problems under Windows, but is then strictly Windows, with \ for paths and \r\n for line endings.
You can also compile Emacs under Cygwin, but then it is strictly POSIX and needs a X server to run, otherwise it runs in -nw mode.
Xemacs, however, can be compiled under Cygwin, but recognises that it is under Windows and runs all graphics natively, obviating the need for an X server. That is why I currently only use XEmacs on my job, it works POSIX with Cygwin, but runs natively under Windows.
Eclipse (Score:5, Informative)
I like Eclipse as an IDE because it supports many languages/modes and is very customizable. I mostly use it for Java, Perl and HTML/XML/CSS right now. There are MANY plugins and the context-aware help/auto-complete is very well done.
Re:Eclipse (Score:5, Informative)
Also a great feature of eclipse is that you can install multiple copies of it on the same machine. ...) I have a separate eclipse install.
This is specially useful because MANY plugins make eclipse slow. So for every major project environment (i.e. Java, or PHP, or PDT,
Re:Eclipse (Score:4, Informative)
Eclipse is pretty awesome for C aswell: Automatic Code formatting, resolving macros (and even respect them in auto-formatting).
Yeah and what every other does: Ctrl-Click on functions to jump there, project tree, file outline, etc.
But at the end of the day, you'll still have to think and write the code yourself :-)
Re:Eclipse (Score:4, Informative)
Language-sensitive reference search sold me on Eclipse. No more recursive grepping through the source tree. That was years ago, and now all IDEs seem to have that and more in varying capacity.
99% of the answers are going to be Eclipse (Score:3, Insightful)
Re: (Score:3, Insightful)
Heh. If you think that, you have never written (or perhaps grokked) a single line of Common LISP in SLIME. There is nothing quite like developing your code while it's running. And debugging and changing your code. While it's still running. And, well, never really being out of your program.
IDEs are a quaint imitation. Source analysis? Pfft. How about "active running code analysis" that's tied int
Re: (Score:3, Interesting)
I like it, just wish I could get CUSP (Lisp plugin) working in Ubuntu. If anyone says Emacs or Vi they are insane and have never done 10k lines of code in a modern environment.
Let me start this out by saying that I use Eclipse daily, and that I consider that a modern environment.
Let me qualify that statement by saying that if our ultimate ancestors had known that the eventual development of Eclipse was the price of progress, they would have stayed in the trees.
I may be insane but 10k is nothing compared to some of the projects I've worked on using vim, and while I can't claim to be 100% satisfied, at least I don't feel like it's actively fighting me.
Re:99% of the answers are going to be Eclipse (Score:4, Informative)
I've worked on programs much larger than 10kloc in both Emacs and Netbeaans. I gave up on Netbeans and went back to Emacs because I was just so much more productive there -- even when working in (yuck) Java.
It's pretty modern these days, too. It has intelligent autocomplete, it has a class browser, it has jump-to-definition, it will tell me the type of the variable under the cursor, it does code folding, it does source-level debugging ... in fact, pretty much the only thing present in "modern" IDEs that Emacs doesn't have is a point-and-drool GUI designer, and that's fine by me because I don't design GUIs.
And it is far, far better at actually editing text than any IDE editor I've ever seen.
Also, it reads mail. :p
Re:99% of the answers are going to be Eclipse (Score:5, Informative)
If anyone says Emacs or Vi they are insane and have never done 10k lines of code in a modern environment.
Hoping that I'm not about to start a flame war: why?
I assume you're qualified to make that statement, which means you know both emacs and vi very well. Whenever you think there's something $EDITOR can't do, you have (1) searched the web for that functionality; (2) asked in the relevant IRC channel(s); and (3) asked on mailing lists, news groups, forums and the like.
Let's see; they have (I'm most certain that I'm speaking about emacs, less certain about vi)
Uhmm... what more do you want? Especially for small 10k-line projects. Example: wminput, which translates wiimote events to uinput events, is 9236 lines (in wminput/**/*.[ch]; this doesn't include bluetooth or wiimote libraries).
I think that if you think 10k lines even begins to stretch the capabilities of emacs (or vi), you don't know either editor very well. And you can probably find people who'd point at me and laugh (and suggest I don't know the editors very well) when I suggest that 10m begins to stretch their capabilities ;-)
And I think they'd have a good case: at 10m lines, it's not a question of good editors but of good architectures. Good architectures will allow each developer to work on somewhere between 10 to 100 klocs at a time, not worrying about anything outside their slice of code (until they move on to their next project). [But this is wild conjecture, so take it with a bucketload of salt...]
* pronounced "a(rrrrrhhhhh)ida", like how Stallman pronounces the chi in "LaTeX" and "TeXinfo" or ch in "Bach". I'm not sure about spelling. Search Google tech talks for Bram Molenaar if you really want to know (and hey, it's a nice talk in its own right).
Emacs actually could qualify (Score:5, Insightful)
If anyone says Emacs or Vi they are insane and have never done 10k lines of code in a modern environment.
While the handling of Vi or Emacs actually *is* breathtakingly bizar and unwieldy, what you're saying is not correct. If someone actually takes the time to learn to use Emacs and the extensions it offers for developement - which can take a few years - it can be the most powerfull and fast IDE out there. And it opens files upwards of 40 MB (that's Megabyte) in half a minute and then you can navigate around them with no delay at all. That league of performance is the reason I started using it. In terms of performance Emacs is the most powerfull IDE on the planet.
Then again, I started using Emacs 3 years ago - after briefly considering the purchase of Macsperts new darling child TextMate, basically a modern Emacs rip - and I still can't bear it for longer than 10 minutes - mostly because it so totally doesn't comply with CUAS (Common User Access Standard). Yet then again, Emacs was created when CUAS didn't even exist, so that's no fault on behalf of Emacs.
Bottom line:
If you are willing to invest months (!) of time actively learning an IDE, the cli version of Emacs will be with you until the day you die, as it runs well on everything that uses electricity. Up from the most powerfull supercomputer using the most bizar unix variant right down to a 10-year old handheld PC.
Re:99% of the answers are going to be Eclipse (Score:5, Insightful)
Re:99% of the answers are going to be Eclipse (Score:5, Funny)
If you're writing 10,000 lines in a single file regularly, then your probably need to re-evaluate your coding methods
Word wrap is deceiving. I only wrote 5 lines of code. They are just very long lines.
Re:99% of the answers are going to be Eclipse (Score:4, Funny)
Re:99% of the answers are going to be Eclipse (Score:5, Informative)
Bollocks: Ctrl-x b. For us emacs-users, it's second-nature.
The reason why so many people still prefer vim or emacs is that we can do everything efficiently using the keyboard only. Coding, switching files, compiling, debugging, everything. And we can do that on our own computer, or on one on the other side of the world with merely ssh and the command-line editor of choice.
You might think that something as simple as switching between files isn't trivial in vim/emacs, but that only shows that you haven't learned either. You can point and click all you want, but programming isn't done with a mouse.
Re:99% of the answers are going to be Eclipse (Score:4, Insightful)
In modern computing, its not acceptable that you have to go out of your way to figure out how to do something that trivial.
Its not the 60s any more, the last 50 years has been spent figuring out ways to make interfaces more user friendly. If you're 'IDE', be it vim or emacs can't be bothered to make itself a little more user friendly then why should users bother to use it?
Not saying that you should stop using it or anything, if it works for you, more power to you. You should however stop suggesting it as though it were an acceptable solution. Its not. 20 years ago sure, today, its just not, especially to someone who is ASKING ABOUT IDEs. If they are asking about IDEs they are not experienced enough to start using user-unfriendly IDEs that require a reference manual until you memorize 7 or 8 hundred keyboard shortcuts to get the job done.
And building a house isn't done with a screwdriver alone, but you certainly use a screwdriver when building a house, and a mouse when programming on anything that matters in a slashdot discussion.
If you like emacs or vim, good for you, glad it works. Just stop being such a retarded short sighted, my way is the only way, douche bag and stop pushing it on the rest of the world.
Re:99% of the answers are going to be Eclipse (Score:5, Insightful)
I don't know about emacs, but in vim I can open multiple windows at a time (not to mention multiple buffers!), and switch between them rather effortlessly.
Look, most of use defending vim and emacs are not saying that it is impossible to use an IDE to be productive; just that it isn't necessary. I certainly believe that each person should work with whatever tools they feel comfortable.
However, the "IDE kids" keep categorically rejecting the notion that you can be productive in anything but a large, bulky (and yes, maybe even bloated) integrated system. They would do good not to be so narrow-minded.
I've used both and, although I see value in some IDEs, I personally prefer using the leaner, smaller tools. Sometimes all those windows and automatic wizards and code injectors just get my way.
-dZ.
Re:99% of the answers are going to be Eclipse (Score:5, Funny)
Wow! what a smart comment. I'm impressed. Did you write that yourself, or was there a wizard for it?
-dZ.
Re:99% of the answers are going to be Eclipse (Score:5, Insightful)
I don't think the parent's point about handling 10k lines of code has to do with with ability to load these files into memory but rather about managing the complexity of such projects. When a program becomes this big, it becomes harder to keep track of all the names of variables, the argument types of subroutines etc. IDEs like Netbeans or Eclipse have autocompletion functionality that make your life as a developer at lot easier.
It's possible of course that Emacs or vi provide similar functionality but the main point is that you need some type of IDE when managing a large, complex development project.
Re: (Score:3, Insightful)
When a program becomes this big, it becomes harder to keep track of all the names of variables, the argument types of subroutines etc.
If you're talking about a project, 10,000 lines is not big. A single _file_ of 10k lines is big, but why for the love of god would you do that?
Clearly thought out code structure will keep your project pretty easy to read and work with up to maybe 20-30k lines (more if you're smarter than me, less if you're working on unfamiliar code). After that, an IDE becomes increasingly helpful because it saves you time searching for variable definitions, members of structs/classes etc. The application I'm working on
Re: (Score:3, Informative)
Seriously? Swapping because of much larger files?
Even 50MB of pure source is inconceivable to me (someone might provide a good counterexample), and that's a tiny amount of the memory of any modern system.
I wasn't suggesting that source code comes in files 10k lines long. linzeal was suggesting it as a reason for IDE's being better than vi or emacs. I was ( trying to ) point out it was a silly argument for exactly the reasons you have said.
Your VC++ irritation (Score:5, Insightful)
Keep in mind that VC++ is not the Microsoft Platform SDK. These are two completely different, albeit related, products. The SDK had a bug in getline(), but VC can't really do anything about the quality of the installed SDK.
The best free IDE is the one that you don't have to think about, it just gives you the tools to do your job without getting in your way.
My in-laws have a Mercedes. On the infrequent opportunities I have to drive it, I am always amazed at how well it supports my driving. It is the little things like rotating the headlights into a turn, actually automatically switching into neutral when the car comes to a stop, and auto-dimming rear view for night driving that make driving it a pleasure.
Re: (Score:3, Funny)
wxDev-C++ extended that project (Score:5, Informative)
version 7.0 RC5 came out 2 months ago.
Wiki page with link [wikipedia.org]
Re:wxDev-C++ extended that project (Score:4, Insightful)
wx is about the best free GUI toolkit available for Windows. They all suck to some degree, but wx less so than the others.
I'm not sure why the OP is bothered by Dev-C++ not being updated. If it works, why not carry on using it?
Visual Studio (Score:5, Insightful)
As long as you don't piss yourself in disgust when Microsoft is mentioned (as many here do) - Visual Studio is actually very good.
Seconding this (Score:5, Insightful)
I use Visual Studio exclusively when developing in Windows. My only complaint is the lack of multi-monitor support but that's coming in 2010.
Re: (Score:3, Informative)
Re:But it's not free (Score:5, Insightful)
Yes, that's what's generally referred to as zealotry and ignorance.
If someone just wants to build Windows apps then Visual Studio is far and away the quickest and easiest way to do that.
A lot of people don't care if their software was built by an angel with a halo over his head, if that software isn't very productive they'd rather take the piece written by an average day to day coder.
Some people have better things to do than bicker about religious software vendor wars and just go for what lets them get the job done best, and sorry, but free software all too often just loses out here, until there's a realiation of that, it aint gonna change but the free software has a strong focus on getting things to work, without much effort ever being put into how it works and improving usability and productivity.
Asking people to give up usability and productivity for some moral stance is going to be about as easy as getting blood out of stone.
I support the idea of free software, but the free software movement has to accept these points and act on them as the ideology alone isn't enough to make people switch.
What I use (Score:3, Interesting)
Turbodelphi (Score:3, Informative)
KDevelop 4 and Qt Creator (Score:5, Informative)
Two options that have not come up yet. KDevelop 4 is shaping up really good, but I do not think it is actually working on win32/64 yet. The other is Qt Software's offer Qt creator [qtsoftware.com] which is also getting a good deal of praise. The latter is probably extra good if you use Qt... and if you don't, I would recommend at least looking at it, since it is a very nice LGPL library.
Visual Studio Express is quite good (Score:5, Informative)
You hit it in the summary. I program professionally. At work, I use gcc, xcode or msvs (depending naturally on the platform).
At home, for personal development on Windows in C++, nothing beats Visual Studio Express. It's lightweight, meaning they've trimmed out most of the stuff that you don't care about anyways for personal projects.
As much as it might pain the free software crowd, Microsoft has done a good job with Visual Studio Express.
Re:Visual Studio Express is quite good (Score:4, Informative)
Visual Studio has supported regex substitution for quite a while, including in Express. Under the Find and Replace dialog, expand the "Find Options" and tick "Use" (with regular expressions selected in the combo box). It works in a similar way for Replace in Files.
eclipse (Score:5, Informative)
I swear by Eclipse - I mostly do Java these days though, but I do have it setup for C++, Perl and PHP as well. :-)
Good plug-in support - easy to install and update.. what's not to like?
Integrates with most versioning tools through plug-ins (CVS, SVN etc).
Runs on all platforms. It's great.
Eclipse (Score:4, Informative)
Eclipse and Notepad++ (Score:4, Informative)
Notepad++ isn't really an IDE but it's probably the best c++ editor I've found for Windows. If you want a full blown IDE then Eclipse is probably your best bet. It's written in Java but with a little fiddling it's not too ugly. As for Dev-C++ it's probably lost support because it's written in Delphi of all things.
What I use(d) (Score:5, Informative)
Years ago I worked mainly in MS Windows, and I used Dev-C++ as the free IDE, because it's fast and simple.
Then I switched to Linux. Tried KDevelop for a few days but didn't like it. Then discovered Kate, which can work as a sort of IDE, because you can open multiple documents, and open a console window at the bottom to type compile and run commands.
Then KDE4 was release and Kate suddenly was unusable for programming (due to ruined search function). And that's when I discovered Geany, which is really nice, it has the same functionality as Kate but is more clearly geared towards programmers.
Geany works great in Linux, I see that it's cross platform, so I guess you can also get it to work in Windows. But note that due to Windows not having the same compiler tools as Linux available by default, it might be handier in Windows to have something that comes with its own compiler like Dev-C++ :)
getline and IDE (Score:3, Interesting)
The error with getline is a bug with the library/compiler etc. This is separate from the IDE. It's not very difficult to modify the compiler/C runtime etc VC uses - its just an editor which calls out to other executables to do compilation.
In any case - I'm sure that problem has been fixed with Visual Studio express - Microsoft actually do IDEs and compilers very well, especially with their last few iterations. 6 is pretty old.
Personally I use vim on unix. But when doing GUI work on windows, Visual Studio is hard to beat.
I use a magnetized pin (Score:3)
and I keep them here:
http://www.marthastewart.com/goodthings/magnetized-pin-box [marthastewart.com]
It looks cute, girls get interested in the field.
Re:I use a magnetized pin (Score:5, Funny)
A magnetized needle and a steady hand? Nah - Real programmers use ....
http://imgs.xkcd.com/comics/real_programmers.png
If you're moving towards .NET (Score:5, Informative)
Try SharpDevelop if you ever decide to trade in C++ for C# and the .NET framework.
http://www.icsharpcode.net/OpenSource/SD/ [icsharpcode.net]
http://en.wikipedia.org/wiki/SharpDevelop [wikipedia.org]
I'm not really a Microsoft platform coder any more, but I've used this one in the past and it's not bad. Basically a free (as in speech - LGPL) clone of VisualStudio.
NetBeans (Score:5, Informative)
I've been using NetBeans lately for C/C++ development, and (for the most part) it has it's usual awesome editor features. Unfortunately, the C/C++ plugin only works with the Cygwin/MinGW development tools on Windows.
I'd say that it's most useful editing feature is it's code completion- it completes quite a few of the usual syntactical characters, and it enters them for you in a way that makes sense. Compare that to Eclipse, which only fills in (as far as I know) parenthesis and some brackets. Being accustomed to the completion NetBeans offers, I found the way Eclipse completes characters to be more frustrating than helpful.
For example, if you have this mostly-typed statement (')' autocompleted by editor):
...you might think that pressing the ';' key should make the cursor jump to the end and skip over the ')'. NetBeans will do the small things like this, where I haven't seen Eclipse do it.
some_function(something()[cursor])
I haven't used Eclipse as much as NetBeans, so I may have missed the "turn this feature on" checkbox, but I've always found NetBeans to be a more intuitive editor. I'm not an expert C/C++ programmer (Java is my main language), so I could just be making assumptions that may be true for one language but not another. Either way, its just my $0.02.
Not Free, but... CodeWarrior (Score:5, Interesting)
Not free, and also no longer sold for Windows, but it's my favorite IDE of all time. I still use CW9 on Windows for anything that doesn't require absolute latest C++ compiler/libs (mainly, my MUD, which I do my dev on Windows, but run it on a Linux server).
CodeWarrior has a feature no other current Windows-based IDE has - independent free floating edit windows without being locked into an MDI container with grey backdrop. I'd gladly pay a few hundred dollars for a modern, actively supported editor that had such a feature (I hear SlickEdit has been planning it, but they have yet to deliver).
Qt Creator all the way! (if you code in C++) (Score:4, Interesting)
I'm essentially a beginner in C++ programming and at least for that language I found extremely easy and straightforward doing projects on Qt Software's free IDE. Even if you don't implement their toolkit in your projects, you can still have a stable and unbloated environment to do some serious coding.
There is only one caveat, afaik, with Qt Creator. It's still in version 1.1.1... this means it probably misses some features (or has some not so obvious bugs) which shall probably be covered in later major releases. Nevertheless, if you bind Qt's capabilitities (ie, signals and slots) to your C++ projects there is no better IDE to unleash your productivity!
You can have more information and download your free copy here [qtsoftware.com].
VI and Emacs? In this day and age? (Score:3, Informative)
Vi is one editor every professional should know the basics of because it's very feature complete and versatile. Emacs is more specialized but I'm not knocking it. However if you're developing today, you need to move away from modal editors that have awful help systems and no menus. They simply don't encourage learning and get in your way if you're away from the editor for too long and have to try to remember obscure commands (or look them up!). Note they are EDITORS. An IDE does much much more. You should also be using IDEs and editors that support multiple languages. Gone are the days when a computer professional could afford to know just one or two languages. Who the hell wants to learn the quirks of different editors for each one?
Re:VI and Emacs? In this day and age? (Score:4, Interesting)
They simply don't encourage learning and get in your way
That's exactly why I just gave up on Eclipse, and decided to finally learn to use vi well. Modern IDE's try to do far too much. The last straw with Eclipse was when I wanted (as an inexperienced new user) to write a very short C++ file to test an idea. Eclipse forced me to jump through hoops, defining a project and suchlike. Many of my files are not a project, they're a short self-contained piece of code to do something specific. For coding, I want an editor with syntax highlighting, and a command line. I'm not averse to the right tool - I'm also a happy Qt-designer user, but I'm writing the code with vim.
DEATH TO PROJECTS (Score:5, Insightful)
I've used several different IDEs, with several different languages, for many different programming tasks, over the past decade. I have encountered exactly one instance where having a "project" be anything more than a collection of files I work on at the same time was actually a good thing. Every other time it has simply been an obstacle to bottom-up design, by forcing me to make a lot of decisions about the structure of my code before most of it had actually been written.
The one time the project-oriented IDE was a good thing, I was working on a large app with more than a dozen people who never got to all meet at once, with a central authority dictating the general structure of things to make sure we didn't duplicate effort or step on each others' toes. There was AI involved, so having an integrated debugger to figure out why the AI was making particular choices was very useful. Kdevelop served us very well.
Of course, large development teams are inefficient and prone to communication problems that cause delays and bugs, so they should be avoided whenever possible, just like top-down design. Most of the time, I'm either working on incremental modifications to mature code, where a glorified source browser is sufficient, or writing a small utility from scratch by myself, where I really just need a text editor and a command line. I generally use kscope for the former, and kate for the latter. They get out of the way and let me code.
Sure, I still use a debugger, but the overwhelming majority of the time it's to analyze dumps from crashes I can't reproduce easily, so integrating it with the IDE offers no benefit. A debugger is no substitute for understanding the code, and I can count on one hand the number of times there have been enough control flow-relevant variables being modified at once to make that something I couldn't work out in my head or on a whiteboard.
Geany! (Score:4, Interesting)
Qt Creator (Score:3, Insightful)
I use Qt Creator, xemacs and vim. On all platforms.
Code::Blocks (Score:3, Informative)
I used DevC++ for quite some time until I found out that it was out of date as well. Since then I've used Code::Blocks, and I find it to be quite an improvement. Since it's cross platform, working on different operating systems is pretty easy too.
KDevelop is my alternative choice. For all intents and purposes, KDevelop is my favorite IDE, but since it's only on Linux at the moment, Code::Blocks is my best choice for now. (Still, KDevelop is quite powerful, and I'm eagerly awaiting the cross-platform release.)
Eclipse is also a great choice, though I haven't used it nearly as much. I feel it's a little more focused on Java development, but many /.ers swear by it, so it's probably worth a try.
And on a final note, I've been using Vim a lot more often lately, and with the IDE plugins detailed in the Ars Technica article [arstechnica.com], I may make that my IDE of choice in the near future. (For others, there's Emacs. Both are great, take your pick.)
This will probably cost me some karma... (Score:3, Informative)
Re:VI (Score:5, Funny)
I'm sure lots of people are happy with emacs.
I'm sure lots of people are happy with American cars too, but we have objective standards for a reason.
Re:ID what? (Score:5, Insightful)
What more does anyone want?
The efficiency that is gained by not having to move your project through 20 different tools manually?
In other words, the INTEGRATED part of "IDE".
Re:ID what? (Score:5, Insightful)
What's the difference between activating "make" thru some keystrokes in the IDE, and Alt-tabbing to another window and typing "make"?
Count the keystrokes.
Its all of 1 keystroke in (for example) Visual Studio to build a project and start debugging it.
Alt-Tab, make is 5x that amount. And I might do this a hundred or more times in a day.
But that won't actually work do it, you have to save the file. So that's a couple more keystrokes per round trip to count (and a 100+ opportunities to forget to save the file(s) added to your day)
And that's on a tiny project with apparently one editor window and one terminal window. Alt-tabbing 7 or 8 times, and saving changes in half a dozen different editor windows before going to the terminal and typing make is a more realistic scenario, and its a lot more keystrokes...
Plus, the IDE indicated I had a syntax error as I was typing it, and the code completion prevented me from making another one; and when the class I was trying to instantiate didn't get colored as a 'type' by the syntax highlighter that I knew was correct I immediately knew I hadn't included it in this file. All that saved me a round trip or two through the build process.
And when the app compiled there was a compiler warning; in the IDE a double click on the warning took me right to the source line in the editor, so I could fix it, and rebuild. With bash I get to read the name of the file and linenumber that had the problem, alt-tab to the right editor window, manually jump to the line number, make the fix, save it, and then switch back to the terminal window and run the build script again.
So... no difference at all between an IDE and bash, except the IDE saves me multiple round trips through make, prevents errors, and saves thousands of keystrokes a day.
I didn't say the IDE was more "powerful", I just said it was more efficient. And it is.
Re:ID what? (Score:5, Insightful)
I tried using Visual Studio at work, and was frustrated with the amount of effort it took to create and configure a project
Maybe you're incompetent.
Re:ID what? (Score:5, Insightful)
For newbies and people who cannot touch type, yes. For professional programmers, not so much.
Spoken by someone, who very obviously, has never taken the time to learn the ins and outs of a good IDE like Eclipse or VS. There's no argument here. If all things are equal, ie you know both methods the same, and IDE is SO much faster to work with that it's not even close.
Re:ID what? (Score:4, Funny)
come on, we are talking about IDEs and you go bring in operating systems... play fair.
Re:ID what? (Score:4, Insightful)
Re:ID what? (Score:5, Insightful)
As much as I enjoy using bash for the things it's best at, you are showing the blind spot that irritates me most about open source evangelism and UNIX purism.
That is the mistaken 100 tools that do the same thing (and more) as one single specialized program are just as good as having a single program custom tailored to your tasks. With that sort of attitude, nobody would ever have written "make" in the first place, let alone all those automated tools to write makefiles.
For that matter, "bash" would never have been written because "sh" can already do most of the same stuff and commandline tools and cleverly written shell scripts can make up the functionality, right?
I think by now, if you're reading this at all, you're scowling and looking for something to disagree with.
The point is that sh and the dozens of powerful commandline GNU tools based on the great old stuff that was written for UNIX are still useful and relevant today, but they're not the only thing that is useful and relevant today. Sometimes you just want a single tool which does the job and gets out of your way with the least amount of effort. That doesn't make you stupid or lazy or childish, or everybody who's using bash right now needs to grow up.
If you have to spend 5 minutes writing a command with 12 pipes and output redirection through 13 programs which duplicate a functionality I get from a single checkbox in, say, Visual Studio, then you're not working efficiently. And merely because I choose to skip those steps does not mean I have no idea how to do them - I'm a professional UNIX system administrator as my day job.
The point is that although practice makes perfect, familiarity breeds contempt. When I get home to code on my own projects, I'd prefer not to have to write makefiles, build scripts, hand compile everything, edit out of a single window so I never forget to save anything, and constantly search for line numbers in a lousy no-syntax-highlighting no-code-completing circa 1980 text editor. I did that circa 1980, and I believe in progress.