Visual programming is the creation of a computer program by utilizing pictorial elements. Traditionally, a program is a sequence of text statements used to achieve a certain result or solve some problem. Programming languages often have particular ways of representing the work to be done thus leading to complexity. Visual programming attempts to make the creation of programs simpler.
Consider a search conducted within a website where a box is used to enter text. When the user types in a character, a number of suggestions are shown right below the text box. A visual program to achieve this would allow the programmer to place a number of boxes on the screen, one for each task, and use arrows to indicate the flow between tasks.
The first box on the screen would indicate that it is waiting for user action. When a character is typed the flow will be directed to a box which determines whether the character is valid. If the character is valid then the flow will be directed to another box on the screen that searches the database.
Searching the database would itself have a number of subtasks. Clicking on the box for database search would bring up a new screen to let the programmer indicate those subtasks and the flow between them. Aspects such as stopping the search when a fixed number of suggestions are found or giving up the search when not enough suggestions are found in a given amount of time, would be considered and dealt with by the programmer in this screen.
A computer program has many facets to it besides action and flow. These include relationships between the data, sharing of data with other programs, spreading the work among resources, and linkage of graphical elements for ease of use. A set of text statements does not always handle all of these actions in a smooth manner and it may not be easy for other programmers to understand all the implications. Visual programming attempts to address most of these aspects.
There are many languages that allow programming to be done visually. Typically, visual programming languages include: Tersus for web applications, MVPL for robotics, LabVIEW for scientists, and SynthMaker for audio tools. There are visual languages for programming hand-held and embedded computers. However, Visual C# or Visual Basic are not visual languages. Though popular, they merely allow on-screen placement of items with which the user interacts.
Visual programming has been criticized for making programs toy-like and for the number of visual elements that can be shown on a screen at one time. The Deutsch Limit indicates that roughly 50 elements can be shown. Just as textual programming languages have evolved, there is promise that visual languages can also address these challenges.