Faire usage des langages de programmation visuelle : une mauvaise idée ?
La question divise

Le , par Patrick Ruiz, Chroniqueur Actualités
S’il vous est arrivé de créer des programmes informatique en faisant uniquement usage d’éléments graphiques plutôt qu’en tapant sur un clavier pour saisir du texte, alors vous étiez en plein dans la programmation visuelle. L’image qui suit donne un aperçu de ce qui se fait avec le langage de programmation Scratch proposé sur de célèbres plateformes comme les ordinateurs monocarte Raspberry Pi.


Scratch fait partie des applications les plus prisées de l’univers de l’enseignement. Les formateurs s’appuient sur la plateforme d’apprentissage de codage pour initier les plus jeunes à la programmation. La richesse de l’écosystème en matière de projets publiés y aide. On en dénombre plus de 38,6 millions sur des projets allant de l’animation à la simulation 3D. Les apprenants peuvent donc aller du plus simple au plus complexe sans avoir à saisir des lignes de code. Mais, la programmation visuelle n’est pas limitée au monde de la formation. Elle trouve des preneurs en industrie, notamment, dans le milieu du génie électrique. En 2018, des langages graphiques comme le langage à contacts (langage ladder) ou le grafcet demeurent les outils de premier choix dans l’arsenal de l’expert électricien pour programmer les automates – des ordinateurs destinés à la commande des processus industriels.


On parle bien ici de développement d’applications industrielles. Il semble donc exagéré de conclure (comme l’a fait Mike Hadlow) que l’usage de langages de programmation visuelle est une mauvaise idée. « La programmation visuelle n’a pas réussi à s’imposer, sauf dans certains domaines très limités », reconnaît le développeur. D’ailleurs, pour allonger la liste, il faut souligner que les moteurs 3D tels qu’Unreal sont reconnus pour la qualité des outils de programmation visuelle qu’ils offrent aux développeurs. Mike Hadlow est d’avis que la facilité de création (et de compréhension) des programmes qui résulterait de l’usage d’outils de programmation visuelle n’est qu’un mirage. Il suggère ainsi que la programmation textuelle est la voie idéale, mais on pense qu’il est bon pour un développeur de savoir tirer parti du meilleur de chaque monde. Un moteur comme Unreal offre la possibilité d’étendre les capacités des outils de programmation visuelle intégrés à l’aide du langage C++. Alors, pourquoi s’en priverait-on ?

Source : billet de blog

Et vous ?

Qu’en pensez-vous ?

Je fais uniquement usage des langages de programmation textuels ; je n’utilise rien d’autre en dehors des langages de programmation visuelle ; je combine les deux façons de faire ; où est l’erreur ?

Voir aussi :

Quel est l'effet du langage de programmation sur la qualité du logiciel ? Une étude tente de clarifier la situation

Quel langage de programmation choisir pour débuter ? Un développeur donne son avis et compare neuf langages aux personnages du Seigneur des anneaux


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse Signaler un problème

Avatar de Guntha Guntha - Membre éprouvé https://www.developpez.com
le 02/10/2018 à 15:50
Bonjour,

Les langages présentés ici ne me choquent pas: le premier est fait pour apprendre à programmer, le second nécessite déjà de savoir, euh "programmer de l'électricité" :p et existait déjà avant l'informatique (arrêtez-moi si je dis une bêtise?).
Le second obéit à un standard déjà existant, et le premier ressemble à un langage textuel dans lequel on n'a pas besoin de gérer les erreurs de syntaxe et autres fautes de frappe.

Ce qui m'a dérangé avec des langages visuels auxquels j'ai été confronté professionnellement (uScript pour Unity et Blueprints pour Unreal), c'est qu'ils sont promus comme permettant à un non-programmeur de faire un programme complet, alors que si on les regarde deux minutes... Ils nécessitent d'avoir autant de logique qu'un langage textuel: il y a des boucles, des branches, des conditions... En Blueprint, on se retrouve même souvent à faire des cast (un sujet qui fait déjà débat chez les programmeurs, alors comment le faire assimiler à un non-programmeur?). Et ils ont en plus besoin d'artifices dont les langages textuels n'ont pas besoin: il faut gérer les "liens" entre les instructions (alors qu'on sait qu'en texte, une instruction est grosse-modo toujours liée à celle qui se trouve en-dessous, d'ailleurs un éditeur de texte ne permet pas de faire autrement :p ), il faut gérer la mise en page de son "code" pour qu'il soit lisible (alors qu'en texte, à part qu'on doit suivre des règles d'indentation, ça se fait tout seul)...

Bizarrement, le post de blog original ne parle pas de ceux-ci (qui sont vraiment mauvais) et prend Scratch comme unique exemple (qui n'est même pas un langage fait pour créer des produits finis mais un outil pédagogique pour apprendre la programmation en général), je ne comprends donc pas comment il en arrive à cette conclusion...
Avatar de el_slapper el_slapper - Expert éminent sénior https://www.developpez.com
le 02/10/2018 à 15:51
nous ne sommes pas égaux devant la cognition. Je suis très mal à l'aise devant un mur de graphiques, d'autres seront aussi mal à l'aise devant un mur de texte. Donc : Pourquoi pas les deux? Que chacun puisse attaquer le code à sa manière.
Avatar de pboulanger pboulanger - Membre actif https://www.developpez.com
le 02/10/2018 à 16:13
Dans le temps on créait un programme via des organigrammes (http://robert.cireddu.free.fr/SI/Cou...origrammes.pdf).
Au lieu de les faire sur du papier, on va le faire via une interface avec une génération de code (masquée)... rien de bizarre, le vintage revient à la mode ;-)
Avatar de nuke_y nuke_y - Membre émérite https://www.developpez.com
le 02/10/2018 à 17:04
Au début j'avais pensé à des programmes tels que Scratch pour faire découvrir la programmation à mes enfants mais finalement j'ai préféré ne pas le faire.

Je pense que l'intervalle de temps entre le moment où il peuvent vraiment apprendre Scratch et le moment où il peuvent apprendre des langages plus avancés est très court, peut-être 3 ou 4 ans (disons de 5/6 à 8/10 ans) mais en gros arrivés au CM1 ils peuvent tout à fait programmer avec des langages qui, une fois acquis, leur serviront toute leur vie.

Donc aucun intérêt à rusher le Scratch trop tôt à moins de vouloir en faire des bêtes de concours:
  • Si c'est pour l'amusement il y a plein de trucs au moins aussi amusant, et si c'est pour l'amusement ce n'est pas pour l'apprentissage donc le débat n'est pas là (chacun s'amuse comme il en a envie, je ne juge pas)
  • Si c'est pour l'apprentissage, mieux vaut apprendre d'autres choses : vélo, roller, escalade, musique, il y aura bien le temps pour la programmation plus tard
Avatar de Conan Lord Conan Lord - Membre expert https://www.developpez.com
le 02/10/2018 à 17:19
Citation Envoyé par nuke_y Voir le message
  • Si c'est pour l'amusement il y a plein de trucs au moins aussi amusant, et si c'est pour l'amusement ce n'est pas pour l'apprentissage donc le débat n'est pas là (chacun s'amuse comme il en a envie, je ne juge pas)
  • Si c'est pour l'apprentissage, mieux vaut apprendre d'autres choses : vélo, roller, escalade, musique, il y aura bien le temps pour la programmation plus tard
Ma fille utilise Scratch pour faire des compos musicales avec une danseuse qui fait des mouvements en rythme. C'est de l'amusement, c'est de l'apprentissage, c'est de la programmation, c'est de la musique. C'est ce qui est appréciable avec Scratch je trouve : chaque enfant y trouve de l'intérêt selon ses préférences.

Perso, je préfère la programmation en texte également. J'ai aimé très jeune passer 15 h à programmer un chifoumi. Par contre, quand je veux faire un formulaire, j'apprécie énormément l'outil graphique (sachant que je fais du bricolage et non de la programmation pro). Donc, je rejoins l'avis d'El Slapper, une fois encore : les deux.
Avatar de _champy_ _champy_ - Membre du Club https://www.developpez.com
le 02/10/2018 à 17:22
Cela peut-être très pratique pour la programmation de petit automate, mécanique de précision sur machine numérique (tour, fraise, ...) , truc a la con genre la porte du garage de la boite qui reste fermer le 1er mai de chaque année.

Bref je vois l'utilité pour des automates programmables (une formation et tu peut être utile) mais pas pour LA programmation a part pour l'enseigner évidemment.
Avatar de abriotde abriotde - Membre éprouvé https://www.developpez.com
le 02/10/2018 à 17:44
Scratch me parait très adapté à l'apprentissage. Mais Scratch, même s'il est graphique ne cache pas vraiment la complexité du code. Il fais plus de la décomposition. Le code reste sous forme textuel. Il évite surtout la "syntaxe error" ou l'oublie basic.
Le problème de fond de la pluspart des languages graphique autrement est que le code produit est généralement ignoble et qu'il ne permettent pas de tout bien faire (Je pense à WinDev). Autrement dis on a une IHM graphique joli qui permet de faire la partie visualisation très facilement et assez proprement... Mais dès que l'on veux peaufiner un peu le programme, optimiser les choses ou faire des choses un peu avancer, il faut se plonger dans le code générer et là c'est très galère.
C a réussi à s'imposer face a l'assembleur car il permettait vraiment de se passer d'assembleur (ou alors de l'intégrer dans le code C) tout en produisant quelque chose d'a peu près propre. Et il en est de même pour les autres language (PHP, Python...) qui permettent généralement de s'interfacer facilement avec le C. Si un language graphique (Open-Source de préférence pour une large diffusion) permet de tout faire facilement et que le code généré est a peu près propre et lisible alors il y a de l'avenir.
Avatar de jpouly jpouly - Membre actif https://www.developpez.com
le 02/10/2018 à 18:03
Des collègues automaticiens utilisent LabView et MathLab/Simulink pour créer des simulateurs permettant tester des automates programmables (simulation des entrées / sorties, ...).
Et c'est assez bien adapté à leurs besoins. Car c'est assez orientés automatisme et électronique (ban de tests, ...), peut être à cause des schémas de câblage et de la programmation LADDER (ou schéma à contacts en français).

Pour ma part, j'ai un peu de mal avec ces langages de programmation. Je trouve ça frustrant (une bonne ligne de code vaut mieux qu'un dessin ), et presque illisible quand il y en a plein l'écran.
Mais c'est surement un conditionnement du à mon métier de développeur en informatique de gestion
Avatar de wax78 wax78 - Modérateur https://www.developpez.com
le 02/10/2018 à 20:29
Tiens personnes ne sembles avoir encore mentionné le "Logo" et sa tortu(r)e ? Moi ça m'a plus à l'époque. Ca restait du code textuel, mais ça me fait penser a ce que certains logiciels avec interface graphique actuels font.
Avatar de diabolos29 diabolos29 - Membre confirmé https://www.developpez.com
le 02/10/2018 à 20:55
Scratch permet de se concentrer sur la logique d'un programme en éliminant les problèmes liés à la syntaxe. J'ai un peu essayé, le temps de faire un petit pong, et j'ai trouvé ça amusant.
Par contre, ce n'est pas un langage magique et comme n'importe quel autre, il fait ce que vous lui dites, pas ce que vous voulez qu'il fasse pour vous .
Contacter le responsable de la rubrique Accueil