Internet est utilisé par pra­ti­que­ment tout le monde et nombreux sont ceux à vouloir y apporter leur con­tri­bu­tion. Dans notre quotidien, nous devons faire face à divers problèmes auxquels des ap­pli­ca­tions pro­gram­mées et les appareils cor­res­pon­dants nous per­met­tent d’apporter une solution. Mais le chemin est souvent pavé d’obstacles. Un programme fonc­tion­nel est composé d’une multitude d’éléments et d’un langage de pro­gram­ma­tion avec un « vo­ca­bu­laire » varié qui comprend des variables, des cons­tantes, des boucles de processus, des con­di­tions, des for­mu­laires, des actions et des ex­pres­sions ré­gu­lières. La plupart du temps, les pro­grammes incluent également des liens et des in­té­gra­tions.

Tra­vail­ler avec de tels langages de pro­gram­ma­tion textuels requiert de solides con­nais­sances, une grande capacité d’abs­trac­tion et une con­cen­tra­tion constante. L’ap­pren­tis­sage d’un langage de pro­gram­ma­tion basé sur du texte peut être mis au même niveau que l’ap­pren­tis­sage d’une langue étrangère. Les en­vi­ron­ne­ments de dé­ve­lop­pe­ment gra­phiques ont été dé­ve­lop­pés dans les années 1960 afin de surmonter ces obstacles. Dans ce cadre, les pro­gram­meurs n’utilisent plus un code textuel difficile à mettre en œuvre, mais des éléments visuels.

Qu’est-ce que la pro­gram­ma­tion graphique ?

Dans le cas de la pro­gram­ma­tion graphique, les éléments du langage de pro­gram­ma­tion sont dis­po­nibles sous la forme d’éléments gra­phiques, d’où le nom de pro­gram­ma­tion graphique. L’apparence et le nom de ces éléments per­met­tent d’iden­ti­fier d’emblée la tâche qui sera ainsi réalisée lors de l’exécution du programme. Les pic­to­grammes servent à aiguiller les pro­gram­meurs et per­met­tent d’éviter les struc­tures trop complexes ou les concepts trop abstraits.

Note
L’abré­via­tion VPL fré­quem­ment utilisée renvoie au terme anglais « Visual Pro­gram­ming Language ».

Le style de pro­gram­ma­tion fon­da­men­tal – également appelé paradigme de pro­gram­ma­tion – présente notamment les pro­prié­tés suivantes :

  • Visuel : les éléments sont insérés dans le cycle du programme par glisser-déposer.
  • Orienté événement : chaque étape du programme commence lorsqu’un événement défini au préalable survient.
  • Impératif : la pro­gram­ma­tion est composée d’une suite de commandes.
  • Orienté objet : les dif­fé­rents objets se voient attribuer des tâches définies.

Les pro­gram­meurs utilisent de nombreux éléments logiciels préconçus qui sont fonction du langage graphique utilisé. Ces éléments peuvent comporter des textes et des images, être organisés de façon logique et permettre la mo­di­fi­ca­tion de leur apparence et de leur ex­pres­sion. Les éléments de commande per­met­tent d’insérer des actions dépendant de con­di­tions. Les opé­ra­teurs au­to­ri­sent des liens et des calculs ma­thé­ma­tiques ; des variables et des liens peuvent être ajoutés, supprimés ou modifiés. Les éléments de pro­gram­ma­tion sont conçus de sorte qu’ils puissent être assemblés comme les pièces d’un puzzle. Lorsque des éléments ne vont pas ensemble d’un point de vue logique, cette ina­dé­qua­tion est iden­ti­fiée par l’éditeur concerné et signalée de manière visuelle – par ex. à l’aide d’une couleur plus pâle – et parfois également de façon sonore. Les éléments de pro­gram­ma­tion sont gé­né­ra­le­ment regroupés selon un code couleur, ce qui permet de mieux les repérer lorsqu’on les sé­lec­tionne.

Les libellés des dif­fé­rents éléments et les processus sous-jacents re­pré­sen­tent des ex­pres­sions ou des actions humaines telles que « Fais … », « Dis … », « Appuie sur la touche … » ou « Attends jusqu’à ce que … ». Les éléments du programme sont assemblés par glisser-déposer. Les creux et les ex­crois­sances dont les formes cor­res­pon­dent indiquent que les éléments gra­phiques peuvent s’imbriquer les uns dans les autres. Il est ainsi possible de concevoir des processus de façon simple et intuitive sans avoir à connaître un langage de pro­gram­ma­tion textuel.

En quoi la pro­gram­ma­tion graphique diffère-t-elle de la pro­gram­ma­tion « normale » ?

La prin­ci­pale dif­fé­rence réside dans le fait que les pro­gram­meurs gra­phiques n’ont pas à maîtriser une quantité colossale de syntaxes de commande. Par ailleurs, ils peuvent faire l’impasse sur l’ap­pren­tis­sage fas­ti­dieux du « vo­ca­bu­laire » d’un langage de pro­gram­ma­tion. La pro­gram­ma­tion « normale » requiert une forte capacité d’abs­trac­tion afin d’atteindre le résultat visé à partir des ins­truc­tions du langage de pro­gram­ma­tion. Même si de nombreux éditeurs de pro­gram­ma­tion disposent de la fonction « Auto Complete », qui permet de compléter au­to­ma­ti­que­ment les ins­truc­tions et d’achever au­to­ma­ti­que­ment les pro­cé­dures, les pro­gram­meurs ne sont pas à l’abri d’erreurs de saisie. Il suffit alors d’une omission d’un tiret bas pour que l’in­té­gra­lité de la routine donne lieu à un message d’erreur. Cela se traduit gé­né­ra­le­ment par une recherche d’erreurs chro­no­phage.

Comme pour l’ap­pren­tis­sage d’une langue étrangère, lorsque l’on apprend la pro­gram­ma­tion « manuelle », on commence par le vo­ca­bu­laire principal per­met­tant de se faire com­prendre. Toute nouvelle tâche de pro­gram­ma­tion nécessite l’ap­pren­tis­sage de nouveaux termes. La quantité de termes des langages de pro­gram­ma­tion textuels modernes n’a cessé de croître au fil des ans afin de suivre le rythme des exigences de l’Internet moderne. Il est possible de dé­lo­ca­li­ser les étapes de pro­gram­ma­tion dans des fichiers séparés et de les intégrer dans le cycle du programme. Bien que cela facilite la pro­gram­ma­tion textuelle, cela nécessite une vision globale, un code bien commenté et une do­cu­men­ta­tion mi­nu­tieuse.

Quels sont les avantages et les in­con­vé­nients de la pro­gram­ma­tion graphique ?

La pro­gram­ma­tion graphique fait tomber les barrières tech­niques qui em­pê­chaient d’accéder à la pro­gram­ma­tion et la rend même ac­ces­sible aux enfants de façon ludique. Les pro­gram­meurs peuvent se con­cen­trer plei­ne­ment sur les processus logiques de leur programme sans dis­trac­tion. Cela permet d’atteindre des résultats ra­pi­de­ment uti­li­sables qui motivent l’apprenant à se lancer dans d’autres projets plus ambitieux.

Remarque

À ces débuts, de mars 2007 au milieu de l’année 2015, le langage graphique Scratch comptait près de 1 300 000 uti­li­sa­teurs en ligne en­re­gis­trés âgés de 8 à 16 ans. Plus de 3 millions de projets Scratch auto-dé­ve­lop­pés ont été mis en ligne.

Avantages de la pro­gram­ma­tion graphique

Ce type de pro­gram­ma­tion nécessite peu d’ap­pren­tis­sage : n'importe quelle idée peut en principe être « écrite » im­mé­dia­te­ment sous la forme d’un programme. Les symboles clairs per­met­tent une com­pré­hen­sion facile. Comme il n’y a pas de syntaxe, les erreurs de saisie sont im­pos­sibles. Ce type de pro­gram­ma­tion aide les pro­gram­meurs à com­prendre le concept sous-jacent d’un langage de pro­gram­ma­tion.

Les langages gra­phiques per­met­tent une pro­gram­ma­tion ex­plo­ra­tive, qui consiste à se lancer et à concevoir un programme pas à pas, avant même d’avoir défini la solution exacte. La fonc­tion­na­lité des étapes exis­tantes du programme peut être testée encore et encore. Dans ce cadre, les pro­gram­meurs tra­vail­lent prin­ci­pa­le­ment avec des solutions basées sur un na­vi­ga­teur qui fonc­tion­nent in­dé­pen­dam­ment du système d’ex­ploi­ta­tion de l’or­di­na­teur. Les résultats peuvent gé­né­ra­le­ment être exportés dans d’autres langages de pro­gram­ma­tion textuels.

In­con­vé­nients de la pro­gram­ma­tion graphique

Une partie de la pro­gram­ma­tion graphique est liée à des domaines d’ap­pli­ca­tion par­ti­cu­liers ou à des systèmes, du matériel ou des appareils spé­ci­fiques. En règle générale, il est im­pos­sible de créer des éléments in­di­vi­duels ou d’ajouter des com­men­taires pour d’autres par­ti­ci­pants au projet. Avoir une vue d’ensemble est alors plus compliqué, même pour des pro­grammes peu complexes. En outre, les projets pro­gram­més gra­phi­que­ment sont peu ex­ten­sibles. Les adapter à des projets plus vastes ou à crois­sance rapide est alors plus difficile. L’avantage de la pro­gram­ma­tion ex­plo­ra­tive peut vite devenir un in­con­vé­nient dans les projets plus im­por­tants avec du code non structuré. La main­te­nance et l’extension de tels pro­grammes sont alors dif­fi­ciles.

Quels langages gra­phiques existe-t-il ?

Nous vous pré­sen­tons ici une petite sélection de langages gra­phiques parmi le grand nombre de langages dis­po­nibles :

Scratch

Le langage graphique le plus connu et le plus répandu est Scratch. Il a été publié pour la toute première fois en 2007 avec pour ambition d’apprendre la pro­gram­ma­tion de façon simple aux enfants. Bouture de Scratch, ScratchJr est dis­po­nible sous forme d’ap­pli­ca­tion gratuite et s’adresse aux enfants de 5 à 7 ans. D’autres langages gra­phiques ont été dé­ve­lop­pés à partir de Scratch, comme BYOB 4.0/Snap !

Blockly

Blockly est une bi­blio­thèque lo­gi­cielle. Elle offre un éditeur de pro­gram­ma­tion graphique qui est ajouté aux ap­pli­ca­tions Android, iOS et aux ap­pli­ca­tions web. Blockly utilise également des blocs gra­phiques imbriqués. Les al­go­rithmes pro­gram­més peuvent par exemple être exportés sous forme de code Ja­vaS­cript ou Python.

NEPO

NEPO est inspiré de Scratch et utilise la bi­blio­thèque de Blockly en accès libre qui a été complétée par d’autres fonc­tion­na­li­tés. Les in­ter­faces ouvertes pouvant également commander d’autres systèmes matériels ou robots cons­ti­tuent l’un des avantages de NEPO.

Grape

Grape est un en­vi­ron­ne­ment de dé­ve­lop­pe­ment graphique. Il permet aux pro­gram­meurs débutants de pro­gram­mer des mi­cro­con­trô­leurs en quelques étapes simples.

App Inventor

Ini­tia­le­ment, App Inventor vient de Google. L’interface graphique utilisée permet de pro­gram­mer des ap­pli­ca­tions pour les té­lé­phones Android à l’aide de blocs gra­phiques.

Ardublock

Ce langage graphique a été spé­cia­le­ment pensé pour la pro­gram­ma­tion sans saisie textuelle du mi­cro­con­trô­leur Arduino.

Pure Data

Ce langage graphique, qui est également un en­vi­ron­ne­ment de dé­ve­lop­pe­ment, est orienté flux de données. Pure Data permet de produire des logiciels mul­ti­mé­dias in­te­rac­tifs, par ex. pour les syn­thé­ti­seurs.

Lego Mind­storms

Une série de produits du fabricant de jouets Lego dont la pièce maîtresse est une brique de lego pro­gram­mable : elle permet de cons­truire et de pro­gram­mer des robots et d’autres systèmes in­te­rac­tifs avec des moteurs élec­triques, des capteurs et des pièces de Lego Technic.

Aller au menu principal