The NetPebbles environment includes a visual builder that allows users to build entire scripts. Current component-based visual builders fall into two categories, those that provide assistance with GUI building and those that allow arbitrary connection of component events and properties. Examples of GUI builders include Visual Basic [4] and Visual Oblique [5]. Examples of generalized component interconnectors include IBM Visual Age for Java [6] and the many Java Bean tools now available.
The NetPebbles Visual Builder design addresses the following two questions: (1) Why should one use a visual building environment when scripts are so simple to write? and (2) Given that a visual builder is useful, what should a program look like?
Thus far, some insight to both questions has been gained. First, a visual building environment is useful for NetPebbles as it can provide a programmer with drag-and-drop construction, syntax hiding, NetPebbles-specific error/notification handling, and migration hints. Second, visual programming languages, while at first attractive, provide a representation that is quickly intractable. However, the emphasis on dataflow in these languages does help with data navigation. Therefore, the program representation should be textual, but should exploit an underlying dataflow structure. For simplicity, the NetPebbles visual builder allows each variable to be assigned in only one place. (Note that this is a broadening of a strict ``write-once" concept introduced in elementary dataflow to allow for assignments in loops.) Also, to better assist savvy programmers, the organization of the text should be capable of illustrating the program's implicit migration and some notion of the size of the state must be visually available. The investigation also has resulted in a sequence of proof-of-concept demos, that help to assimilate gained insight into the builder architecture.