51

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:

  1. How stable is it? If IDE crashes I don't need it.
  2. Comfortable to use.
  3. Powerful for debugging.
  4. Integration with various build systems
  5. 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.

5
  • 9
    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. Dec 18, 2011 at 8:38
  • @AProgrammer - very good point, added to the list.
    – Artyom
    Dec 18, 2011 at 8:45
  • You could also take a look at CodeLite- codelite.org . Unfortunately I do not have much experience with using it with huge projects. Nevertheless it may be worth to check it out.
    – rsc
    Dec 20, 2011 at 8:53
  • 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.
    – Jan Hudec
    Dec 21, 2011 at 9:15
  • I was just wondering about it myself. Thanks for posting this question.
    – Suspended
    Feb 24, 2016 at 18:36

9 Answers 9

42
+50

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) :

  • kdevelop

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.

  • eclipse

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.

  • netbeans

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.

  • qtcreator

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.

14
  • 17
    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
    Dec 20, 2011 at 21:02
  • 11
    @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. Dec 20, 2011 at 21:43
  • 6
    @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
    Dec 20, 2011 at 21:53
  • 7
    @Coder As Edison said, your installation or environment is not good. My eclipse is super fast. Tab switching is almost instant. Dec 21, 2011 at 8:19
  • 4
    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
    Dec 27, 2011 at 2:52
13

Take a look at Qt Creator.

  • It's pretty stable. I don't remember any crashes with it.
  • It may take some time to get used to absence of tabs but overall interface is good.
  • It uses gdb. Debugging is not as great as in Visual Studio but still pretty good. It also integrates with profiler (Valgrind) now.
  • It integrates with qmake and CMake. But you can run custom commands so it should be possible to use almost everything.
  • Can't say anything about huge projects but it's made and used by the same guys who write Qt so requirements are high.
  • It doesn't seem to make any assumptions about project structure.

I tried KDevelop 4 some time ago. It's certainly moving in the right direction but slightly buggy. You may want to try it anyway.

I used CodeBlocks for very short time but I remember I didn't like it because Interface was ugly.

0
10

Many GCC developers (and GCC has 5 to 9 millions lines of source code, depending how you count them) just use emacs or vi with utilities like grep, ctags or etags, make, svn, gcc, etc.).

You don't need an IDE to develop a big software.

If your software is big enough (e.g. at least 0.3 million lines), you could even consider customizing GCC thru plugins or MELT extensions, for purposes of software metrics, software navigation, specific warnings, coding rules, etc.

2
  • 10
    That was not the question. As I noted I mostly use vim (with grep, ctags etc.) - I know how good it is. However many programmers prefer IDE
    – Artyom
    Dec 21, 2011 at 21:53
  • 1
    IDE's are specially helpful for C++ class related features, which are very hard to configure well in Vim. Raw C is OK with ctags. Jun 1, 2016 at 13:14
7

I mainly work with Eclipse. Used KDevelop with a great satisfaction for years, but now I work on multi-language projects (C, C++, PHP, Java, Python, Database, Web, etc).

Adavantages of Eclipse: lot of tools for about everything (including version control); works very well for syntax check, and auto-completion. Good job when compiling/building/debug. It is multi-platform (Linux, Windows, Solaris, etc)
Disadvantages: some functions or settings are a nightmare (for instance, when you have to deploy the project from your workstation to the server, Eclipse keeps a sort of cache, and if it thinks that the file on the server it's 'up to date', the file is not overwritten). Eclipse is huge, chokes most of your CPU-Power and drains all your memory. More info at http://www.ihateeclipse.com.

KDevelop is fast, and great for C/C++ and KDE/Qt projects, but lacks of some functions like support for Mercurial (KDevelop 3.3.4, don't know for newer versions).

5

Visual SlickEdit - commercial, like any good tool, "just works". Handles every language under the sun, out of the box, highly configurable and if if needed, fully programmable, puts a gui around GDB for debugging. Handles very large projects (I use it for a code base of 5million+ SOLC, of which I play with about 1million of them.) - Won numerous awards way back and has got better since then. Try it

Eclipse - Tool of choice when programming in Java, OK for any supported single language. Written in Java for Java developers developing Java programs. But needs plugins for every tiny little feature and major feature. Does not "just work" for more than one language at a time.

5

Netbeans is a slow, slow IDE. We are not using "dinosaur computers", but this IDE HANGS for quite a long time. If we access the Netbeans IDE over the network (say, using VNC), then forget about it!!! The lag is so bad as to make Netbeans unusable!

I find Eclipse intimidatingly hard to setup for initial use, but if you persevere, you'll wind up with an IDE that has everything you could want or need (possibly by way of plug-ins).

I don't want to use more than one IDE, and I suspect you don't either. I'd recommend Eclipse, with all its faults.

5

So... I just add another opinion but I don't think you can chose it as a vim user, so

emacs + gdb http://www.cs.bu.edu/teaching/tool/emacs/programming/

first of all that will be lightest IDE (I even can call it operating system) and most customizable so you can do everything with minimum resources usage except some lisp configuration brainwork resources.

Personally when I have a serious project I'm using Visual Studio. But when I need to work on linux I run emacs. (also I don't like qt at all)

Also (mostly because I like last.fm plugin and clojure support there) I found an nice IDE for linux (still tryeng to switch to emacs from it ==' for some reasons) IDEA, not I recommend to use it for C++ but maybe it's not bad too so you can add it to your list.

2

QT and CodeBlocks are ok. I use CodeBlocks lately.

It can be configured for makefile projects, code completion mostly works, and doesn't hang like one in MSVS, go to definition is blazingly fast. Function browsing is also well done.

There are some minor issues, but for day to day work on Linux it's very good, IMHO.

0

My only attempt to use an IDE on Linux happened in 2005, but at that time no IDE I tried (KDevelop, eclipse, Anjuta) was any good, so I went back to vim+ctags+gdb and still using it for Linux coding.

3
  • Probably you the man who know the answer: how go to some method implementation in another class of hierarchy (parent/child implementation) in vim. Jan 5, 2014 at 13:56
  • for example in Eclipse the combination is Ctrl+T on a method name. Jan 5, 2014 at 13:57
  • @Sergei Sorry, ctags does not support that. You may have better luck with something like YCM: github.com/Valloric/YouCompleteMe Jan 6, 2014 at 1:57

Not the answer you're looking for? Browse other questions tagged or ask your own question.