Programming language written graphically by a user
A simple custom block in the Snap! visual programming language, which is based on Scratch, calculating the sum of all numbers between a and b
In computing, a visual programming language (visual programming system, VPL, or, VPS) or block coding is a programming language that lets users create programs by manipulating program elements graphically rather than by specifying them textually.[1] A VPL allows programming with visual expressions, spatial arrangements of text and graphic symbols, used either as elements of syntax or secondary notation. For example, many VPLs (known as diagrammatic programming)[2][3] are based on the idea of "boxes and arrows", where boxes or other screen objects are treated as entities, connected by arrows, lines or arcs which represent relations.
Definition
VPLs may be further classified, according to the type and extent of visual expression used, into icon-based languages, form-based languages, and diagram languages. Visual programming environments provide graphical or iconic elements which can be manipulated by users in an interactive way according to some specific spatial grammar for program construction.
The general goal of VPLs is to make programming more accessible to novices and to support programmers at three different levels[4]
Syntax: VPLs use icons/blocks, forms and diagrams trying to reduce or even eliminate the potential of syntactic errors helping with the arrangement of programming primitives to create well-formed programs.
Semantics: VPLs may provide some mechanisms to disclose the meaning of programming primitives. This could include help functions providing documentation functions built-in to programming languages.
Pragmatics: VPLs support the study of what programs mean in particular situations. This level of support allows users to put artifacts created with a VPL into a certain state in order to explore how the program will react to that state. Examples: In AgentSheets or AgentCubes users can set games or simulations into a particular state in order to see how program would react. With the Thymio programming language users can bring a robot into a certain state in order to see how it will react, i.e., which sensors will be activated.
Current developments try to integrate the visual programming approach with dataflow programming languages to either have immediate access to the program state, resulting in online debugging, or automatic program generation and documentation. Dataflow languages also allow automatic parallelization, which is likely to become one of the greatest programming challenges of the future.[5]
The Visual Basic, Visual C#, Visual J# etc. languages of the Microsoft Visual StudioIDE are not visual programming languages: the representation of algorithms etc. is textual even though the IDE embellishes the editing and debugging activities with a rich user interface. A similar consideration applies to most other rapid application development environments which typically support a form designer and sometimes also have graphical tools to illustrate (but not define) control flow and data dependencies.
Catrobat, block-based visual programming language for animations, apps and games
Etoys, developed under the direction of Alan Kay at Disney to support constructionist learning, influenced by Seymour Papert and the Logo programming language
Flowcode, a visual programming tool for embedded microcontrollers and Windows.
Flowgorithm, creates executable flowcharts which can be converted to several languages.
Hopscotch, an iPad app, and visual programming language for creating touchscreen-oriented mobile applications.
Scala Multimedia Authoring suite and complete multimedia system for AmigaOS and Windows
Softimage, with ICE Interactive Creative Environment.
SynthEdit, a Synthesizer construction tool using a VPL.
TouchDesigner, visual programming language for real-time multimedia content
Virtools, a middleware used to create interactive 3D experiences
vvvv, a general purpose toolkit with a special focus on real-time video synthesis and programming large media environments with physical interfaces, real-time motion graphics, audio and video.
WireFusion, visual programming environment for creating interactive 3D web presentations
Video games
Babylon.js has a node material editor that can be used to build shaders, procedural textures, particle systems and post processing effects.[14]
Clickteam Fusion, a 2D game creation software with event editor system, developed by Clickteam SARL, originally known as Klik n' Play, The Games Factory and Multimedia Fusion 2
Construct 2-3 are HTML5-based 2D game editors, developed by Scirra Ltd.
Unity has a visual scripting system as of the ECS release.
Unreal Engine 4 has a node-based visual programming language called Blueprints, and also shaders.
Many modern video games make use of behavior trees, which are in principle a family of simple programming languages designed to model behaviors for non-player characters. The behaviors are modeled as trees, and are often edited in graphical editors.
BPEL (Business Process Execution Language), currently a Graphical user based Programming Language used to create orchestration logic for data and web services. It is based on XML, but has a graphical interface for faster coding.
MST Workshop, an interactive visual programming language for creating mathematical solutions, rapid prototyping, two-dimensional and three-dimensional graphic applications
Node-RED: software system rapid development toolkit
Kwikpoint, an isotype visual translator created by Alan Stillman
Lava, an experimental object oriented RAD language
Morphic (software), makes it easier to build and edit graphical objects by direct manipulation and from within programs; the whole Self (programming language) programming environment is built using Morphic
Piet, an esoteric language, the program is an image whose pixels are the language's elements
PWCT, Free open source visual programming language for software development
^Jost, Beate; Ketterl, Markus; Budde, Reinhard; Leimbach, Thorsten (2014). "Graphical Programming Environments for Educational Robots: Open Roberta - Yet Another One?". 2014 IEEE International Symposium on Multimedia. pp. 381–386. doi:10.1109/ISM.2014.24. ISBN978-1-4799-4311-1.
^Bragg, S.D.; Driskill, C.G. (1994). "Diagrammatic-graphical programming languages and DoD-STD-2167A". Proceedings of AUTOTESTCON '94. pp. 211–220. doi:10.1109/AUTEST.1994.381508. ISBN0-7803-1910-9.