From cave paintings to hieroglyphics to paintings of Campbell’s soup cans, humans have long communicated
with each other using images. The field of visual programming languages asks: why, then, do we persist in
trying to communicate with our computers using textual programming languages? Would we not be more
productive and would the power of modern computers not be accessible to a wider range of people if we were
able to instruct a computer by simply drawing for it the images we see in our mind’s eye when we consider
the solutions to particular problems? Obviously, proponents of visual programming languages (VPLs) argue
that the answer to both these questions is yes.
The questions above highlight the primary motivations for most research into VPLs. First, many people
think and remember things in terms of pictures. They relate to the world in an inherently graphical way and
use imagery as a primary component of creative thought [Smith 1975]. In addition, textual programming
languages have proven to be rather difficult for many creative and intelligent people to learn to use effectively.
Reducing or removing entirely the necessity of translating visual ideas into somewhat artificial textual representations
can help to mitigate this steep learning curve problem. Furthermore, a variety of applications,
including scientific visualization and interactive simulation authoring, lend themselves particularly well to
visual development methods.
The sections which follow present a survey of the field of visual programming languages which has emerged
in response to the issues mentioned above. We begin with a discussion of the historical trends and early
work which laid the foundations for modern research in the field (Section 2). Section 3 provides a description
of a taxonomy for visual languages. We follow with a primer on the main theoretical aspects of VPLs in
Section 4, and briefly discuss a variety of language issues in Section 5. We then clarify the topics discussed in
previous sections by presenting examples of important and interesting VPLs (Section 6). Finally, we share
some concluding remarks and thoughts on future work (Section 7).