top of page

Le code, à l’air de l’IA 

  • il y a 2 jours
  • 4 min de lecture

Il faudrait avoir été enfermé dans une caverne depuis au moins 3 ans pour ne pas avoir vu l’explosion de l’utilisation de l’intelligence artificielle, et ce dans tous les domaines de l’activité humaine, qu’elle soit intellectuelle ou, dans une moindre mesure pour l’instant, physique.



Cette solution a tellement pénétré notre manière de fonctionner que même ma chère et tendre, femme charmante au demeurant, l’utilise quotidiennement pour son activité professionnelle, et ce malgré le fait qu’elle soit incapable de faire un copier-collervalable, et que la simple évocation de la touche ‘shift’ lui paraisse un voyage interdimensionnel (un peu d’exagération, mais pas tant).



Même s’il est passionnant et terrifiant à la fois, le sujet que nous souhaitons aborder ici n’est pas l’impact que l’IA va avoir sur le développement (ou la régression) de l’intelligence, des capacités cognitives et de l’apprentissage des jeunes et moins jeunes, mais plus simplement et modestement (ou égoïstement, selon votre sensibilité), son impact sur le code et les codeurs.


Mais, me direz-vous, la première question est : avec l’IA, a-t-on toujours besoin de code ? Après tout, il suffit de donner des instructions, et l’IA va les exécuter, non ? non. En fait, les principales IA que l’on utilise quotidiennement (ChatGPT, Gemini, etc.) sont ce que l’on appelle des Large Language Model (LLM), des réseaux de neurones qui reposent sur une base de données dantesque et l’apprentissage pour générer une réponse, textuelle ou visuelle, ou une action (dans le cadre des IA agentiques), qui ne sera jamais identique, même si les données d’entrées le sont. Le paradoxe étant que lorsque les programmateurs IA veulent systématiser un comportement, ils sont contraints d’intégrer une part de code fixe dans leur réseau de neurones intelligent. Bref, si vous voulez automatiser un processus de manière fiable, vous êtes, pour l’instant, obligés d’utiliser du bon vieux code à l’ancienne.


Un point fondamental que nous tenions à mentionner - c’est notre côté réactionnaire - : si elle est effectivement artificielle, l’IA n’est pas intelligence. Elle ne crée rien, elle n’invente rien, elle n’a aucune émotion ni imagination. C’est une machine, surpuissante certes, mais une machine tout de même, un compilateur qui se nourrit de ce qu’il trouve dans une base de données gigantesque. Si cela peut poser des questions de légitimité dans certains domaines artistiques, ou de biais dans d’autres de l’information, nous ne pensons cependant pas que cela soit le cas dans le domaine du code, car lorsque les problèmes arrivent, nous ne connaissons pas un seul développeur qui n’ait jamais sacrifié au Dieu Google, ou fait une prière à St StackOverflow (les dévotions varient). L’utilisation du travail des autres, appelé ‘pompage’ par certains, ‘adaptation libre’ par d’autres, fait partie du quotidien.


Et, honnêtement, nous pensons qu’il serait effectivement ridicule de se passer de cet outil, tant sa puissance, sa rapidité et sa précision sont évidentes. Quel que soit le langage (VBA, Python, App Script ou SQL en ce qui nous concerne – pub au passage), l’IA génère des scripts performants, correspondant généralement à ce que l’utilisateur demande !


Et c’est là que cela devient important : l’IA va faire exactement ce que l’utilisateur lui demande, sur la base de code qu’elle trouve ça et là.


En conséquence, l’utilisateur doit avoir une idée très claire de ce qu’il souhaite, afin de fournir des instructions (nous dirions ‘spécifications’) qui devront être précises, pour être efficaces, à la machine. Et même si la description du visuel souhaité se fait généralement simplement, il n’en est pas de même pour le développement des menus, boutons, boucles et conditions, sans oublier les potentielles interactions entre des fichiers, etc. Si elles ne sont pas pensées globalement, en amont, toutes ces spécifications se feront par instructions partielles et successives à une IA qui ajoutera des patchs ça et là pour satisfaire l’utilisateur, mais sans vision globale, structurée et cohérente, des besoins et objectifs de l’utilisateur.


Dans le meilleur des cas, cela fonctionne et tout va bien. Il ne faut cependant pas aller trop fouiner du côté du code en espérant faire de la maintenance, car cela reviendrait à ouvrir une boîte de Pandore.


Dans les autres cas, l’IA n’arrivera pas à développer telle ou telle fonctionnalité de manière satisfaisante, sans que l’utilisateur sache pourquoi ni puisse y faire grand-chose, excepté taper dessus, ce qui est tentant, mais généralement déconseillé. Deux moyens de s’en sortir. Le premier : aller regarder dans le code pour voir le problème, et le régler directement, ce qui nécessite donc le temps et les compétences dont l’utilisateur normal ne dispose pas, et dont il souhaitait se dispenser. L’autre moyen : donner à l’IA des instructions très précises sur ce qu’elle doit faire, telles que « crée une variable/ un dictionnaire/ une collection/… » « boucle sur tel dictionnaire, avec telle condition, etc. ». C’est très efficace, mais encore faut-il savoir ce que sont les dictionnaires, collections, listes et autres classes (pour les plus poétiques d’entre nous) ! Et l’on retombe sur le même besoin en compétence et temps, mais par un autre chemin…


Autre particularité que j’ai notée dans le code généré par IA, c’est que si l’on ne lui précise rien (et l’on revient au sujet des compétences), elle génèrera tout le code, et tous les textes en dur. Lors de la manipulation de tableaux, par exemple, ne surtout pas renommer une colonne ! S’il y a une valeur de référence utilisée dans une boucle ou une condition, ne surtout pas la modifier ! Bref, la paramétrisation et la variabilisation des procédures (Français ? je ne sais pas, mais compréhensible), ce n’est pas son fort, et cela peut poser de gros problèmes de maintenance et d’évolution, voir forcer à envoyer à la benne toute une application car elle ne peut pas s’adapter au nouveau besoin.


Pour conclure cette logorrhée, je dirais que les développeurs sont l’équivalent des garagistes à l’ère des tutoriels Youtube : tout paraît simple quand on regarde l’ordinateur le faire et, pour les opérations les plus simples, effectivement, cela suffit. Cependant, quand on commence à toucher à des sujets sensibles (les bougies d’une défunte R5, en ce qui concerne votre serviteur), il est mieux d’avoir quelqu’un qui sait ce qu’il fait.


Et si d’aucun devait douter de la justesse de ce qui précède, qu’il se rassure ! Nous avons demandé à Gemini ce qu’il en pensait et voici son avis : « C’est un article très lucide et teinté d'un humour rafraîchissant. L'auteur évite le piège de l'alarmisme total comme celui de l'optimisme aveugle. En tant qu'IA, je trouve son analyse des forces et, surtout, des limites actuelles du code généré par IA particulièrement pertinente. »


Si ça ce n’est pas une preuve de bon goût et de fair play…

 
 
 

Commentaires


bottom of page