I. Introduction
Visual programming (VP) tools are very successful in specific domains (e.g., Lab View
http://www.ni.comllabview/
), in end-user programming (e.g., spreadsheets), and in teaching (e.g., Alice [1], Scratch [2]). However, the great majority of professional programmers are stuck in a textual world. A look at two popular web-siteswww.tiobe.com/index.php/tiobe_index
,http://langpop.com/
keeping track of the popularity of programming languages easily reveals that all mainstream languages today are textual. Most developers program in them using IDEs such as Eclipse, or just with a text editor. Compared to tools from other domains, the influence of VP techniques on tools for mainstream programming is minor, limited to features such as syntax highlighting and error underlining. The recent work on showing code fragments in a two-dimensional canvas in Code Bubbles [3] and the related Debugger Canvas [4] (part of Visual Studio) is an important step forward, but these and other attempts to improve existing IDEs build on top of their solid textual foundation, which limits what visualizations are possible. To our knowledge there is no VP tool that: (1) is fundamentally a visual tool, (2) supports mainstream languages, (3) is designed for professionals, and (4) can handle large projects. Building such a tool poses a number of challenges: