news, links // 2010.03.15 08:23:23 [hh]

"Code Bubbles": ein sehr interessanter Java-IDE-Prototyp

Einen interessanten Ansatz für integrierte Entwicklungsumgebungen (IDEs) präsentiert Andrew Bragadon von der Brown University, Rhode Island. So genannte Bubbles (deutsch: Blasen) erlauben in der Java-IDE "Code Bubbles" die Darstellung, Bearbeitung und Weitergabe von Fragmenten wie Bug Reports, Suchergebnissen, Code Stacks, Methoden, Debug-Calls und Datenstukturen. Optisch ansprechend dargestellt wird immer nur der gewünschte Kontext, der User kann alles selbst anpassen. Ein Beispiel, das auch für andere Programmiersprachen Schule machen könnte und eine Alternative zu den starren Schemata heutiger IDEs bieten könnte.

Die englischsprachige Abstract Summary der Arbeit: "Rethinking the User Interface Paradigm of Integrated Development Environments": "Developers spend significant time reading and navigating code fragments spread across multiple locations. The file-based nature of contemporary IDEs makes it prohibitively difficult to create and maintain a simultaneous view of such fragments. We propose a novel user interface metaphor for code understanding and maintanence based on collections of lightweight, editable fragments called bubbles, which form concurrently visible working sets.

The essential goal of this project is to make it easier for developers to see many fragments of code (or other information) at once without having to navigate back and forth. Each of these fragments is shown in a bubble.

A bubble is a fully editable and interactive view of a fragment such as a method or collection of member variables. Bubbles, in contrast to windows, have minimal border decoration, avoid clipping their contents by using automatic code reflow and elision, and do not overlap but instead push each other out of the way. Bubbles exist in a large, pannable 2-D virtual space where a cluster of bubbles comprises a concurrently visible working set. Bubbles support a lightweight grouping mechanism, and further support connections between them.

A quantiative user study indicates that Code Bubbles increased performance significantly for two controlled code understanding tasks. A qualitative user study with 23 professional developers indicates substantial interest and enthusiasm for the approach, despite the radical departure from what developers are used to.

Bubbles Metaphor

There are a number of key differrences between bubbles and windows. We developed the design of bubbles to help reduce the effort needed to work with large numbers of fragments, and to support scalability. We provide a brief overview here (a much more complete description is provided in the papers):

Code Bubbles IDE

We developed a prototype IDE system based on the bubbles metaphor. The system supports a number of fragment types, including code (methods, member variables, classes), notes, visual flags, bugs, and Javadocs. The system supports multi-tasking and interruption recovery through the workspace bar, which allows users to create resizable task-oritented partitions within the 2-D workspace, which can be named and shared, or which can be persisted to the Task Shelf for recovery later. Group information is also persisted, and can be used to discover related methods.

The system also features a breakpoint debugger based on bubbles that allows the user to see multiple functions in the stack frame, and data structures sampled from those functions, side-by-side. Multiple debug sessions can be loaded side-by-side in channels for comparison, persisted for use later, or annotated and then shared."

Weitere Informationen: people/ acb/ codebubbles_site.htm