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.

Artyom
  • 2,079
  • 4
  • 17
  • 17
  • 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. – AProgrammer Dec 18 '11 at 08:38
  • @AProgrammer - very good point, added to the list. – Artyom Dec 18 '11 at 08:45
  • 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. – rsc Dec 20 '11 at 08:53
  • With [project](http://www.vim.org/scripts/script.php?script_id=69) and [clang_complete](http://www.vim.org/scripts/script.php?script_id=3302) 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 '11 at 09:15
  • I was just wondering about it myself. Thanks for posting this question. – Suspended Feb 24 '16 at 18:36

9 Answers9

41

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.

BЈовић
  • 13,981
  • 8
  • 61
  • 81
  • 1
    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. – sleske Dec 20 '11 at 09:51
  • 16
    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 '11 at 21:02
  • @Coder Yes, it is java, but the developers machines are usually best of the best. At least in normal companies – BЈовић Dec 20 '11 at 21:30
  • @VJovic: I have a very good PC and it still took almost a minute to start the IDE. – Coder Dec 20 '11 at 21:36
  • 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. – BЈовић Dec 20 '11 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 '11 at 21:53
  • @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. – Gustavo Muenz Dec 21 '11 at 01:42
  • 7
    @Coder As Edison said, your installation or environment is not good. My eclipse is super fast. Tab switching is almost instant. – BЈовић Dec 21 '11 at 08:19
  • Awarding this question as most complete one – Artyom Dec 26 '11 at 07:06
  • 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 '11 at 02:52
  • @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). – BЈовић Dec 27 '11 at 08:16
  • 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. – mattnz Dec 27 '11 at 20:27
  • 3
    There's an option in NetBeans to disable the file scanning. – johannes Aug 01 '12 at 14:41
  • did anyone try CLion? – Janus Troelsen Sep 12 '15 at 00:12
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.

Anton Barkovsky
  • 907
  • 9
  • 15
9

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.

Basile Starynkevitch
  • 32,434
  • 6
  • 84
  • 125
  • 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 '11 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. – Ciro Santilli OurBigBook.com Jun 01 '16 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).

AndrewQ
  • 246
  • 2
  • 5
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.

mattnz
  • 21,315
  • 5
  • 54
  • 83
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.

Behrooz
  • 99
  • 4
cnd
  • 1,874
  • 1
  • 14
  • 19
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.

Mike
  • 69
  • 1
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.

Coder
  • 6,958
  • 5
  • 37
  • 49
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.

Nemanja Trifunovic
  • 6,815
  • 1
  • 26
  • 34