I am a software engineer at Google on the Android project and the creator of the Java testing framework TestNG. When I'm not updating this weblog with various software-related posts or speaking at conferences, I am busy snowboarding, playing squash, tennis, golf or volleyball or scuba diving. Cedric is a DZone MVB and is not an employee of DZone and has posted 90 posts at DZone. You can read more from them at their website. View Full User Profile

The IDE, Reloaded

03.11.2010
| 8334 views |
  • submit to reddit

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 Mylynshare 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?

From http://beust.com

Published at DZone with permission of Cedric Beust, author and DZone MVB.

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)

Tags:

Comments

Christopher Brind replied on Thu, 2010/03/11 - 4:07am

allows you to work at a much finer granularity: methods, fragments of code and whatever you need for the resolution of a specific task

How is this different from the way Visual Age used to work, and why is it do you think that just above every Java developer who used it hated it?

Neil Bartlett replied on Thu, 2010/03/11 - 1:56pm in response to: Christopher Brind

Chris, I believe that VAJ was hated because it tried to adapt the Smalltalk image idea to Java, and it just didn't work... i.e. every now and again it would corrupt the image, losing all your work.

I used VAJ for my Masters project. I almost failed the year due to a corrupt image after pulling an all-nighter the night before the deadline...

This doesn't necessarily mean that image-based or highly granular approaches can't work, just that they need to be rock-solid reliable.

Gautam Dev replied on Fri, 2010/03/12 - 6:32am

Sounds exciting, thanks for bringing to our attention.

Jeroen Wenting replied on Tue, 2010/03/16 - 2:19am in response to: Neil Bartlett

Chris, I believe that VAJ was hated because it tried to adapt the Smalltalk image idea to Java, and it just didn't work... i.e. every now and again it would corrupt the image, losing all your work.
Only in part. The main reason it failed was because it made it impossible to see the big picture and to manually change code outside the very narrow band VAJ allowed you to work in.
This made actually creating something that worked well almost impossible. The terrible stability (we ran a full backup of the repository every 3 hours, loosing about 2 hours of productivity a day still due to that and crashes, but still better than running a backup only once a day after office hours) only made that worse.
Programmers don't just want to, they often have to, change things in IDE generated code. Not allowing that was a major flaw in VAJ (and tbh other IDEs of the time, including Netbeans).

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.