Comparison of IDEs for C++ and C development on Linux: KDevelop, Eclipse, NetBeans, CodeBlocks and Anjuta
I'd like to note your experience of full scale IDEs on Linux.
I personally work mostly with
vim, however other programmers would like to see a real IDE. So I'd like to hear your personal opinion about different IDEs and comparison between them, in following context:
- C++ and maybe some C development (not Java, Python and other stuff)
- Server side programming (no need for GUI development)
- Working on Linux not "cross-platform" development.
Opinion needed regard:
- How stable is it? If IDE crashes I don't need it.
- Comfortable to use.
- Powerful for debugging.
- Integration with various build systems
- Scalability over huge projects (projects of hundreds thousands of lines of code)
I used to work with KDevelop and it was very nice IDE and seems that KDevelop 4 is a huge progress. It seems also that many rather use Netbeans and Eclipse.
I'm very interested by the answers you'll get and I'd be gratefull to people providing answers if they worte about two other points I'm interested in. The scalability to projects in the 50 thousands files/30 millions lines range and adaptability to a project structure which isn't the one used by default by the IDE. My experiments are several years old but at that time everything I tried failed in those aspects.
You could also take a look at CodeLite- http://www.codelite.org/ . Unfortunately I do not have much experience with using it with huge projects. Nevertheless it may be worth to check it out.
With project and clang_complete plugins and properly configured make, vim will give you almost everything IDE would (except debugging). With those I suspect you'll stay with vim anyway; I certainly do.
Here is my personal experience with IDEs. I installed all IDEs I could find, and played with them all (that is what I would advise you to do) :
I personally use it. The version I have installed crashes, but I downloaded the latest version from their site, and it works good. It is simple to configure and great to use. They support custom build system through plug-ins. You might find some weird features (like parsing only directly included headers), but generally it works good for big projects.
Super complex to configure, but it allows literally everything. If you have enough time to find a correct configuration that pleases everyone, then go for it. But trying to change anything is very annoying because it has so many options.
- anjuta and codeblocks
I tried it shortly, and it wasn't as good as the previous two. Codeblocks is good for short projects, but not for medium and big.
Another good IDE, but since my home is on network share, and the project I work is fairly big, it was very slow. It parses all the time.
Simple to configure, but it is missing lots of options. For example, the strangest thing with it is that it can not parse and auto complete qt classes. Supports custom build system.
To conclude :
- if you are patient enough (or if you find a good configuration), go with eclipse. It is really the best free IDE.
- If you want something simple to configure, go with kdevelop.
Another option is to install both, and let your developers pick what suits them better.
Just my experience: I used Eclipse for C development (on Linux), and didn't find it hard to configure. It does require some inital setup, but that is well documented.
Eclipse is one slow piece of Java .... There is no reason to use one unless there is absolutely no alternatives. On my PC it just started in just under a minute. Nuff said, no?
@Coder Yes, it is java, but the developers machines are usually best of the best. At least in normal companies
@Coder Well, you'll start it once, and use it whole day without restarting. That's an idea. 1 minute is nothing compared to how long you'll use it in a day.
@VJovic: Switching between tabs takes from 18 seconds to 1 second depending on tab, and slowdowns are not first use only slowdowns. Even Visual Studio seems snappy compared to that.
@Coder my eclipse starts in less than 30s. You definitely have a problem with your java setup. Have you tried installing the sun vm? Maybe you have a nasty plugin there. Try downloading the classic distribution and trying it.
@Coder As Edison said, your installation or environment is not good. My eclipse is super fast. Tab switching is almost instant.
Ecilpse leaks memory like sieve. Multi user Linux box, with 16 Gig RAM, runs out of RAM with a few instances of Eclipse (CDT) running for more than a few days. Hence the slow start is a problem, as you need to restart at least once a day, or slow down then entrire dev team. Eclispe RAM use - 600Meg/instance growing at 100/day. Fully featured IDE 50Meg/instance growing at 0/day, VIM, 10Meg growing at 0/day. One commercial IDE, with a price tag of $US250/seat, showed less than 1 year ROI based soley on the lost productivity to load Eclipse once per day.
@mattnz Why do you need several instances of IDE? There are no need to restart it. I run kdevelop whole month before I restart it for other reasons (my colegue uses eclipse like that as well without restarting).
We need more than one IDE per machine because we have more than one developer per machine. In our environment its far better to have a seriously powerful central server shared across the team than have developers working on a consumer grade PC.