In computing, a visual programming language (VPL) is any programming language that lets users create programs by manipulating program elements graphically rather than by specifying them textually. 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 dataflow or diagrammatic programming) 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.
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.
A visually transformed language is a non-visual language with a superimposed visual representation. Naturally visual languages have an inherent visual expression for which there is no obvious textual equivalent.
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.
The "visual languages" (Visual Basic, Visual C#, Visual J#, etc.) of the Microsoft Visual Studio IDE are not visual programming languages. All of these languages are textual and not graphical. The MS Visual Studio is a visual programming environment, however.
The following contains a list of visual programming languages.
AgentSheets, easy to use game authoring and computational science authoring toolAliceApp Inventor for Android, a tool for creating applications for Google Android, based on Blockly and KawaBubble, a visual programming language to build production-ready web applications without codeEtoys scriptingFlowgorithm, creates executable flowcharts which can be converted to several languages.Hopscotch, a visual programming language for mobile touchscreen devices (available on the iPad).Kodu, a visual programming tool which builds on ideas begun with LogoLARP, creates executable flowcharts, for the Windows PlatformOpen Roberta online programming environment from Fraunhofer IAIS designed for kidsRaptor, creates executable flowcharts.Scratch, a product of MIT designed for kids in K-12 and after school programsSketchware, an Android app to directly develop apps on your Android device.Snap!, an extension of Scratch with first class procedures and lists which is used for teaching by UC Berkeley (browser-based reimplementation of BYOB (programming language))Stagecast Creator, formerly Apple's Cocoa: Internet Authoring for KidsStarLogo, an agent-based simulation language developed by Mitchel Resnick, Eric Klopfer, and others at MIT Media Lab. It is an extension of the Logo programming language, a dialect of Lisp.ToonTalk, programming system for childrenVisual Logic, creates executable flowcharts.AudioMulch, an audio signal flow based sound and music creation environmentBlender (software), the open source 3D graphics package, includes a "node editor" to create shading programs as graphs. Also, custom nodes allows create systems as sverchok, blendgraph or other.Cameleon, graphical functional languageClickteam's The games factory/Multimedia fusion series, environments made for visually developing gamesFilter Forge Node based filter generation for image processing.Grasshopper 3d, a generative modeling interface for Rhinoceros 3DKyma (sound design language), a visual programming language for sound design used by musicians, researchers, and sound designers.Mama (software) - a programming language and IDE for building 3D animations and gamesMax (software), visual programming environment for building interactive, real-time music and multimedia applicationsMax/MSPPure Datanato.0+55+3dNodal, a node-based generative programming software application for music compositionNuke, a node-based visual programming software for visual effects compositing by The Foundry powered by Tcl, Python and Blink-script.OpenMusic, a visual programming language for music composition (based on Common Lisp Object System (CLOS)) applications, and mobile applicationsPure Data (Pd) is a visual programming language developed for creating interactive computer music and multimedia works.Quartz Composer, a language for processing and rendering graphical data (macOS)Reaktor, a DSP and MIDI-processing language by Native InstrumentsScala Multimedia Authoring suite and complete multimedia system for AmigaOS and WindowsSoftimage,with ICE Interactive Creative Environment.SynthEdit, a Synthesizer construction tool using a VPL.TouchDesigner, visual programming language for real-time multimedia contentVirtools, a middleware used to create interactive 3D experiencesWireFusion, visual programming environment for creating interactive 3D web presentationsVsxu, music visual / real-time 3D graphics generation (Windows, GNU/Linux, and macOS)vvvv, real-time video synthesisAntares Universe is a visual environment/plugin to develop in Unity.Blender Game Engine, (Graphical logic editor)Construct 2 is an HTML5-based 2D game editor, developed by Scirra Ltd.Construct Classic is the previous, DirectX-based open-sourced version of Construct.CryEngine has a node-based visual programming language called FlowGraph.GameMaker: Studio, has a drag and drop game creation system developed by YoYo Games.GameSalad is a visual game creation tool developed by GameSalad, Inc.Godot, in-house open source MIT Licensed game development software made by OKAM Studio.Human Resource Machine is a visual programming-based puzzle game developed by Tomorrow Corporation.Kodu, a software designed to program games with a 3D Interface developed by Microsoft Research.Stencyl, a video game creation tool.Unreal Engine 4 has a node-based visual programming language called Blueprints.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.
AnalyticaCODEEICASLAB, a software suite including a graphical language for supporting the design of control architecturesFlowcode is a graphical programming language to program embedded microprocessorsFunction block diagrams, used in programmable logic controllersKNIME, the Konstanz Information Miner, is an open source data analytics, reporting and integration platformLabVIEW, a graphical language designed for engineers and scientistsLadder logic, a language that simulates relay logic commonly used in programmable logic controllersMeVisLab, cross-platform application framework for medical image processing and scientific visualizationMicrosoft Visual Programming Language, dataflow language for robotics programming that is a component of Microsoft Robotics StudioMindRover, a robot programming game incorporating a dataflow "wiring" languageMinibloq, visual programming language for robotics and Arduino compatible boardsMST Workshop, an interactive visual programming language for creating mathematical solutions, rapid prototyping, two-dimensional and three-dimensional graphic applicationsNXT-G, a visual programming language for the Lego Mindstorms NXT robotics kitOpenDX scientific data visualization using a visual programming language and data flow modelOpenWire - adds visual dataflow programming abilities to Delphi via Visual Component Library (VCL) components and a graphical editor (homonymous binary protocol is unrelated)Orange - An open-source, visual programming tool for data mining, statistical data analysis, and machine learningOutSystems language, a visual modeling language to develop and change all layers of business centric web applicationsPrographPtolemyQucs graphical interface to set up simulation of electronic circuit signal and noise behaviorReallusion - iClone, a 3D software with LUA language and visual programing design.ROBO Pro, a visual programming language for the fischertechnik robotics kitScicos A graphical language associated with the numerical analysis package ScicosLab (originally SciLab)SimulinkSequential function chart, a Petri-net like programming language for programmable logic controllersSTELLA, a VPL for system dynamics modelingSoftimage ICE, a node-based system that is used to create and modify 3D models, simulate particles and perform various other tasksVEEVisSim, modeling and simulation language, allows making mathematical models quickly and executing them in real-timeGNU Radio, a development toolkit which provides signal-processing blocks to implement software-defined-radios and signal-processing systemsAutomatorCiMPLE, Visual Programming Language by ThinkLABs for teaching roboticsFlow a graphical integration language used in the webMethods platformPipeline Pilot is a scientific visual and dataflow programming language, and the authoring tool for the Accelrys Enterprise Platform.PLUS+1 GUIDE, a graphical programming environment from Sauer-Danfoss typically used for off-highway machines.Ab Initio, a more advanced tool for ETL processing by creating graphsFeature Manipulation Engine, an integrated collection of Spatial ETL tools for data transformation and data translation produced by Safe Software Inc.IBM Cognos Business Intelligence, is an example for front-end programs in Business Intelligence applications, which are used to generate SQL queries to run against RDBMS databasesIBM InfoSphere DataStage, an ETL tool by IBMInformatica Powercenter is an advanced ETL tool to design mappings grafically for data load in Data Warehouse systems, by InformaticaMicrosoft SQL Server Integration Services (SSIS), a platform for data integration and workflow applications, by MicrosoftPentaho Data Ingeration (PDI), formerly named Kettle, an open-source ETL toolTalend Open Studio for Data Integration, an open-source ETL toolKwikpoint, an isotype visual translator created by Alan StillmanLava, an experimental object oriented RAD languageLimnor, a general purpose programming system. Limnor Studio is an IDE for rapid software development.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 MorphicStreamBase Systems, StreamBase EventFlow is a visual programming language for processing streaming eventsTersus, an open source platform for the development of rich web applications by visually defining user interface, client side behavior and server side processingTouchDevelop, programming for mobile devicesWebML, is a visual language for designing complex data-intensive Web applications that can be automatically generatedYahoo! Pipes is a visual data-flow programming system to process web data YAWL, graphical workflow languageAppWare, also known as MicroBrew, icon based programming for classic Mac OS and Microsoft WindowsMacromedia Authorware - flowchart based programming languageHelix and Double Helix, a pioneering database management system for the Apple Macintosh platform, created in 1983Illumination Software Creator, a language and IDE for visually creating desktop and mobile softwareThingLabFlowchartDRAKON (Dragon), a SDL- and AADL-influenced visual 2D programming language designed for developing the on-board hard real-time software system for automatic flight and landing of the Soviet/Russian Buran (Snowstorm) orbiting spacecraftExecutable UML, a profile of the Universal Modeling Language specification defining an executable semantics for a subset of UMLSubtext