Feb 10, 2018

Learning a text-based programing language can be as difficult as learning a spoken language. It requires to wrap our minds around a very different way of solving problems which is far from intuitive. Also, programmers can not just replace one programming language with another or mix them together to create a slang - yes pun intended.

A visual programming language (VPL) allows users to create illustrations to describe different types of processes. It is a technique that was made to work with our ability to explain concepts through visual means. The inclusion of graphical elements makes it accessible to new learners. These elements can be manipulated to construct programs. Visual programming does not work with abstract information like classes, instances and I/O. Instead, it allows a person to construct a solution to a problem in a way that can be easily understood by other humans.

Bolt in action

While commonly used to assist in the creation of computing processes, VPLs have been a part of so much more. There are hundreds of available visual languages. They cover topics including education, multimedia, simulation, video games, automation, and data warehousing. There are very few limiting factors that hold visual programming back. Drawing out workflow plans on the sheet of paper is not as intricate as a computer program. However, it is a starting form for a VPL.

The Beginning of visual programming

This process has been used for almost a century and was made before the first computer was ever created. In the 1920s a new form of planning became paramount as the world progressed at a staggering rate. This lead to an increased interest in documenting the processes of industrial construction. It was only natural that this documentation was done visually in what we know today as a flowchart. This method grew in popularity, and it became commonplace when breaking down complex problems and increasing automation.

It wasn't until 1949 that this form of visual programming was implemented in conjunction with computer programs. John von Neumann and Herman Goldstine wanted to correctly set multiple ring-counter switches to control input and output. With thousands of switches to set up, they adopted a flowchart system to help them. Neumann and Goldstine were successful and proved that VPLs could be used the rapidly growing world of computers.

A light bulb ring counter diagram

Advancements in the 1960s and 1970s

Computer scientists only continued to test the range of VPLs as the graphical abilities of computers increased. One such test was done in 1963 by Ivan Sutherland. For his thesis, he created Sketchpad which was the first complete graphical user interface. It allowed a user to draw on the screen and have the drawing be manipulated based on information input via switches. These drawings were able to interact with each other and respond to multiple user commands. Some of these include changing a shape's proportions, moving the shape, adding and removing parts of a shape, and dragging pieces of a shape. Incredibly, the computer was thinking in real-time.

It was still difficult for computers to have the hardware that made significant real-time interaction possible. Some time would pass before visual programming saw another major advancement. It wasn't until 1975 that David Canfield Smith published his own thesis. It was a visual programming language named Pygmalion.

Pygmalion was stated to be a language that could take the natural creativity of the human mind and translate it into the abstract language that a computer could understand. No longer would someone have to try to envision how a computer understood a program. They would be able to see it as a graphical snapshot. All users had to do was change things based on the snapshot they were given. Pygmalion would give an opening snapshot that would describe its state and then programmers could describe how they wanted that opening snapshot to change. This thesis would become echoed throughout several future computing languages.

HyperCard simulation of Pygmalion done on a Macintosh computer by Allen Cypher

The Introduction of Personal Computers

It wasn't until the 1980s that computers became more mainstream. Companies across the world were run by computers. They were being bought for home use as well. Finally, computers were being built that had enough power to process visual programs without taking up too much space. This led to more and more people working on VPLs.

Between 1982 and 1985 Prograph was envisioned and designed for Apple’s Macintosh computers. Acadia University's staff and students agreed that diagrams were much more useful to denote workflow and created a new VPL to prove it. They used objects as a form of communication. These objects were hexagons that were placed on a graph. Users could interact with them by clicking on either of the hexagon's sides. One side would produce data, and the other side would give the user information on the object’s methods. Graphs could be formed between the shapes to show how data was flowing and how certain actions would affect that flow.

Prograph database operation. Method implementation

For the most part, visual programming wasn't used on Windows computers at this time. They simply didn't have a graphics operating system that could handle modern VPLs. On the other hand, computers such as the Commodore Amiga, Acorn Archimedes, and Apple Mac could easily run these programs.

Current Uses of visual programming

In the beginning, VPLs benefited from computer hardware growing more powerful. Yet, as programming problems became more complicated even VPLs had trouble. There were just some things that were too difficult to depict visually. In the late 1990s, this programming language found itself is an odd place. It was still useful, and it still was able to handle some tasks extremely well. However, most modern computers took a path that many VPLs could not follow. This led to a lull in the use of visual programming until three new paths were created: multimedia, gaming, and business systems.

Multimedia and visual programming

In the past two decades, the amount of multimedia products has increased exponentially. This could include anything from music to games to encyclopedias on CDs. Companies such as Phillips, Commodore, 3DO, and Microsoft blazed the way with their multimedia players. Instead of just using a text-based code, these used interactive tools which worked well with VPLs. This was especially true for musical media.

Blue Ribbon SoundsWorks’ created Bars and Pipes which was a MIDI sequencer. It allowed users to make music by interacting with rectangular bars that represented different notes on a scale or different instruments. Synthesizer programs like this are still used today.

The Tracks window represents the heart and soul of Bars&Pipes Professional.

Gaming and visual programming

When playing a video game it may be hard to think of it as a flowchart. However, they are just that. Almost every interaction in a game can be boiled down to an "if-then" statement. If I click this button then my character will attack. If I touch the enemy then I will lose health. If I move in that direction then the environment will change. These if-then statements are just the foundations of a very intricate flowchart. What a game could be was limited to the imagination of its creator. With years of software developments video games can be split into several different categories. Each of which uses its own form of VPL. Thus these languages became fairly specific, for instance Unreal Engine Blueprint and Unity with Bolt.

Unreal Engine Blueprints.

Business Systems and visual programming

Every business has a database and processes that drive gains in efficiency and ultimately profit. A business user can navigate a system's database through the use of procedural languages or client software. This process of moving through information or telling the software to move through the information is also similar to a flowchart. There are numerous tools and applications that help business with modelling databases or processes more effectively than by using a pure programming language. Prominent categories in this sector are ETL-Tools and Workflow-Engines

Alooma Data Pipelines

Visual programming in the Future

As the expansion of computers and what computer hardware can do increases so too do the applications of VPLs. While computers are receiving software developments that can handle these programming languages, people are often too specialized in a specific programming language to use visual programming successfully. Humans are great at drawing things out to solve problems, but they are bad at thinking on the scale of a computer.

There has been a niche of semi-code or low-code programming platforms which is lately gaining popularity - and even Amazon wants to join the game. These approaches take the complexity of text-based languages and meld them with visual graphics. This allows users to implement graphics to interact with code opening up the relationship between user and code to whole new levels. The combination of upcoming software developments and VPLs provides the best of both worlds.

Plant control with Slang

See how Slang can be used to monitor a plant with IoT devices to ensure it feels well.

Benchmarking Slang, Apache Storm and Apache Spark

See how stream processing with Slang performs compared to Apache Storm and Apache Spark.