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).
Contents
1 Introduction
2 History of Visual Programming Languages
3 Classification of Visual Programming Languages
4 Theory of Visual Programming Languages
- 4.1 Formal Specification of Visual Programming Languages
4.2 Analysis of Visual Programming Languages
5 Visual Language Issues
- 5.1 Control Flow
5.2 Procedural Abstraction
5.3 Data Abstraction
6 Visual Programming Languages
- 6.1 ARK
6.2 VIPR
6.3 Prograph
6.4 Forms/3
6.5 Cube
7 Conclusion
