Programmation graphique et prototypage
L'étude de systèmes dynamiques, la simulation et le prototypage requiert souvent une phase de programmation, pas toujours évidente pour des ingénieurs ou des scientifiques non informaticiens. C'est ce qui motiva la création dans les années 80 du langage G (G pour graphique) par la société américaine National Instruments et que l'on connaît aujourd'hui plutôt sous le nom de son environnement de développement LabVIEW.
Un langage graphique ou visuel, par opposition aux langages textuels, est un langage dont les éléments de base sont des symboles graphiques, représentant une macro dans un langage donné (en Assembleur, en C, en Scilab, en Smalltak, etc...). L'utilisateur conçoit son application en les glissant-déposant sur un schéma et en les reliant entre eux par des connecteurs symbolisés généralement par des flèches de différentes sortes. L'application réalisée se présente ainsi sous la forme d'un diagramme.
Ce type de langage permet aux utilisateurs de manipuler directement les concepts, sans passer par une formalisation textuelle abstraite et difficile à acquérir. En outre, il gère automatiquement tout un tas de problèmes délicats auxquels sont couramment confrontés les développeurs (comme par exemple l'allocation de la mémoire). La programmation graphique permet ainsi à l'utilisateur de se concentrer sur son cœur de métier et ne pas s'encombrer de problématiques liées à la programmation.
Plus récemment, les logiciels de calculs numériques MATLAB puis Scilab se sont dotés d'éditeur graphique (respectivement Simulink et Xcos) permettant également de programmer par blocs/diagramme. L'utilisateur peut ainsi créer des modèles assez complexes et les tester. Cette manière de faire est de plus en plus utilisée par les concepteurs pour prototyper, les programmes pouvant ensuite être exportés en code C.
D'une manière générale, de nombreux outils de prototypage sont fondés sur un langage visuel, par exemple pour simplifier la programmation des microcontrôleurs.
La programmation graphique n'est pas seulement utilisée dans l'ingénierie, elle s'est également répandue dans les milieux artistiques (Pure Data), dans le domaine de la musique (OpenMusic) et pour initier les enfants à la programmation (Scratch).