Slashdot Mirror


Code Bubbles — Rethinking the IDE's User Interface

kang327 writes "As Java developers we are used to the familiar file-based user interface that is used by all of the major IDEs. A team at Brown University has developed an IDE for Java called Code Bubbles that makes a fairly radical departure from current IDEs — it is based on fragments instead of files. The idea is that you can see many different pieces of code at once. Fragments can form groups, have automatic layout assistance, wrap long lines based on syntax, and exist in a virtual workspace that you can pan. A video shows reading and editing code, opening different kinds of info such as Javadocs, bug reports and notes, annotating and sharing workspaces, and debugging with bubbles. They report on several user studies that show the system increases performance for the tasks studied, and also that professional developers were enthusiastic about using it. There is also a Beta that you can sign up for."

6 of 198 comments (clear)

  1. Sounds like Smalltalk's code browser. by Anonymous Coward · · Score: 5, Insightful

    Welcome to the 1970s. Squeak is one of the better implementations these days.

  2. Re:bubbles = isolation by Anonymous Coward · · Score: 5, Insightful

    Initially, the idea of "code bubbles" sounds intuitive -- isolated, self-contained, easily testable pieces of code, with well-defined inputs and outputs. Then you could build a complex program by stringing these bubbles together (in theory, anyway).

    Perhaps we could call such a pieces of code "functions" instead.

  3. Re:bubbles = isolation by ottothecow · · Score: 4, Insightful
    I like the idea at least as I understand it from the summary.

    Might just be more handy as a display mode than an entire paradigm but I can see how it would be nice if you could display functions together from different files.

    If you are working on one function that is in file3.c that has to interact with functions in file7.c and file3.c, why not be able to display them all as if they are in the same file (when they will eventually get compiled together anyways). The code already exists in most IDEs to collapse functions, so why not extend that to being able to mash up all the collapsed functions from every file. Then you can display the ones you want to see as if they were all in the same file.

    Keeping stuff in separate files and including them is a good organization technique and helps with multiple people working on a project (and you can substitute different files for different platforms, etc.) but I can see where this would be useful if instead of flipping between 5 open files, the IDE could display just the portions you need. Bonus points if the IDE can do this automatically in a semi intelligent manner--like show the collapsed version of functions that might be relevant based on some criteria and then allow you to expand them if you like.

    --
    Bottles.
  4. Re:bubbles = isolation by l3v1 · · Score: 5, Insightful

    isolated, self-contained, easily testable pieces of code

    And I'd add small and short to that list. There's no way this bubble concept would be useable with code fragments longer than a few lines, and even those need to be short since wrapping would destroy the usability of the whole thing. Also, in the sample video, when they had to scroll the screen because of the many bubbles, well, there it became a lost cause for me. Realistically, from code dealing with more than helloworlds that I've seen and written, this thing would be a real dealbreaker. I can't think how so much fragmentation can help you in the long run. Having self-contained small pieces of code that do one thing - that is useful -, I'd say those are hard to find. Managing tens of thousands of lines of code this way, I'd go crazy very quickly.

    --
    I am putting myself to the fullest possible use, which is all I can think that any conscious entity can ever hope to do.
  5. Re:bubbles = isolation by sirius_bbr · · Score: 4, Insightful

    I think this kind of IDE would be very usefull during code-maintenance, especially when the code you maintain is written by you (which is often the case).

    When developing new code, the bubble-concept could be too confusing, because it seems to hide the overall structure of the code.
    But during maintenance, when hunting bugs, I often don't want to see the whole picture (and hence the whole complexity), but am much more interested in smaller sections of a program, and the relations between them. The bubble concept would really help.

    --
    this sig has intentionally been left blank
  6. Re:What a giant failure by stoanhart · · Score: 4, Insightful

    What a closed-minded and overly general statement!

    I certainly agree that often a keyboard-only approach and minimal screen "wastage" is great - I am an emacs fan after all. However, there are always exceptions and if we don't explore new ideas we won't find better ways of doing things. How can you call it an automatic giant failure when you haven't even tried it yet.

    Your complaint about not using all available screen space for what you want to see doesn't even make sense in this context! Why would you want a single bubble/code fragment to take up the entire screen? That's contrary to the point! The idea here is to be able to quickly trace a complex program by seeing only the code that represents the function being called at any point, rather than the whole irrelevant file. And while there should surely be a keyboard method to navigate the bubbles (arrow keys would work marvelously here), a mouse is an excellent way to navigate a large 2D surface.