Rethinking the coding IDE : SourceKit App on Google Chrome

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.

sourcekit

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.

Advertisements

About kjellkod

Software Engineer by trade, (former?) Martial Artist and Champion by strong will and small skill... and a Swede by nationality :)
This entry was posted in C++, coding, Software Engineering and tagged , . Bookmark the permalink.

5 Responses to Rethinking the coding IDE : SourceKit App on Google Chrome

  1. DLed says:

    what about creating a macro in the IDE of your choice, mapped onto a git command?

    • kjellkod says:

      Yeah, something like that.

      The thing is. It would not be really that hard to do it MacGyver style.
      Using a macro like you suggested you could easily in many IDEs have “ctrl+s” saving the file as well as committing it to local git repository.

      All in all. It is just a thought for now. I would like to have a wholesome, integrated, solution where also the viewing and reverting would be just as simple (as in google docs).

      For now it is just a thought. I have not yet started to fiddle with any open source IDE yet.

  2. QuantumCD says:

    I thought about writing an IDE-like text editor sort of like this in Qt (portability) a few months ago. In fact, I really wanted to have a sort of integrated version control for individual files. The hard part would be the actual text editor part to me. There’s so much competition with IDE’s/text editors (have you seen Textmate/Sublime?!) these days, it’s really hard to do much to impress. Creative thinking will have to prevail 😉

    My idea for the versioning system was simply to have the files saved “as” in a revisions folder, and have a side bar with all the changes, with a preview if nice. Git is great, but I do find it tedious to commit things if you are writing a lot of code. More often than not, a project starts with a repository, but it ends with like 3 commits and a thousand lines of code that just “appeared”.

    Git doesn’t really focus on a per-file basis though, from my experience. The individual file revision feature would be really cool to have. It’d almost be something of a persistent undo system. Now that would be cool (Ctrl + Shift + Z? 🙂 )

    Just a note though on SourceKit offline support: I don’t know if it’s possible to store files on disk with a chrome extension. I’m guessing it’s possible in a round-about way, as some of Google’s apps seem to have offline counterparts (Gmail offline, calendar, docs, etc.) of course, they do make Chrome…. 😛

    SourceKit seems to be open source, so perhaps I will look into the saving code sometime. I don’t know if they depend on an online library though, as that might be causing it too. I’d be interested in a fork if I have time that simply adds a button to “Save to computer” instead of Dropbox. Now that’d be awesome!

    • kjellkod says:

      currently I use Netbeans for c++. It is a full-blown IDE but what I really like with it is that it provides individual file revision history.

      Its the first IDE that I have tried that does this. It is not perfect by all means but it is one of the better ones out there.

      • QuantumCD says:

        For C++ I use Qt Creator and Visual Studio. I love Qt Creator because it’s cross-platform, and other than Visual Studio, I haven’t really used another C++ IDE (unless you count Vim or something, which I used when learning with the command line a few years ago :P).

        I didn’t know Netbeans had that functionality. Really useful. Qt Creator has Git built-in, but I never use it because I can’t get it to work right for some reason. Visual Studio is supposedly adding support for GIt… but we’ll see. The plugin right now is… meh, to say the least. The biggest problems is that I can’t get it to add versioning to new projects in a solution-wide repository, which is no fun.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s