Code Bubbles

Check out the cool demo of Code Bubbles. This is some very nice, fresh thinking. As Gilad Bracha says, standard IDE’s look like the console of a B-52. I look forward to reading the details, which they are embargoing until their papers are presented. I wonder what UI they used? I see zooming, transparent overlays, and animation. I am guessing Silverlight.

22 Replies to “Code Bubbles”

  1. This was done for Java.. seems they would have used JavaFX or even just direct J2D right? Seems strange to use Silverlight for a Java IDE

      1. Andrew Bragdon has borrowed funding from Andries van Dam and his advisor is Steve Reiss. This probably explains why the UI implementation isn’t that much about experimentation and prototyping power for traditional UX designers (Silverlight), as AvD is a bottom-up principles-first old school kind of guy.

        There are some interesting UI projects out there in the last decade, like MaggLite and Morphic/Lesserphic and Brazil. — It’s entirely possible Andrew just rolled his own, but whatever he did, he is fundamentally using Eclipse to bootstrap it.

        It will be interesting how long it will take Oracle/Sun to get JavaFX fully ready in applets for the Web, including dragging onto the desktop. — at that point, it’s as good as Silverlight/Moonlight, minus the obvious fact JVM has way more architectural defects than CLR.

        1. Brown is split between C++ (graphics + big data folks), Scheme (PLT), and Java (everything else). Steve Reiss and Andy van Dam are big Java proponents, so no surprise there.

          This sort of goes back to my whole thought that we need to rethink how we analyze languages to better incorporate societal factors.

  2. It looks like Squeak. Seems a lot more likely that a PhD student would use Smalltalk rather than SilverLight… at least there was a time.

    1. Squeak is definitely the first thing I thought of. Fond thoughts, at that. Files are such an arbitrary constraint on code navigation.

    2. Cool! It looks like Smalltalk & Self meets OneNote & Google Wave. It also seems related to what Bill Griswold was doing with the AspectBrowser and Information Transparency.

      The original Self demo had some nice animations too… I give this one a good shot of being straight Java 2D. (Why? Because if you want it done right, you have to do it yourself.)

      1. The polish and fluidity of this UI would take a LOT of work in Java2D. I am sticking by my guns: this is Silverlight or WPF, not Java. Care to make a friendly wager? Dinner on the loser.

        1. If he wrapped Java2D with a functional reactive programming interface like Adrian Quark’s, then it might be doable. Again, don’t rule out that he rolled his own.

          But he is borrowing Eclipse code, so the only way for him to do this in WPF or Silverlight would be if he called Eclipse through IKVM. Actually, that would NOT be a bad idea, as Eclipse has way better and more comprehensive APIs than SharpDevelop!

  3. The Code Bubbles demo is built on Eclipse, and uses Eclipse functions to do some of the bits demoed. Apparently this is more than just a demo. They asked for programmers to give it a try – I signed up.

  4. I am glad that you liked it. I am one of the co-authors of the paper. The front end is done in C# and WPF. The back-end is an eclipse plugin(java). The front-end and back-end communicate via XML-RPC.

  5. Update: Andrew Bragdon informs me that they used C#/WPF but are in the process of porting to Java/Swing to improve portability and performance. He says WPF is better for rapid prototyping, and that it is a lot more work to use Swing for some things. It will be very interesting to see how different the Swing version looks. Leaves me still confused about what the best platform for IDE research is.

      1. I think it also depends on specific UI features. E.g. Subtext 1 had vectors overlayed on text, which is a real pain in old fashioned imperative redraw UI’s. There were tons of bugs about what got redrawn when, and flicker effects that I could not get rid of. WPF makes it trivial with a scenegraph that lets you stack up shapes and takes care of all the redrawing. I had planned to do zooming in Subtext 2, which is a lot of work in pixel-based UI’s like Swing, but again trivial in WPF. It will be interesting to see how the zooming looks in Code Bubbles under Swing.

  6. I actually thought this was more evolutionary than revolutionary. This type of navigation/context preservation can be found even in past projects done here at MIT (http://relo.csail.mit.edu/). Extending it to search results, runtime introspection, etc. are sensible and even expected. I’d of course love to have a tool like this in my actual hands, though. For the time being I tend to scribble notes resembling this structure (putting everything together into context) whenever I dive into a new and complex codebase.

    1. Yang,

      We’re all competing with designs that somebody over the age of 50 invented 30 years ago. Even things like e-ink (“radio paper”) were invented at Xerox PARC in the 1970s. Back then, e-ink was called Gyricon, http://en.wikipedia.org/wiki/Gyricon

      Recent historical research also indicates the PageRank algorithm was invented perhaps as early as the 1950s.

      Supposedly Alan Kay was once quoted as saying there were three inventions since the 1970s that were truly innovative. Google “Alan Kay Stack Overflow” where he posts on that site to answer a question regarding that quote of his.

Comments are closed.