For the last couple of months I have tried to study up for coming job interviews. This typically means finding an area where I am rusty and make it shine. As I do this I find myself going through my old favorite IDEs and discarding them.
Instead I find myself using IDE combos that I never would have considered before and as a result I am starting to visualize the way I would like to work with my IDE.
Let us take a step back in time and see what IDE’s I have worked with lately. To make it shorter I will keep to the Linux world (btw I really like MS VS2012).
2002 – 2006: Emacs, vim, KDevelop. KDevelop made things more integrated then the other tools (well, Emacs rule if you know 100 shortcuts and how to customize it). Unfortunately by then KDevelop was so buggy that frequent sudden deaths and freeze ups made it unbearable. They just released a new version which integrates with unit test frameworks – I have yet to try it out. Maybe it is rock solid now?
…. skipping ahead …
2010 – 2012: QtCreator is great for working with either .pro (Qt’s make system) files or CMake files. It is decent enough to satisfy a lot of common needs but to get the real power of it you need to use plugins for common things like source code formatting etc. It seemed that the only way of doing this was (2011-2012) to compile it from scratch. I switch platform frequently so recompiling QtCreator was a pain
2013: For the last month or so I am studying algorithms and preparing for job interviews.
[ Yes. I am still looking and interviewing. The interview process seem to go on forever. Still no turn-downs, but no signing offer either. So all my options are still open (hint) ]
As I do this I find myself switching between Windows and Ubuntu. Ideone or
LiveWorkspace (seems to be down) are frequent choices for just trying out simple stuff and it is nice to have something that is always easily accessible.
Apart from some Java I code mostly in C++11. Lately I find myself using the Chrome app : SourceKit. It is only a raw editor but all files are saved to Dropbox (I am a serious Dropbox addict). I put my terminal at “always on top” mode and compile from there. Debugging is kept at a minimum thanks to frequent unit testing with gtest or keeping it raw with my own lite test framework.
If I do need some debugging and the simple stacktrace won’t do it I normally use CodeLite for IDE and graphical front end to the debugger.
[ What I want from my IDE ]
What would be really cool is to have a coding IDE that worked similar to Google docs. Every time a source code document is saved it keeps a revision of that. Working with git or mercurial would be just as normal. Small changes, commit often to local repository and when more finished you commit to your central repository of choice (github, bitbucket).
But for the small rollbacks why not have revision history built in? Just like you can browse the different versions of your file in Google docs why not have this for every save. Autosave, File -> Save, Ctrl+s: all would create another entry in the file history.
Having a cloud solution of this IDE would be ideal of course but an app version of it like SourceKit could be even better, especially if the internet connection comes and go (commuting on train anyone?). Unfortunately so far SourceKit does not work offline and so it must have online connection at all times since it is powered directly by Dropbox and not first locally and then to Dropbox.
For now my own combo utilizing SourceKit is my number one “IDE” but maybe my offline/online cloud-and-app powered revision IDE is out there already? If not I am sure it will be soon.