While still far from the mainstream, visual languages are emerging as important special purpose languages, particularly for programming tasks generally performed by non-programmers. But the idea of representing programs with pictures is not new. For many years programmers have used graphical aids to help design and document programs. Flow charts and block diagrams help illustrate algorithms and data structures, while graphical symbolic debuggers and object-oriented graphical programming environments help programmers organize and debug large programs. Visual representations of problems and solutions are useful because they are often more intuitive than textual representations.
Most people learn to communicate using pictures at a very young age.
Pictures are often a more powerful means of communication than words because they can convey much meaning in a concise unit of expression. In addition, pictures do not have language barriers. A computer program that uses two-dimensional diagrams and icons is often more easily understood by end users than a conventional C or Pascal program. For non-programmers who only wish to know enough about programming to customize their application programs and computer environments, graphical or visual programming languages are easier to learn and use than conventional textual programming languages. There have been many recent projects to develop visual languages for user interface specification.