Motivation

Traditionally, computer programs have rarely been represented as anything other than text. Since programming is primarily a process of writing text, text-based systems have seemed to be the most appropriate. However, over the last decade and a half, graphical user interfaces have become prevalent in most kinds of software, and this has led to many experiments in representing programs in a graphical way. These have concentrated on various facets of programming, from the basic semantic structure of the program [16], through the data structures it uses [3], to the overall design plan [6].

Despite the large number of experimental programming tools that have been created, commercial programming environments appear to have been primarily concerned with adding graphical interfaces to the standard text-based commands, rather than fundamentally restructuring the interface. It is obviously hard for dramatic changes to be successful. Programmers would need to learn to use the new interface, and possibly change the way they think about programs. Programmers have a natural conservatism, which is partly due to the desire to ensure that their software is compatible with older systems. Furthermore, software companies already have large collections of tools that are known to work well and be popular, and having to rewrite them all would be a massive undertaking. Nevertheless, graphical user interfaces have been dominant for over a decade now, and in that time other dramatic changes to the programming process, such as the introduction of object-oriented programming and Java, have been enthusiastically adopted. It is possible that if a software package with the right combination of features were released, then it may also be taken up with enthusiasm.

When taking on this project, I was primarily concerned with solving some of the problems involved with transferring a traditionally text-based activity to a graphical user interface. However, I was also interested to see if there was any fundamental reason why progress was slow in this area--I wanted to see if programming is naturally a textual activity, and graphical user interfaces were, to some extent, inappropriate.

Matthew Exon 2004-05-28