What is Visual Programming?
Visual programming is not new, but it is fair to say that it doesn't get a great deal of attention in the wider world of computer programming and software development. For today's Tech Blog we thought we might shine some light on this lesser-known aspect of software engineering by exploring the basic concepts behind this discipline as well as its benefits and shortcomings.
Visual Programming Basics
In very general terms, visual programming describes a programming environment where visual icons and symbols are manipulated to graphically create computer code / instructions, rather than through the use of text. The icons often represent a shorthand for the actual code instructions, which may be generated automatically through the programmer's manipulation of those items. In this way, a developer can quickly make progress in code writing without having to learn the syntax of an entire programming language.
Image: Scratch visual programming environment, courtesy of https://scratch.mit.edu/
Applications, Use Cases and Target Audience
Use cases for visual programming are spread across the entire spectrum of computing, but in general tend to be concentrated on areas where text/traditional programming may not be the developer's primary skill. Likewise, visual programming seems to be most useful in cases where speed, automation and ease of programming take precedence.
Some fields where visual programming is most applicable include 3D modeling, interface and mobile application design, automotive and industrial applications, education, multimedia development, simulations, business intelligence and medical applications. The taget audience for visual programming often occupy roles such as visual artists, interface designers, industrial engineers, IoT device designers, students and medical technicians; each represents a good example of individuals who can benefit from adding visual programming skills into their repertoires.
As mentioned above, visual programming is useful to those who don't have the benefit of a traditional education in text-based coding and software development or lack access to these resources.
It can also be used to lower the barrier to entry to software development, making it a great environment to get kids, students and others with no previous coding experience familiar with this discipline. Some visual programming languages are designed expressly for this purpose, such as Scratch, which is a popular online development environment and learning tool developed by the MIT Media Lab.
The Scratch website makes its accessibility and ease of use abundantly clear, stating that "Scratch is designed especially for ages 8 to 16, but is used by people of all ages. Millions of people are creating Scratch projects in a wide variety of settings, including homes, schools, museums, libraries, and community centers."
Scratch also makes another important point about inclusivity and the important cognitive skills that coding, visual or otherwise, provides by saying: “The ability to code computer programs is an important part of literacy in today’s society. When people learn to code in Scratch, they learn important strategies for solving problems, designing projects, and communicating ideas.”
Beyond its intellectual and educational aspects, visual coding offers another important benefit. It allows development to happen quickly and for developers to test multiples of new ideas at a rapid pace thanks to its ease of use and easily traceable, graphical presentation flow. This is not often the case with text-based programming languages, where developers need great fluency in a specific programming language/syntax and coding, compiling and debugging in order to evaluate different ideas and approaches.
Critics of visual programming, however, often point out the areas where it is lacking or generally falls behind traditional text-based programming. One of the largest criticisms of visual programming is that it doesn't "scale" well, meaning that as a program becomes more complex it is difficult for visual programming to effectively manage this. Another complaint is that because many visual programming environments do not allow for a behind-the-scenes look at the underlying code, nor would the developer have the ability to parse and understand it, visual programming can make it difficult to see or trace errors in code and bugs.
Similarly, the visual programmer generally relies on the accuracy of transcription/symbol interpretation for code integrity, rather than his or her own deep understanding of the programming language and syntax. Because of its low barrier to entry, critics complain that visual programming does not convey deep understanding of the software development process or a specific language, and as such has a limited scope of application.
Image: Maya Bifrost visual programming environment, courtesy of Autodesk
We hope that today's Tech Blog has given you a better idea of the discipline of visual programming, as well as some of its perceived benefits and shortcomings. Perhaps this has even given you some inspiration to give visual programming a try for yourself!
For additional reading, both on the basics of visual computing and some opinions on its utility (or lack thereof), we suggest the following:
- https://scratch.mit.edu/ (main website for Scratch, hosted by MIT)
All screenshots, logos, etc. are the property of their respective owners.
Thanks for reading this Tech Blog! What are your thoughts on the effectiveness and future of visual programming? Drop us a line in the comments below - and let us know what topics you'd like to see in future posts!