Lorsque j'utilise un assistant LLM pour coder
[AI]
Lorque j’utilise un assistant de type LLM pour coder, c’est souvent pour l’une de ces deux raisons :
-
Je n’ai pas envie de chercher moi même le détail d’une construction typique, parce que ce n’est pas mon sujet de préoccupation. Exemple : “comment ouvrir et traiter chaque ligne d’un fichier texte en python”. En gros : je ne me rappelle plus, ça ne m’intéresse pas trop, j’ai la flemme.
-
Je travaille sur une techno que je ne maîtrise pas du tout et j’aimerais voir à quoi ressemblerait le code pour résoudre un problème un peu pointu. Exemple : “comment passer des données mutables à une fermeture sur un callback d’évènement graphique en Rust avec Gtk” (spoiler : mon LLM ne sait pas trop. Il a ingéré trop peu de bases de code qui traitent du sujet).
Dans les deux cas il est hors de question
1) De prendre le code pour argent comptant, de l’intégrer ipso facto dans ma solution pour finir au plus vite. Je ne ferais même pas cela avec du code que m’a passé mon meilleur ami (ça le ferait sourciller d’ailleurs). C’est du code. Le code casse là où vous ne regardez pas. Dans les détails. Si vous dites le contraire (“mais non, vas y c’est maîtrisé, voyons, vis avec ton temps”) je vais douter de votre crédibilité et de votre expérience sur le sujet. Ici on cherche à créer un logiciel fiable, clair, correct, pérenne, et non à jouer les champions de la productivité avec lien sur mon CV et ma page LK. Bien sûr, si le point c’est de bricoler un script à 2 cents pour gérer le contenu du frigo, sûr. Lance le code.
2) De commencer à aider l’assistant à corriger ses propres suggestions. Je sais bien que les outils de type LLMs sont impressionnants pour générer du “contenu”, mais j’ai assez de jugeotte et d’expérience pour comprendre que le code d’un logiciel n’est pas juste du “contenu”. C’est une construction qui en terme de logique ne doit pas prendre l’eau. Les outils IA sont extraordinaires pour le “ball park” du niveau débutant, lorsque le problème est simple et très connu: alors le résultat est correct et les explications limpides ! Mais si le problème à résoudre présente des contraintes spécifiques, lesquelles contraintes inciteraient un·e développeur·se à se poser et à réfléchir, l’outil devient inutile, qu’on débute ou pas. De même que vous n’accepteriez pas de devoir pousser votre voiture dès qu’il y a une côte un peu raide, je refuse d’assister mon assistant dans ses générations jusqu’à ce qu’il aie “trouvé” l’origine de ses propres hallucinations.
En somme j’utilise l’outil pour ouvrir mon horizon : quand j’ai besoin d’apprendre (et coder, c’est essentiellement apprendre).
Quand à l’idée que l’IA peut, en continu, créer LA solution, et donc (bingo!) vous REMPLACER en tant que développeur·se, c’est à dire penser à votre place, c’est une illusion très répandue et assez facile à invalider.