Visual programming environments have been around for a while now, and they have sometimes been confused with programming languages that have a user interface.
When we talk about visual programming environments (VPEs), we are referring to a way to communicate with our computer using graphics and images. Instead of text, they provide another layer of abstraction on top of machine code.
The most common use case for VPEs tends to be for education, specifically as an aid for kids learning how to program. It should be quite obvious why — it allows the usage of visual expressions for programming, no knowledge of language or syntax required.
In this article, I will explain the usage of these environments and how they help in computational thinking for kids, then go on to cover additional use cases and some popular VPLs.
Why use visual programming environments for education?
Even with recent developments, the main goal of VPEs has always been to make computer communication easier and more accessible to everyone, especially kids. In the context of education, VPEs provide an interface for K–12 students to gain a better understanding of programming or, better still, a good overview of computational thinking.
Let’s take Scratch, for example. Designed for K–12 students, it allows children to create programs by manipulating elements graphically. This gives them a baseline understanding of programming concepts using visual rather than textual expressions.
These programs provide a series of visual blocks wherein each block contains instructions. This environment allows students to develop algorithms to solve puzzles while still having fun. Each series of blocks contain instructions, which the student uses to connect them. The main point here is that you program using graphics rather than text.
Due to their visual, illustrative nature, VPEs are among the best ways for children to learn how to code; students have a much easier time visualizing the logic. As opposed to learning and writing a lot of syntax, VPEs provide a much softer introduction to how logical structures should interact.
Other use cases for visual programming
While visual programming has historically been used mostly for educational purposes, this is no longer the case.
There are indeed other applications for VPEs, particularly for the Internet of Things (IoT), which still lags behind other fields. IoT focuses on the interconnection between objects to provide a smarter and more efficient method of communication between digital and physical objects.
Little attention has been given to the development and design of programming languages with respect to IoT. VPEs will do much good as a tool to enhance the IoT field, reducing the time to market by shortening the development lifecycle.
VPEs have also sped up the development of custom control functions for bioprocess research compared to conventional programming languages. Researchers determined that the LabVIEW VPE was easier, more flexible, and significantly faster in developing new applications for the control of bioprocesses.
Beyond the above, new use cases for VPLs include multimedia, simulation and automation, video game development, and business intelligence (BI). Let’s explore these below.
Development around multimedia has grown enormously over the past few years, including music production and composition, 3D animations, interactive 3D presentations, image processing, visual effects, 3D printed models, and more.
The tools for creating multimedia are interactive and quite unlike text-based coding, particularly tools to create music and sound.
In the robotics and simulations industry, tools for simulation and control are being designed using visual and dataflow programming languages. For example, the Microsoft Robotics Studio, developed in 2006, uses a drag-and-drop method to handle its robotics hardware.
VPLs are also popping up in system dynamics modeling, an abstract method of modeling that uses a mathematical technique to help simplify complex issues and problems. One such tool is STELLA (Systems Thinking, Experimental Learning Laboratory with Animation), which is a visual programming language.
Recent video games have made use of behavior trees to model NPC (non-playable character) behavior. Behavior trees are able to build complex behavior patterns by programming the actions or tasks of the NPCs. The tree structure is created in a graphical editor using a drag-and-drop method.
Visual programming offers a lot of help in the creation of automation using tools like Flow or Automator. In the graphical section, the programmer is able to make, arrange, and link the images that represent the various tasks or concepts. The program is then compiled to an executable program.
In data integration, data processing, data analytics, etc. visual programming languages have helped to make processes more intuitive by using a graphical notation to build data integration systems.
This process almost feels like a flowchart, having to move through information. Tools like SQL Server Integration Services (SSIS) have been used for migrating, preparing, extracting, and loading data into storage.
Examples of VPEs
There are quite a lot of these environments; you can see a selection below, categorized by their use case:
For business intelligence tools in particular, each tool will have its own specific use case. SSIS works great for data migration, for example, while IBM Cognos helps with analysis. It is difficult to suggest the best of them without providing a specific context; each has its particular dos and dont’s.
A brief note on what VPEs are not
Visual Basic, Visual C#, Visual J#, Processing, etc. are not VPEs, even though they provide a user interface to perform activities like debugging and editing.
They all create visualizations, but they should not be confused with VPEs because the representations of blocks, algorithms, etc. are not actually graphical, but textual. These simply use a GUI builder to make programming easier.
In many respects, learning a text-based programming language is as difficult as learning a spoken language. Visual programming languages allow users to create illustrations to explain certain programming concepts visually.
Not only does visual programming help in learning programming concepts, but it also provides vital solutions for use cases like multimedia production, simulation, business intelligence, and even video game development.
The future looks bright for these environments as Amazon has decided to get in the game to compete with popular low-code and no-code platforms.
LogRocket: Full visibility into your web apps
LogRocket is a frontend application monitoring solution that lets you replay problems as if they happened in your own browser. Instead of guessing why errors happen, or asking users for screenshots and log dumps, LogRocket lets you replay the session to quickly understand what went wrong. It works perfectly with any app, regardless of framework, and has plugins to log additional context from Redux, Vuex, and @ngrx/store.