projects   pubs   people   press   funding   

Barista

Barista is a new implementation framework, implemented in Citrus, which enables the creation of a new class of highly visual, highly interactive code editors. Editors built with Barista can offer standard features such as conventional text-editing interaction techniques, immediate feedback about errors and code-completion menus. However, Barista editors can also support drag and drop interaction techniques, new types of embedded tools, and alternative views of code.

The key difference between Barista and other editing frameworks, its that it maintains both the abstract syntax tree representing a program, as well as a corresponding, fully-structured visual representation on-screen. This fully-structured tree of interactive views allows editors to have all kinds of new views, interaction techniques, and embedded tools.

creating code

With Barista, you can type code like in a regular text editor...

click to play

...drag and drop it like in Alice and other modern structured editors...

click to play

...and use auto-complete menus.

click to play

embedding tools

Barista also allows for a whole new class of embedded tools. For example, here's a tool for storing alternative expressions:

click to play

Here's a graphical html header for a method that includes live links, diagrams and live example code:

click to play

alternative views

Because of the flexibility of defining views of code, Barista editors can swap between alternative views depending on the type of task the programmer is engaged in. For example, here is a programmer alternating between pretty-printed and textual versions of arithmetic code.

click to play

Here is a programmer switching between a conventional textual view of a logical expression and a "match form" view, which has been shown to improve people's comprehension over textual versions.

click to play

reading code

Because Barista editor's have complete control over a view's scale, focus + context interaction techniques are simple to implement. In this editor, programmers can double-click Java blocks to shrink them by 50%, rather than having to fully collapse or expand them.

click to play

Copyright © 1996-2020 - Carnegie Mellon University - All Rights Reserved.