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. 🙂