Mais si l'IA vole mon métier de développeur, qui va développer l'IA ?
Je pense qu'il ne faut pas négliger l'évolution hyper-rapide des modèles de LLM. Comme à l'époque où on avait le dernier 486, et quelques mois après le Pentium arrivait. Si on a testé et pratiqué que le 486, forcément on va dire que c'est bof comparé à la promesse d'avoir des jeux qui se ferment plus vite que le patron n'entre dans la pièce. L'évolution d'une version de LLM à la génération suivante est clairement perceptible. On note que la réflexion est de plus en plus profonde et que le contexte est de mieux en mieux exploité.
Lorsque j'ai commencé à coder avec un LLM, je devais tout lui expliquer. Notamment comment lancer correctement une compilation complexe lui-même car il était trop bête pour voir que j'avais écrit un script build.sh qui prémâchait le travail de wsl + docker + makefile. Lui essayait toujours de lancer make directement sur l'hôte. Dès qu'on le poussait sur un bug un peu tordu, genre race condition, il était vite paumé et commençait à halluciner.
Avec les modèles plus récents, c'est déjà du passé, et c'est même déjà plus performant d'un dev senior... On a eu le cas l'année dernière d'un bug qui présentait des symptômes sans aucun rapport avec le stimuli qui le déclenchait. Pour l'analogie c'est comme si la lumière refusait de s'allumer si la machine à laver ne tournait pas. On a passé trois semaines à quatre développeurs à tourner et re-tourner le code, instrumenter partout, sans jamais mettre le doigt dessus. Ca a fini en workaround pour la prod : on allume la machine à laver avant d'allumer la lumière... La semaine dernière par pure curiosité j'ai donné le projet à notre LLM corporate, composé de centaines de fichiers sources, en lui expliquant simplement les faits observés et ce qu'on devait normalement obtenir. Ca tenait sur un petit paragraphe de quelques phrases plus court que ce post. Il a mouliné pendant un quart d'heure en expliquant son cheminement et à la fin... Il a trouvé. Il y avait un bug d'initialisation dans une des couches les plus basses de notre RTOS qui ne se voyait que sous certaines conditions, le truc qu'on utilise depuis plus de dix ans sans jamais avoir vu ce problème.
A mon niveau, oui l'utilisation d'un LLM pour coder transfère la charge de codage en charge de "pilotage" plus que de review, mais je ne trouve pas que ça soit proportionnel. Lorsque c'est codé par un humain, il faut aussi faire des reviews. C'est juste un peu plus long lorsque c'est produit par un LLM car ce n'est pas toujours conforme à la charte ou à nos habitudes de codage, il faut plus de temps pour comprendre pourquoi ça marche. En revanche, si on l'utilise correctement en le guidant pour obtenir ce qu'on souhaite, en définissant nous même l'architecture, ça fait vraiment gagner beaucoup de temps.
Et l'autre point non négligeable c'est que ça ouvre les portes à des langages moins ou non connus du développeur. Je n'ai aucun scrupule à démarrer un développement en Go alors que je suis issu du monde du C embarqué. Je n'ai pas besoin de connaitre la syntaxe précisément, comprendre les grandes lignes est suffisant pour obtenir quelque chose de fonctionnel. Et cerise sur le gateau, le développeur "apprend" grâce à l'IA, beaucoup plus personnalisé et moins cher qu'une formation.
Mince, l'IA va aussi voler le métier de formateur.