Here is a very interesting take on the concept of Integrated Development Environment.
As opposed to traditional IDE’s, which work at the same level as the Java language itself (classes and packages), this IDE, called Code Bubbles, allows you to work at a much finer granularity: methods, fragments of code and whatever you need for the resolution of a specific task. All these tasks are linked to each other in a workspace, thus allowing you to stay focused only on what is relevant for your current task.
Of course, the concept is not new since it’s exactly what Mylyn is trying to achieve, but to be honest, every time I’ve tried to get into Mylyn (and I tried several times over the past years), I ended up giving up in frustration. This is not to say that Mylyn is a bad product, just that retrofitting such an idea on a traditional IDE, no matter how flexible, is probably impossible.
Still, I can’t shake this impression that it should be possible to mix both approaches, and considering the mindsharing that Eclipse has, being able to offer an intuitive and lightweight add-on that would enable the kind of unit of work granularity that Code Bubbles enables could be very interesting.
And this thought led me to git, but I’ll need to make a digression first.
One of the strengths of git is its branching model: branches are so cheap that you find yourself branching all the time and then switching, merging and committing very often.
Another interesting aspect of source control systems (not limited to git) is that the diffs that you are creating capture the unit of work that is relevant to you. And a git branch is actually very similar to a Code Bubbles Workspace.
So how about an Eclipse perspective that would be based on git branches?
The perspective wouldn’t just show the diffs, an information that is in itself not very interesting, but it would be a bit smarter than that and be able to infer that if you modified a couple of lines in the method init(), the that whole method should become a bubble in that perspective. Intelligent linking between bubbles could also be provided by looking at the chronological order in which the methods have been edited: git would only know that you added two lines in the method init() and that you then renamed a field in the class Foo, but the perspective would note that the two events are related since they followed each other, and it would reflect this by linking the bubbles.
Thoughts?
#1 by Igor on March 11, 2010 - 7:19 pm
Quote
Hi Cedric,
I am wondering what did not work for you with Mylyn. I had couple of false starts on it myself, but for more that a year now I am a happy Mylyn user.
I am using it with JDT,CDT,SDT and Android.
Igor
#2 by Robert Schultz on March 22, 2010 - 12:58 pm
Quote
Hrm, it’s an interesting approach to an IDE.
The video made it look useful for the tasks he was demonstrating, but that’s also probably the most ideal use of the IDE.
I really would need to actually try using it to see if it’s something that I’d ever actually switch to for my Java development.
Thanks for writing a blog post on it, first I’ve seen of this product
#3 by Adrian on March 31, 2010 - 4:39 am
Quote
Of course, the concept is not new since … it is based on Self’s Kansas IDE by Dave Ungar etal. Kansas also includes large-than screen canvas and you browse the system method by method following semantic links such as callers and receivers. Screenshots (itty bitty ones) here, http://bit.ly/a6E7pC, slide 11 ff