Chapter 3: Visual programming language
A visual programming language (visual programming system, VPL, or VPS) or block coding is a programming language that allows users to develop programs by manipulating program parts graphically, as opposed to textually. are based on the concept of "boxes and arrows," in which boxes or other screen items are viewed as entities and are connected by arrows, lines, or arcs that represent relationships.
According to the type and level of visual expression used, VPLs can be further divided as icon-based languages, form-based languages, and diagram languages. Visual programming environments provide graphical or iconographic elements that users can manipulate interactively in accordance with a certain spatial grammar for program creation.
VPLs are designed to make programming more accessible to novices and to support programmers at three distinct levels.
Syntax: VPLs employ icons/blocks, forms, and diagrams to decrease or eliminate the possibility of syntactic errors, hence facilitating the arranging of programming primitives into well-formed programs.
VPLs may include mechanisms for revealing the meaning of programming primitives. This could include documentation functions built into programming languages' help routines.
VPLs facilitate the examination of what programs mean in specific settings. This level of support enables users to place VPL-created artifacts in a particular state in order to examine the program's response to that state. In AgentSheets or AgentCubes, users can place games or simulations in a specific condition to observe how a program might respond. Users of the Thymio programming language can manipulate a robot's state to see its response, i.e. which sensors will be engaged.
Current efforts are attempting to link the visual programming technique with dataflow programming languages in order to either have instant access to the program state, resulting in online debugging, or to generate and describe programs automatically. Dataflow languages also permit automatic parallelization, which is likely to become one of the most difficult programming tasks in the future.
The languages Visual Basic, Visual C#, Visual J#, etc. of the Microsoft Visual Studio IDE are not visual programming languages: the representation of algorithms, etc. is textual, despite the IDE's sophisticated user interface for editing and debugging. Similar considerations apply to the majority of other rapid application development platforms, which normally provide a form designer and may additionally provide graphical tools to depict (but not specify) control flow and data dependencies.
Graph grammars can be used to construct parsers for visual programming languages.
The list below comprises prominent visual programming languages.
AgentCubes, computational thinking instruments for 3D and 2D game and simulation design.
AgentSheets, a platform for developing games and computational science.
Alice is an object-oriented programming language for 3D environments.
Analytica, for the construction and evaluation of quantitative models for decision and risk analysis.
Based on Blockly and Kawa, App Inventor for Android is a tool for designing Android applications.
Blockly is a client-side JavaScript library for the creation of block-based visual programming languages (VPLs) and editors. Blockly is widely used on Scratch.
Bubble, for developing web apps ready for production.
Catrobat is a block-based programming language for animations, applications, and games.
Etoys was designed by Alan Kay at Disney to support constructionist learning, with Seymour Papert and the Logo programming language serving as influences.
Flowcode is a Windows-compatible visual programming environment for embedded microcontrollers.
Flowgorithm generates executable flowcharts that can be translated into multiple languages.
Hopscotch is an iPad application and graphical programming language for developing touchscreen-centric mobile applications.
Kodu, a graphical programming environment for Logo.
Kojo is a programming language, integrated development environment (IDE), and learning environment.
mBlock, a Scratch expansion for Arduino hardware interfaces. Constructed by Makeblock.
Open Roberta, the online programming environment intended for youngsters by the Fraunhofer IAIS.
The visual programming language Pencil Code is centered on sketching with a pencil.
Raptor is a USAF tool for designing executable flowcharts.
MIT's Scratch is a programming language created for K-12 students and after-school activities.
ScratchJr is a version of Scratch intended for younger audiences primarily (5-7-year-old children).
Snap! is a browser-based reimplementation of BYOB and Scratch extension that features first-class procedures and lists. Utilized for instruction at UC Berkeley.
Stagecast Creator is a Java-based educational platform.
StarLogo is an agent-based simulation language developed at the MIT Media Lab by Mitchel Resnick, Eric Klopfer, and others. A modification to the Logo programming language (a dialect of Lisp).
ToonTalk, a method for children's programming.
Visual Logic, a program for producing executable flowcharts.
VIPLE is the Visual IoT/Robotics Programming Environment
AudioMulch is an audio signal flow-based environment for sound and music composition.
Bidule is an environment of modular nodes and patch cords for the creation of interactive computer music and multimedia (Windows, MacOS).
Blender (software), an open-source 3D graphics program, contains node graphs for constructing shaders, The graphical functional language Cameleon
The games factory/Multimedia fusion environments created by Clickteam for graphically developing games.
Dynamo, an Autodesk Revit interface for generative modeling
Filter Forge Node-based image processing filter generation.
Houdini is software for visual effects, modeling, and animation.
Bentley Systems developed the parametric CAD program GenerativeComponents.
Grasshopper 3D is an interface for generative modeling in Rhinoceros 3D.
Isadora is a proprietary graphic programming environment for Mac OS X and Microsoft Windows that focuses on real-time digital video modification.
Kyma (sound design language) is a visual programming language used by musicians, researchers, and sound designers for sound design.
Mama (software) is a programming language and integrated development environment (IDE) for creating 3D animations and games.
Max (software), environment for visual programming of interactive, real-time music and multimedia applications
Max/MSP
Pure Data
nato.0+55+3d
Nodal is a music composing application based on node-based generative programming.
The Foundry's Nuke is an object-oriented visual programming tool for visual effects compositing that is driven by Tcl, Python, and Blink-script.
OpenMusic is a visual programming language for music creation applications (based on the Common Lisp Object System (CLOS)) and mobile applications.
Pure Data (Pd) is a graphical programming language designed for the creation of interactive computer music and multimedia compositions.
Quartz Composer is a graphical data processing and rendering language (macOS)
Native Instruments' Reaktor is a DSP and MIDI-processing programming language.
Scala Multimedia Authoring suite and comprehensive multimedia system for Windows and AmigaOS
Softimage with Interactive Creative Environment (ICE).
SynthEdit is a VPL-based Synthesizer building tool.
TouchDesigner, a visual programming language for multimedia content in real-time
The middleware Virtools is used to generate interactive 3D experiences.
vvvv is a general-purpose toolkit with a particular emphasis on real-time video synthesis and developing massive media environments with physical interfaces, real-time motion graphics, audio, and video.
Visual programming environment WireFusion for developing interactive 3D web presentations
A node material editor is available in Babylon.js for creating shaders, procedural textures, particle systems, and post processing effects.
Blender Engine for Game Development (Graphical logic editor)
Clickteam SARL created Clickteam Fusion, a 2D game production software with an event editor system formerly known as Klik n' Play, The Games Factory, and Multimedia Fusion 2.
Scirra Ltd.'s Construct 2-3 are HTML5-based 2D game editors.
Construct Classic is the previous open-source version of Construct that was DirectX-based.
FlowGraph is a node-based visual programming language utilized by CryEngine.
Dreams, which runs on PlayStation, features a rich visual language that enables players to design any type of game.
Nintendo developed Game Builder Garage, a 3D and 2D game creation tool for the Nintendo Switch.
YoYo Games has created a drag-and-drop game building mechanism for GameMaker Studio.
GameSalad is a graphical game development platform created by GameSalad, Inc.
Florian Rival developed GDevelop, a graphic game development tool (4ian).
Godot game engine permits the construction of game scripts and graphics shaders using node-graph visual programming languages.
Tomorrow Corporation's Human Resource Machine is a visual programming-based puzzle game.
Microsoft Research has developed Kodu, a 3D Interface game-programming toolset.
MakeCode Arcade, developed by Microsoft
Pixel Game Maker MV is an interface-based...