Hypothèse d’un design graphique opératoire

Programmation visuelle

Hypothèse d’un design graphique opératoire

Porteur :
Dominique Cunin

 

Plan du texte : 
I — Contexte et origines de la recherche
II — Éléments de problématiques
III — Méthodologie
IV — Événements et incidences sur la pédagogie

 

Bibliographie :
Canfield Smith, David, «  Pygmalion : An Executable Electronic Blackboard  », Allen Cypher et Al., Watch What I Do : Programming by Demonstration, MIT Press, 1993.

 

Myers Brad A., «  Taxonomies of Visual Programming and Program Visualization  », Journal of Visual Languages and Computing n°1, Elsevier, 1990, pp. 97-123.

 

Brunett Margaret M., «  Visual Programming  », Wiley Encyclopedia of Electrical and Electronics Engineering, 1999, pp. 275-283.

 

Steinman Scott, Carver Kevin, Visual Programming With Prograph CPX, Manning Publications Co. 1995.

 

Tanimoto Steven L., «  VIVA-A Visual Language for Image Processing  », Journal of Visual Languages and Computing, 1990, vol. 1, pp. 127-139.

 

Puckette Miller, The Patcher, actes du symposium ICMC, 1988.

 

Glinert E. P., «  Towards “ second generation ” interactive, graphical programming environments  », 2nd IEEE Computer Society Workshop on Visual Languages, 1986, pp. 61–70.

 

Papert Seymour A., Mindstorms : Children, Computers, And Powerful Ideas, Basic Books, 1993.

 

Resnick Mitchel et Ocko Stephen, «  LEGO/Logo : Learning Through and About Design  », E&L Memo, n°. 8, MIT, 1990.

 

Begel Andrew, LogoBlocks : A Graphical Programming Language for Interacting with the World, Epistemology and Learning Group, MIT Media Laboratory
 May 24, 1996.

 

Maloney John, Resnick Mitchel, Rusk Natalie, Silverman Brian, et Eastmond Evelyn, «  The Scratch Programming Language and Environment  », ACM Transactions on Computing Education, volume 10, n°4, Article 16, 2010.

 

Harvey Brian et Mönig Jens, «  Bringing “ No Ceiling ” to Scratch : Can One Language Serve Kids and Computer Scientists ?  », Constructionism 2010, The American University of Paris, 2010.

 

Vallarta Roque Ricarose, OpenBlocks : An Extendable Framework for Graphical Block Programming Systems, mémoire de Master, 2007.

 

Yamamoto Kakuya, «  3D-Visulan : A 3D Programming Language for 3D Applications  », Proceedings Of The Pacific Workshop On Distributed Multimedia Systems, pp. 199-206, 1996.

 

Winograd Terry, Bringing Design to Software, Addison-Wesley, 1996.

 

Najork Marc, Kaplan Simon, «  The Cube Language  », 1991 IEEE Workshop on Visual Languages, pp. 218–224, 1991.

 

Narayanan N. Hari, Hübscher Roland, «  Visual language theory : Towards a human-computer interaction perspective  », Visual language theory, pp. 87-128, Springer New York, 1998.

I — Contexte et origines de la recherche
La programmation informatique consiste en l’écriture de descriptions de processus qui sont destinés à être exécutés par un ordinateur, quelle que soit sa forme. Le paradigme d’écriture de programme le plus largement connu et usité a recours à une représentation textuelle des suites d’opérations que l’ordinateur va exécuter. Plus précisément, des successions de chaînes de caractères sont utilisées pour former des mots-clés – tokens dans le jargon informatique anglais – qui sont ensuite assemblés en expressions permettant de construire des suites d’instructions exécutables. Les capacités de l’ordinateur à traiter des informations encodées sous une forme binaire peuvent ainsi être mises en œuvre à l’aide de langages a priori plus lisibles par les êtres humains. La langue anglaise, avec ses modalités d’écriture occidentale, reste la référence majoritairement invoquée dans la constitution des dictionnaires de vocabulaire des langages de programmation. Ces langages s’imbriquent les uns dans les autres, créant de multiples couches qui interagissent les unes avec les autres et qui, en s’éloignant de plus en plus du langage machine, tentent de faciliter le travail d’écriture et de lecture des programmes en s’approchant du langage naturel.

Malgré l’universalité apparente de la programmation textuelle, un autre paradigme de programmation existe : la programmation visuelle. Historiquement, l’une des premières tentatives de forge d’un tel langage est attribuée à William Sutherland avec son Graphical Program Editor de 1966 utilisant le système, beaucoup plus célèbre, mise en place en 1962 par Ivan Sutherland : SketchPad. Un champ particulier de recherche sur la programmation visuelle a vu le jour au sein des sciences de l’informatique au cours des années 1980. De ces recherches, nous pouvons apprendre que la principale différence entre les langages de programmation visuels et les langages textuels tiendrait dans l’usage d’une ou de plusieurs dimensions dans l’organisation des éléments symboliques (ici aussi tokens) qui forment leur vocabulaire. En effet, dans les langages textuels, il n’y a généralement qu’une dimension qui est véritablement utilisée : l’ensemble des instructions qui forment le programme est compris dans une seule et même ligne de codes, les espaces, tabulations et autres retours à ligne utilisé pour simplifier le travail d’écriture et de lecture par les programmeurs étant supprimés à la compilation ou à l’exécution du programme. Les langages visuels, quant à eux, utilisent au moins une dimension supplémentaire en proposant, par exemple, la mise en œuvre d’icônes visuelles prenant le rôle des tokens et pouvant être organisées dans un espace graphique à deux, voire trois dimensions selon une grammaire spécifique.

Un nombre important de langages visuels expérimentaux a été réalisé et quelques environnements logiciels auteurs largement utilisés aujourd’hui héritent de ces recherches (Max/MSP, PureData, vvvv, LabView, Quartz Composer, Scratch, etc.). Avec l’augmentation constante de la puissance de calcul des ordinateurs et de leurs unités de traitement des informations graphiques, la programmation visuelle en est arrivée à pouvoir proposer des environnements de programmation permettant non seulement de construire et de modifier visuellement un programme alors qu’il est en cours d’exécution, mais aussi de pouvoir observer l’évolution de l’état de ses différents constituants en temps réel. Il est donc question d’environnements interactifs d’écriture et de modification de programmes.

II — Éléments de problématiques
En proposant des environnements graphiques interactifs, la programmation visuelle aspire, dans la plupart des cas, à faciliter la création de programmes et à permettre à des personnes non spécialistes de l’informatique de réaliser des programmes. Cependant, l’ordinateur reste ce qu’il est, à savoir une machine capable de calculer l’ensemble des fonctions théoriquement calculables, autrement dit, une machine à calculer universelle reposant sur le modèle théorique de la machine de Turing. Ainsi, que le paradigme de programmation soit visuel ou non, le programmeur qui projette de faire réaliser quelque chose à cette machine doit être capable de reproduire mentalement son fonctionnement afin de déterminer les suites d’instructions dont son projet a besoin pour les traduire en programme, à l’aide d’un langage ou d’un autre. La logique algorithmique qu’impose cette machine est donc fondamentale dans l’activité de programmation. La programmation visuelle, dans la plus grande partie de ses formes actuelles, n’est pas exempte de cette logique, comme nous le montre la porosité possible entre langage visuel et langage textuel. La programmation visuelle est donc construite depuis une logique programmatique informatique préexistante, fondée sur le séquençage de calculs.

Comment pourrions-nous concevoir un environnement et un langage de programmation constitué d’éléments graphiques fondamentalement opératoires et proposant une autre forme de logique ? Nous pouvons émettre l’hypothèse que, en l’état actuel des langages visuels, les outils du design graphique sont utilisés pour constituer des représentations visuelles au service d’une logique de programmation algorithmique. Mais pourrions-nous penser une forme de design graphique opératoire qui permettrait d’informer visuellement des processus exécutables « à l’avance » ?

Des projets comme Design By Numbers et ses héritiers (Processing et Open Frameworks) ont tenté de rendre la programmation plus simple à apprendre pour les designers et les artistes. Mais pourrions-nous imaginer que les designers et les artistes puissent apprendre à leurs ordinateurs ce qu’il souhaite leur faire exécuter à l’aide d’images, de textes, de vidéo ou de son au travers d’un langage de programmation visuel ? L’idée d’un design opératoire serait alors l’hypothèse d’un design graphique étant autant porteur de sens que vecteur de processus. Cette hypothèse nous engage à penser que la «  programmation par la démonstration  » doit également faire partie des domaines que notre recherche doit explorer et questionner.

Nous souhaiterions également interroger la présence toujours plus forte des langages de programmation visuelle dans des outils de création et de design : montage son (AudioGL), post-production cinéma (Smoke d’Autodesk), image de synthèse (Cinema4D de Maxon). À quoi correspond cette résurgence récente des paradigmes de programmation visuelle comme outils de construction de scripts ? Est-ce que l’usage des ordinateurs dans des activités de création artistique (et donc son usage par des artistes/designers) favorise l’apparition de langages visuels ?

Ces langages étant généralement dédiés à des tâches particulières, leur portée est relativement faible. Mais facilitent-ils le travail des designers et si oui, comment ? Il s’agit à la fois de s’interroger sur la manière dont une représentation visuelle des processus favoriserait un mode de conception plus intuitif pour les designers, une forme de «  pensée par le visuel  » qu’il nous reste à définir, et de considérer la mesure dans laquelle il est possible de s’éloigner des principes fondamentaux de la programmation traditionnelle (c’est à dire du calcul) dans la création d’un langage de programmation à destination des artistes et des designers.

Finalement, nous envisageons de faire de cette recherche le lieu d’une remise en question des modes de valorisation que les chercheurs en art et design ont à leur disposition. En effet, si nous admettons que la représentation d’une structure processuelle peut être faite autant par le truchement d’une description textuelle que par une description visuelle, alors nous proposons d’émettre l’hypothèse selon laquelle un système de mise en forme perceptuelle d’une recherche théorique utilisant simultanément une couche graphique et une couche textuelle peut devenir un véritable vecteur de valorisation de la recherche en art et design, un objet qui fait œuvre tout en étant une formule de publication.

L’activité de mise en forme de cet objet-publication impliquerait alors autant un outil de conception visuelle d’un corpus de médias provenant des résultats d’une recherche qu’un outil de consultation de ces mêmes résultats.

III — Méthodologie
Une recherche documentaire permettra de clarifier les aspects historiques comme théoriques du champ spécifique de la programmation visuelle dans les sciences de l’informatique. Les environnements de programmation actuels seront étudiés et situés par rapport aux pratiques artistiques qu’il souhaitent favoriser : dispositifs interactifs, design graphique interactif, création et traitement d’image, de typographies, de mise en page, outils et instrument de musique, etc. À ce titre, divers créateurs d’outils logiciels de création pourraient être sollicités (interviews, conférences, workshops, etc.). La réalisation de prototypes sera primordiale dans notre recherche et sera notre premier moyen d’émission d’hypothèses. Cette activité pratique sera parallèle à une activité théorique textuelle et graphique.

D’une façon générale, il est question pour nous d’inverser les processus que nous connaissons dans un premier temps pour les rendre réversibles dans un second temps, par exemple : ne plus partir de la logique que les langages de programmation traditionnels nous imposent et leur surajouter des couches visuelles pour faciliter la pratique de la programmation, mais concevoir les choses à partir du design d’éléments visuels et construire les éléments logiciels nécessaires à la mise en exécution de cette construction visuelle, ce qui permettrait, in fine, un aller-retour entre représentation visuelle et structure logicielle à l’aide d’une portée appropriée aux objectifs de l’environnement de création, d’une porosité forte entre les différents niveaux qui le composent et d’une capacité de feed-back élevée de son langage de description. Un exemple concret de ce principe pourrait être la conception de systèmes de visualisation de données : il ne s’agirait plus de partir exclusivement d’une base de données pour en construire des visualisations, mais de construire visuellement une base de données, que ce soit à partir de données existantes ou de nouvelles données, pour permettre un aller-retour aussi fluide que possible entre édition et consultation de cette base par l’intermédiaire de la formalisation visuelle même.

IV — Événements et incidences sur la pédagogie
Ce programme est imaginé sur une période minimum de 2 années, ponctuées d’une série d’évènements ayant pour objectif soit de répondre à certaines problématiques posées, comme l’invitation de personnalités actives dans le champ de recherche qui nous occupe, soit de permettre une forme de valorisation de cette recherche se déroulant dans une école supérieure d’art et de design. Nous projetons ainsi une rencontre avec l’équipe travaillant sur le projet NodeBox, environnement logiciel auteur utilisant un langage visuel porté par le Experimental Media Research Group, associé à l’École d’art de Sint Lucas d’Anvers (Belgique).

Sont envisagés :
Une conférence au sujet de NodeBox : origines du projet, raisons du passage à un éditeur visuel, type de destinataires visés, profil des personnes portant le projet depuis 2004, etc.
Un workshop d’initiation à NodeBox à destination des étudiants en design graphique (années 3 à 5) d’une durée allant entre trois et cinq journées.

Les questions soulevées aujourd’hui par ce programme de recherches sont liées, pour une partie d’entre elles, aux projets menés par les étudiants en design graphique à l’Ésad Grenoble-Valence, aussi bien en phase projet qu’en phase programme. L’implication de certains étudiants dont les problématiques de recherche croisent celles de ce programme sera un apport majeur au déroulement et à l’évolution de cette recherche dont la valorisation pourra prendre plusieurs formes : objets issues de nos pratiques et expérimentations graphiques et techniques, expositions d’oeuvres et d’ouvrages et publications scientifiques.