JetBrains CLion
After a million years of trying out different IDEs, that I could use seamlessly on different machines with different operating systems, it seems I have finally found the right thing. To keep the record, here is a list of software I have tried:
- vim – Had to be mentioned. I have tried all the leading plugins for it and none are good enough for most people. Although, it is THE editor which is not IDE.
- Eclipse – Can’t believe I ever thought of trying it. It is an abomination and it takes more time to make it work up to my nominally high standards than it takes ram. And it takes more ram than what has been manufactured till date.
- Netbeans – A wonderful Java IDE suffers under the ignorant direction of Oracle. Does anyone seriously use it for C++? Only if using Netbeans is more important to you than C++ itself! UPDATE: NetBeans is now Apache CoolBeans
- Code::Blocks – A nice IDE that has the unpolished demeanor of any normal open source software. It takes a long time to “fix” it so it works with a multitude of compilers it supports. The default fonts are smaller than an ant.
- CodeLite – Finally we are getting closer. Not only is it much more polished upfront than Code::Blocks, but also the developer of this software keeps usability in his mind. Only problems are in compiler-detection and how often it actually doesn’t gel properly with a debugger. The biggest problem I found, though, was setting up fonts. For open-source software that has sensible defaults (a rarity, I tell you), the ‘preference’ dialog-box is a mess.
Here I will add that I stuck with CodeLite for a very long time. But as my projects got bigger and bigger, debugging became more and more essential. - Visual Studio Code – A step up in both right and wrong direction. Do you know the famous editor ‘Atom’? Visual Studio Code is like that, but for C++. It has all the good things you can expect from a modern IDE, plus a thriving plug-in development community. But if you want to start a new project, get ready to do google searches, learn about tasks.json, and how to write a JSON to set up an environment where you can compile stuff.
I have purposefully not mentioned Visual Studio (Community Edition) – not because it is not good, which it is, but because it is tied to Windows platform and I cannot make it part of my workflow.
This is where CLion works flawlessly. Granted, you may need to learn CMake for any moderately complicated project, but that is about it.
- Responsive
- Sensible defaults
- Good looking UI
- Easy to setup toolchain
- Multiple platform support
All you need to do is install cygwin along with g++, make and gdb. Rest is automatically taken care of. Debugging also works flawlessly.
That’s all for now. I will update this post as my experience evolves using CLion.