La fin du code ?

La fin du code.
Les développeurs vont disparaître.
Les IA génératives vont remplacer les informaticiens. 

Bla bla bla.

On revient sur cette douce folie qui hante l’informatique depuis … toujours.
Et comme toujours, AltGR prend la plume et explique les choses calmement et sans jargon.

Download this free HD photo of fl, miami, usa and animal in Miami, United States by Max Gotts (@maxgotts)
 

Je ne résiste pas à partager avec vous cette citation qui pose le problème de la programmation, c’est-à-dire l’écriture du code informatique qui permet aux programmes d’exister. Elle est un peu longue, prenez votre temps. On en reparlera à la fin du billet.

 
 
[The project’s] purpose was to reduce by a large factor the task of preparing scientific problems for [..] computer[s] [...]. If it were possible for the [computer] to code problems for itself and produce as good programs as human coders (but without the errors), it was clear that large benefits could be achieved.

For it was known that about two-thirds of the cost of solving most scientific and engineering problems on large computers was that of problem preparation. Furthermore, more than 90 per cent of the elapsed time for a problem was usually devoted to planning, writing, and debugging the program. In many cases the development of a general plan for solving a problem was a small job in comparison to the task of devising and coding machine procedures to carry out the plan.

The goal of the [...] project was to enable the programmer to specify a [...] procedure using a concise language [...] and obtain automatically from this specification an efficient [...] program to carry out the procedure. It was expected that such a system would reduce the coding and debugging task to less than one-fifth of the job it had been.
— et ça n'est pas de nous :-)
 

Ambitieux ?

La fin de la programmation fastidieuse et chronophage.

La fin du code informatique écrit par des humains ? Humains qui sont nuls, d’ailleurs, à écrire du code source, comme l’assène Matt Welsh, qui s’y connait un peu en informatique. Imaginez une humanité libérée de cette tâche laborieuse … les gains de productivité s’annoncent fantastiques.

 
Critically, the goal of CS has always been that programs are implemented, maintained, and understood by humans.

But – spoiler alert! — humans suck at all of these things.
— Matt Welsh
 

Méthode 

Je reprends les mots de Brian Hayes dans ce billet :  AI and the end of programming

Les ordinateurs sont méthodiques. Ils fonctionnent avec des règles strictes. Ils sont pointilleux et rigoureux. Des caractéristiques que nous associons (à tort ou à raison) aux programmeurs idéaux. Les machines semblent donc mieux adaptées à la programmation que la plupart des personnes. 

La vague d’intérêt pour les nouveaux outils de génération de texte a relancé ces attentes de “disparition” des développeurs humains.

 

Crédibilité 

Les outils dits “no-code” essayaient bien de faire croire qu’il était possible de s’affranchir du pensum de l’écriture de programmes. En nous faisant manipuler des blocs et des flux. Ça marche dans certains cas. Pas tout le temps.

L’irruption fracassante de ChatGPT (OpenAI) et ses clones (Llama, etc.) relance la machine. Ces outils exploitent les capacités de d’apprentissage statistique de grands réseaux de neurones. Couplés à une interface de conversation humaine, ces systèmes d’intelligence artificielle (SIA) produisent des textes convaincants et formulés élégamment, qu'ils soient vrais ou non. La crédibilité avant tout !

 

… ou précision ? 

Être crédible et s’exprimer avec aisance ne suffit pas lorsqu’on interagit avec un ordinateur. Et pourtant, ça fonctionne avec les humains. Pourquoi ?

Je paraphrase encore Brian Hayes, dont j’ai aimé le (long) papier.

Tout d'abord, les humains se laissent facilement tromper. Nous faisons des concessions, comblons les vides et corrigeons silencieusement les erreurs d’expression. Nous sommes capables de compléter les éléments de contexte manquant, et c’est une différence fondamentale avec les puces en silicium. En général, l’humain moyen aura tendance  à fournir de grands efforts pour donner un sens à une déclaration … même lorsque cela n'en a pas. Les menteurs le savent bien.

Ça ne marche pas avec les ordinateurs. Ce sont des juges sévères et impitoyables, sans aucune tolérance pour les mensonges et le non sens. 

 
Un lecteur humain s’efforcera de trouver un sens à une déclaration, malgré les fautes de frappe et d’autres petites erreurs [...] un ordinateur rejettera le programme à la moindre virgule mal placée ou pour une parenthèse manquante.
— Brian Hayes (traduction libre)
 

La fin de la programmation ? 

Les IA génératives marquent-elles la fin de la programmation par des humains ?

Cette déclaration est trop péremptoire pour être crédible. On pourrait s’interroger sur les motivations des personnes qui le clament haut et fort. Ont-ils un service à vendre, ou une technologie - au hasard, des IA génératives ou les briques logicielles qui les font fonctionner, comme les LLM ? Ont-ils envie de prendre une revanche sur d’éventuels binoclards boutonneux forts en maths et forts en code, qui leur ont volé la vedette ?

Les IA génératives produisent du code, certes, mais est-il utile ? Parfois, selon quelques études (Chen et al 2021, Cassano et al 2022, Buscemi et al 2023). Je n’y trouve pas un intérêt fou ! Les data scientists avec qui je travaille préfèrent réfléchir seul, puis farfouiller sur Stack Overflow quand ils sèchent. On y trouve généralement des réponses semi-valables, et on a la chance de pouvoir comprendre ce qui ne fonctionne pas. Chaque problème est une occasion d’apprendre.

Doit-on suspecter une énième manifestation de la psychose collective qui se manifeste lors de l'apparition d'une nouvelle technologie ? Il serait imprudent d’évacuer totalement cette hypothèse. Hypothèse basée sur la peur fantasmée de se faire remplacer par des ordinateurs, forme de grand remplacement technologique, à la fois inévitable et inéluctable. Les IA génératives ne remplaceront pas les développeurs de sitôt - ou alors, juste les mauvais. Ce sont des outils, et comme tous les outils, ils peuvent être utiles, ou ne pas l’être.

 

Un dernier mot 

La citation en début de billet est issue de “The FORTRAN Automatic Coding System”, papier de J.W. Backus et al présentant Fortran. En 1957, donc. Quand on vous disait que ce sujet datait de la préhistoire de l’informatique.

 

Traductions réalisées avec ChatGPT, relues et validées par l’auteur.

 
Précédent
Précédent

Preuves de concept

Suivant
Suivant

gzip+kNN ~ BERT