Article de reference

langage de programmation visuelle

Un bloc personnalisé simple dans le langage de programmation visuelle Snap!, basé sur Scratch , calculant la somme de tous les nombres dont les valeurs sont comprises entre a et...

Un bloc personnalisé simple dans le langage de programmation visuelle Snap!, basé sur Scratch , calculant la somme de tous les nombres dont les valeurs sont comprises entre a et b.

En informatique , un langage de programmation visuelle (ou système de programmation visuelle , VPL ou VPS ), également appelé programmation diagrammatique , programmation graphique ou codage par blocs , est un langage de programmation qui permet aux utilisateurs de créer des programmes en manipulant graphiquement les éléments du programme plutôt qu'en les spécifiant textuellement . Un VPL permet de programmer avec des expressions visuelles, des agencements spatiaux de texte et de symboles graphiques, utilisés comme éléments de syntaxe ou de notation secondaire . Par exemple, de nombreux VPL sont basés sur le concept de « boîtes et flèches », où les boîtes ou autres objets à l'écran sont traités comme des entités, reliées par des flèches, des lignes ou des arcs qui représentent des relations. Les VPL constituent généralement la base des plateformes de développement low-code . Scratch est un exemple de VPL [1] .

Définition

Les langages de programmation visuelle (LPV) peuvent être classés, selon le type et l'étendue de l'expression visuelle utilisée, en langages à base d'icônes, langages à base de formes et langages de diagrammes. Les environnements de programmation visuelle fournissent des éléments graphiques ou iconiques que les utilisateurs peuvent manipuler de manière interactive selon une grammaire spatiale spécifique pour la construction de programmes.

L’objectif général des VPL est de rendre la programmation plus accessible aux novices et de soutenir les programmeurs à trois niveaux différents

Syntaxe
Les VPL utilisent des icônes/blocs, des formulaires et des diagrammes pour tenter de réduire, voire d'éliminer, le risque d'erreurs syntaxiques, facilitant ainsi l'agencement des primitives de programmation afin de créer des programmes bien formés.
Sémantique
Les bibliothèques virtuelles peuvent fournir certains mécanismes pour exposer la signification des primitives de programmation. Cela pourrait inclure des fonctions d'aide fournissant une documentation intégrée aux langages de programmation.
Pragmatique
Les environnements virtuels de programmation (EVP) facilitent l'étude du comportement des programmes dans des situations spécifiques. Ce niveau de support permet aux utilisateurs de placer des artefacts créés avec un EVP dans un état donné afin d'explorer la réaction du programme à cet état. Par exemple : dans AgentSheets ou AgentCubes, les utilisateurs peuvent configurer des jeux ou des simulations dans un état particulier pour observer la réaction du programme. Avec le langage de programmation Thymio , ils peuvent configurer un robot dans un état donné pour observer sa réaction, c'est-à-dire quels capteurs seront activés.

En 2005, les développements actuels visaient à intégrer la programmation visuelle aux langages de programmation par flux de données afin d'obtenir un accès immédiat à l' état du programme , permettant ainsi le débogage en ligne, ou la génération et la documentation automatiques du programme. Les langages de flux de données permettent également la parallélisation automatique , qui deviendra probablement l'un des plus grands défis de la programmation à l'avenir.

Les langages Visual Basic , Visual C# , Visual J#, etc., de l' environnement de développement intégré (IDE) Microsoft Visual Studio , ne sont pas des langages de programmation visuels : la représentation des algorithmes, etc., est textuelle, même si l' IDE propose une interface utilisateur riche pour faciliter l'édition et le débogage. Une observation similaire s'applique à la plupart des autres environnements de développement rapide d'applications , qui prennent généralement en charge un concepteur de formulaires et proposent parfois des outils graphiques pour illustrer (mais non définir) le flux de contrôle et les dépendances de données.

Les analyseurs syntaxiques pour les langages de programmation visuelle peuvent être implémentés à l'aide de grammaires de graphes .

Types de langues visuelles

La liste suivante n'est pas exhaustive, car certains environnements de programmation visuelle peuvent intégrer des éléments de plusieurs paradigmes. Le choix du paradigme de programmation visuelle dépend souvent des exigences spécifiques de l'application ou des préférences des utilisateurs ou des développeurs.

Programmation par blocs
Popularisé par des plateformes comme Scratch et Blockly, utilisé dans un contexte éducatif et pour l'initiation à la programmation.
organigrammes
Largement utilisé en génie logiciel et en conception de systèmes pour représenter les algorithmes et les processus.
Interfaces glisser-déposer
Couramment utilisé dans les outils de conception d'interfaces graphiques et les environnements de développement pour la création d'interfaces utilisateur.
Graphes de nœuds
Fréquemment utilisé dans les langages de programmation visuelle, le développement de jeux et les systèmes de flux de données.
Programmation de flux de données
Très répandu dans les environnements de calcul parallèle, de traitement du signal et de programmation visuelle.
Programmation emblématique
Utilisé dans divers contextes pour simplifier les tâches de programmation, souvent associé au développement d'applications mobiles.
Machines à états
Largement utilisé dans le développement de jeux, les systèmes de contrôle et la modélisation des systèmes réactifs.
Programmation basée sur des feuilles de calcul
Présent dans les applications tableur et certains environnements de programmation éducatifs.
Programmation basée sur une chronologie
Courant dans les logiciels multimédias et d'animation pour la mise en séquence d'événements dans le temps.
Programmation spatiale
Utilisé dans certains environnements interactifs et de modélisation 3D.
Programmation basée sur les formulaires
Utilisé dans les applications où la saisie utilisateur et les interfaces graphiques jouent un rôle important, comme les applications de saisie de données.

Langages visuels à usage général

La plupart des langages de programmation visuels (LPV) sont conçus pour l'éducation ou des usages spécifiques à un domaine, ciblant des programmeurs débutants. Cependant, certains projets de recherche visent à proposer un langage de programmation visuel généraliste , utilisable par tous les programmeurs, pour tout projet logiciel , en remplacement des langages de programmation textuels (comme C , C++ , Java , etc.).

Par exemple, des projets de recherche tels que PWCT et Envision ont été conçus pour atteindre cet objectif.

Liste des langues visuelles

Vous trouverez ci-dessous une liste des principaux langages de programmation visuelle.

Pédagogique

  • AgentCubes , outils de pensée computationnelle pour la conception de jeux 3D et 2D et la conception de simulations.
  • AgentSheets , outil de création de jeux et de logiciels de calcul scientifique.
  • Alice , un langage orienté objet utilisé pour programmer des environnements 3D.
  • Analytica , pour la construction et l'analyse de modèles quantitatifs destinés à l'analyse des décisions et des risques.
  • App Inventor pour Android , un outil de création d'applications Android , basé sur Blockly et Kawa .
  • Blockly est une bibliothèque côté client pour le langage de programmation JavaScript permettant de créer des langages de programmation visuels (LPV) et des éditeurs basés sur des blocs. Blockly est notamment connu pour son utilisation dans Scratch .
  • Catrobat , langage de programmation visuelle par blocs pour les animations, les applications et les jeux
  • Etoys , développé sous la direction d' Alan Kay chez Disney pour soutenir l'apprentissage constructiviste, a été influencé par Seymour Papert et le langage de programmation Logo.
  • Flowcode , un outil de programmation visuelle pour microcontrôleurs embarqués et Windows.
  • Flowgorithm crée des organigrammes exécutables qui peuvent être convertis en plusieurs langages.
  • Greenfoot , un EDI pour Java, ou Stride, principalement conçu à des fins éducatives, ainsi que pour le développement d'interfaces graphiques et de jeux.
  • Hopscotch , une application iPad et un langage de programmation visuel pour la création d'applications mobiles tactiles.
  • Kodu , un outil de programmation visuelle pour Logo .
  • Kojo , un langage de programmation, un EDI et un environnement d'apprentissage.
  • mBlock , une extension de Scratch pour les interfaces matérielles Arduino . Développée par Makeblock .
  • Open Roberta , un environnement de programmation en ligne de l' institut Fraunhofer IAIS , conçu pour les enfants.
  • Pencil Code , un langage de programmation visuel centré sur le dessin au crayon
  • Raptor , un produit de l' USAF , pour dessiner des organigrammes exécutables.
  • Scratch , un produit du MIT , conçu pour les enfants de la maternelle à la terminale et pour les programmes périscolaires.
  • ScratchJr , une interprétation de Scratch conçue principalement pour un public plus jeune (enfants de 5 à 7 ans).
  • Snap!, une réimplémentation de BYOB basée sur un navigateur et une extension de Scratch , avec des procédures et des listes de première classe. Utilisé pour l'enseignement à l'UC Berkeley .
  • Stagecast Creator , un système d'enseignement basé sur Java.
  • StarLogo est un langage de simulation multi-agents développé par Mitchel Resnick , Eric Klopfer et d'autres chercheurs du MIT Media Lab . Il s'agit d'une extension du langage de programmation Logo (un dialecte de Lisp ).
  • ToonTalk , système de programmation pour enfants.
  • Visual Logic , pour la création de diagrammes de flux exécutables.
  • Environnement de langage de programmation visuel IoT/Robotique VIPLE

Multimédia

Jeux vidéo

  • Babylon.js possède un éditeur de matériaux de nœuds qui peut être utilisé pour créer des shaders, des textures procédurales, des systèmes de particules et des effets de post-traitement.
  • Moteur de jeu Blender (éditeur de logique graphique)
  • Buildbox
  • Clickteam Fusion , un logiciel de création de jeux 2D avec un système d'édition d'événements, développé par Clickteam SARL, anciennement connu sous les noms de Klik n' Play, The Games Factory et Multimedia Fusion 2.
  • Construct 2-3 sont des éditeurs de jeux 2D basés sur HTML5, développés par Scirra Ltd.
    • Construct Classic est la version précédente de Construct, basée sur DirectX et à code source ouvert.
  • CryEngine possède un langage de programmation visuel basé sur des nœuds appelé FlowGraph.
  • Dreams , qui fonctionne sur PlayStation, possède un langage visuel étendu permettant aux joueurs de créer tout type de jeu.
  • Game Builder Garage , un outil de création de jeux 3D et 2D pour la Nintendo Switch , développé par Nintendo .
  • GameMaker Studio possède un système de création de jeux par glisser-déposer développé par YoYo Games.
  • GameSalad est un outil de création de jeux visuels développé par GameSalad, Inc.
  • GDevelop est un outil de création de jeux visuels créé par Florian Rival (4ian).
  • Le moteur de jeu Godot permettait de créer des scripts de jeu et des shaders graphiques à l'aide de langages de programmation visuelle par graphes de nœuds. Cette fonctionnalité a été supprimée, mais reste accessible via une extension.
  • Human Resource Machine est un jeu de puzzle basé sur la programmation visuelle, développé par Tomorrow Corporation .
  • Kodu , un logiciel conçu pour programmer des jeux avec une interface 3D, développé par Microsoft Research.
  • Pixel Game Maker MV est un outil de développement de jeux vidéo 2D basé sur une interface.
  • Resonite possède un langage visuel similaire à celui de Rec Room , appelé protoflux, utilisé dans les objets, les avatars et d'autres systèmes.
  • Rec Room inclut un système de création de jeux doté d'un langage de programmation visuelle à base de nœuds appelé Circuits.
  • RPG Maker , une série d'outils de création de jeux vidéo de rôle avec des systèmes d'édition d'événements.
  • Snowdrop possède un système de script visuel.
  • Stencyl , un outil de création de jeux vidéo.
  • Depuis la version ECS, Unity intègre un système de script visuel (anciennement connu sous le nom de Bolt).
  • Unreal Engine 4 possède un langage de programmation visuelle basé sur des nœuds appelé Blueprints, ainsi que des shaders.

De nombreux jeux vidéo modernes utilisent des arbres de comportement , qui constituent en principe une famille de langages de programmation simples conçus pour modéliser les comportements des personnages non-joueurs . Ces comportements sont modélisés sous forme d'arbres et sont souvent modifiés dans des éditeurs graphiques.

Systèmes / simulation

Automation

Entrepôt de données / veille stratégique

Divers

  • Bubble , pour créer des applications web prêtes pour la production .
  • Kwikpoint , un traducteur visuel d'isotypes créé par Alan Stillman
  • Morphic (logiciel) facilite la création et la modification d'objets graphiques par manipulation directe et depuis des programmes ; l'environnement de programmation Self (langage de programmation) est entièrement construit à l'aide de Morphic.
  • Piet , un langage ésotérique, le programme est une image dont les pixels sont les éléments du langage
  • Shortcuts , un langage de script visuel développé par Apple pour créer des macros sur macOS , iOS , iPadOS et watchOS .
  • StreamBase Systems , StreamBase EventFlow est un langage de programmation visuel pour le traitement des événements en flux continu
  • WebML est un langage visuel permettant de concevoir des applications Web complexes et gourmandes en données, qui peuvent être générées automatiquement.
  • Yahoo! Pipes est un système de programmation de flux de données visuel pour traiter les données Web
  • YAWL , langage de flux de travail graphique

Héritage

Styles visuels