The search for a proper C++ IDE

These days I worked a bit with C++, especially managed to apply some of the many things I have talked about in my C++11 series (and some things that unfortunately I didn’t manage to cover). It was really fun, especially considering the performance I managed to squeeze out of an older ARM processor.

For this endeavor I used initially the VS2012 IDE, a RC that Microsoft gave away and that will soon expire. The IDE is way below VS.NET 2008, for example, in terms of speed, of friendliness and of features, but this is some thing that MS is probably considering to change.

Using an IDE made things initially easier, until they became not so easy to handle, especially when it comes to portability, and soon I saw myself in the position of writing code in vim, with hand-crafted Makefiles. Which is fine, don’t get me wrong, but it still feels like the Stone Age.

So now I’m looking for an IDE which will allow me to develop productively when working on my own projects. Currently I’m aiming for a roguelike, and I want to join a 7DRL challenge, that will be named: For hoes and glory!

Now, the problem with these challenges is that you have to be able to put quite fast your ideas into practice. C++11 is a tool capable of helping me in this challenge, but to use it productively I will also need some help. And this is what IDEs are for.

What do I need, exactly? I need an IDE that:

  • doesn’t stand in my way when I want to do stuff. The most annoying message I remember from VS2012 is that I can’t change the code while IT’s debugging. Do the sensible thing, and DIE, God damn it!
  • Doesn’t do voodoo with my IDE view. Eclipse is totally messed up like that, it insists that it needs to change my view in a view quite similar that gives me headaches. And it flickers horribly while it changes the view. 
  • Integrates easily a toolchain. This is where most of the IDEs simply fail. VS2012, we understand. It’s a Microsoft tool, their intention is in keeping their tools for their own platform. Eclipse, you need a lifetime of Java experience to understand the logic on which that platform is built; it’s doable, but you have to donate your first born to the community. Or something. Others are just dumbstruck; most of them install on Windows with no ability to create projects, and if you use the same incantations they used in 1995, then maybe you’ll see it working. (Code::Blocks, Codelite and other otters).
  • It can load a project properly without me having to sacrifice a virgin. They are hard to find these days, highschools are out of them! Look, for example eclipse has no idea that you want to work on a project. You have to have a workspace where you put every piece of thing you’re working on. And it gracefully asks you in which workspace you want to start, which is obviously stupid and you always will tell it ‘open this workspace forever and ever’. Do you want to load just a library and that library’s tests? You need to bring offering in wheat, or meat or virgins. I don’t know what’s trending today.
  • It starts. Eclipse refuses to start for a few minutes, then makes its appearance, like a boss. Probably it has a coffee break embedded in the code.
  • What I want is really a consistent experience across platforms, and the project doesn’t create a myriad of files it shouldn’t need and I shouldn’t care about. I can accept a project file, a cache file that you can do whatever you want with it, but you’ll allow me to ignore it. And I want it to generate automatically makefiles or something that can allow me to be able to compile this WITHOUT the IDE.
  • Integrated debugger. I know how to work GDB by hand, I have done this many times, but now we’re working on machines that are 100 times more powerful than the ones I worked on back then. I’m pretty sure we can have a nice frontend for it.
  • I want them to support a consistent C++11 experience: some sort of intellisense, which should cover lambdas, for example, would be nice.
  • A good editor. This is important. Kate is a good editor (see below), nedit used to be a good editor, notepad++ is probably the best editor ever to run on Windows and I worked with both vim and xemacs (oh the horrors!). You want the editor to be lightning fast, because any millisecond you spend delayed by the editor’s ability to cope with your commands adds up to the stress, and it really feels. If you don’t believe me, try editing some text in a webform (like I edit this text on this wordpress site) and then try writing the same thing in Notepad++. You’ll be amazed.

In the mean time I’m left with only two options. As Diana said, kate + make. They make a good team (and I remember kate is quite a good editor, I loved it; on Windows I can replace it with Notepad++). The second is to retry Cristi‘s suggestion, QtCreator; last time I used it it was quite a fun experience.

In the mean time, beware. There’s no IDE good enough out there. 🙂

Comments

The search for a proper C++ IDE — 11 Comments

  1. I’m waiting myself for a good answer (as in – I wish I had one).

    A partial solution to the build problem is CMake. It’s not amazing, but it does the job.

    So far I haven’t seen a single direct Makefile project that didn’t bitrot. By direct Makefile I mean editing of Makefiles. Many solutions, including CMake, use Makefile as the “low-level” build tool, which is fine for small teams/reasonably large projects.

    • I haven’t tried cmake, and I hear that it might be well integrated with QtCreator. I’m now playing with my environment (just installed KDE in Ubuntu, and tried to play a bit with it). Then, I’m trying QtCreator. I’ll get back on this one.

  2. The creator of the original make tool works for Google, btw.

    IIRC, the day he started working at Google some kind soul quickly removed the Tab key from this guy’s keyboard.

  3. +1 to using CMake to solve a part of the issue. I’ve seen that there is a tendency to add CMake to most open source projects.

    As for the ideal IDE… don’t know. It looks like you need one specially tailored for you.

    Maybe C++ Builder can offer some updates in the future, to match your needs. The last time I used it, it was still 2004, but the memories are still pleasant… except for the price 🙂 . But back then, I was a student.

  4. Well, seems you are not a developer.. just a blamer. Just spend some money and build it on your name, so we also can enjoy it. All other tools are build by someone according to their requirements, not yours.

  5. Suggest you give Eclipse another look, and be sure to modify your Eclipse.ini (just google how, you’ll find tons of tips). It only takes a few seconds for my Eclipse to start. I’ve done head to head comparisons between Eclipse and Qtcreator and Eclipse’s indexer and feature set come out on top.