La dernière ligne de code
Bientôt je n’écrirai plus une ligne de code, et ce grâce à l’intelligence artificielle générative (IA gen ou genIA ou genAI). Ces moteurs d’inférence prendront bientôt en charge l’essentiel de l’écriture du code. Mon rôle se limitera alors à celui d’architecte : concevoir, orienter, décider. Aujourd’hui, je dois endosser à la fois le rôle de l’architecte et celui de l’artisan, et quand je code, je deviens à la fois maçon, charpentier et électricien.
Or je l’avoue, c’est vraiment le fun d’être architecte, un peu moins d’être maçon. Ça reste le fun d’être artisan de son projet, vraiment, on construit et voit le résultat de son travail très rapidement. En revanche, depuis peu la satisfaction d’écrire soi-même le code a un goût amer, comme une impression de faire une activité en voie de disparition. Je suis traversé par cette question qui force à passer 4 heures à coder une fonction qui prendrait un LLM 2 minutes et qui le ferait mieux que moi in fine. C’est dur car je me rends compte que je perds un skill mais heureusement je passe ce temps à en acquérir d’autres.
Un peu comme le peintre spécialisé dans la peinture de portrait au début de l’appareil photographique. Le peintre doit se focaliser sur sa technique, alors que le photographe sur la structure. Cela devient une histoire de choix, là où il est possible de prendre 100+ photos, on ne peut faire qu’un portrait peint. Le peintre peut perdre son skill pour en obtenir un autre qui apportera bien plus à la société.
La réalisation principale m’est apparue lorsque je fus capable de créer un jeu dans un langage (code) que je ne connaissais pas. Une réalisation qui m’aurait pris des mois est devenue un projet de week-end. Grâce à la genAI, de la même façon qu’on peut traduire du français en anglais, il est possible de traduire sa langue maternelle en code. On se focalise sur la structure des choses, le comment devient évident, il nous est donné. De plus, coder n’est plus une tâche individuelle mais devient collaborative.
Mais ce fun se voit réduit récemment, d’une part car la valeur ajoutée à le faire soi-même se voit réduite au fur et à mesure des mois. Je suis d’ailleurs partagé émotionnellement quotidiennement sur ce sujet. Rester artisan de mon projet ou utiliser mon temps et espace mental sur des tâches à plus forte valeur ajoutée (maintenant ou demain).
Et encore je suis chanceux, j’ai vraiment appris sur le tas et je me qualifierais de passable dans cet art. Il y a des personnes qui ont construit leur carrière sur ce fait ou bien qui ne savent faire que ça et d’ailleurs le font très bien. Ce sont d’ailleurs souvent les plus sceptiques sur l’avenir du code généré, souvent aveuglés par les lacunes techniques des modèles d’aujourd’hui, sans penser à demain. Comme un peintre pourrait montrer du doigt une mauvaise exposition pour mettre en valeur son art.
Voilà, nous en sommes là, ce niveau va être atteint et je parie qu’il va être démultiplié au cours des prochaines années. Pour reprendre l’analogie de l’artisan qui parfait son travail au cours des années et qui l’améliore avec le temps. Les modèles d’inférence aujourd’hui accessibles sont bien au-dessus des standards qui qualifieraient un codeur “de très bon” (https://arxiv.org/pdf/2502.06807), autrement dit, il devient incohérent de comparer le travail d’un artisan humain et d’un modèle de génération de code. Le modèle de génération gagnerait dans plus de 99 % des cas.
Déjà aujourd’hui les incitations financières sont davantage du côté du modèle que de l’humain, excepté pour les cas extrêmes, une personne rationnelle ne peut justifier le choix d’employer un humain pour ses performances. Il en va même des mathématiques, où des modèles ont déjà atteint les sommets (https://deepmind.google/discover/blog/advanced-version-of-gemini-with-deep-think-officially-achieves-gold-medal-standard-at-the-international-mathematical-olympiad/), soit le top 1 % des mathématiciens.
Heureusement, il reste la part architecturale de la solution, le fun. Ici l’espace des solutions est quasi infini (il doit exister des millions de maisons au design différent, en revanche pour ce qui est de la construction d’un mur, on devrait plutôt compter en centaines…) nous commençons d’une page blanche avec pour objectif de résoudre un problème sous certaines contraintes.
Certains essaient de faire des systèmes d’intelligence artificielle générative, capables de construire des solutions (architecture + code) suite à une requête. D’ailleurs il arrive que ce soit (à tort) qualifié de vibe coding. De mon point de vue, le vibe coding est plus proche de ce que je qualifiais précédemment. Une fois les plans d’architecture du code établis, on définit et spécifie le code souhaité, une traduction directe du texte et non une extrapolation de celui-ci. En tant qu’architecte, on a une vision mais les retours de l’artisan peuvent venir modifier les plans. On retrouve cette collaboration, les choix sont humains, l’exécution artificielle.
Pour revenir sur ces solutions multitâches (architecture + code), je pense qu’il s’agit de la prochaine étape, une tâche à horizon long. Mais mon autre pari est que cette solution, si elle doit être interactible par des humains, sera préférée faite par ceux-ci, ou pas. Car de la même façon qu’il existe des millions de façons de designer un bâtiment pour un emplacement, il en est de même pour du code. Et in fine, pour la même raison que certains trouvent que la Joconde est le plus beau tableau du monde, il en revient au goût.
Cet aspect qui n’est pas (que je sache) déléguable à l’IA sera encore plus mis en exergue dans la collaboration avec l’IA. Là où il fallait souvent atteindre un certain niveau d’aptitude en code pour pouvoir apposer sa vision au code (fini les copier-coller et autres solutions trouvées sur Stack Overflow), il est maintenant plus facile d’entrer en cohésion avec le code grâce à l’IA et d’y apporter sa touche personnelle.
Pour résumer, je pense que le “codeur” de demain sera très loin de celui d’hier. Nous n’écrirons plus une seule ligne de code, ou bien pour le fun, comme on peint un tableau aujourd’hui. Mais comme une collaboration où l’outil peut être plus performant que l’utilisateur. Le métier change dramatiquement et ressemblera davantage à un architecte avec une légion d’IA pour faire son travail, plutôt qu’à des équipes massives d’aujourd’hui. Certains ne vont pas apprécier le changement, de nouveaux vont en faire leur vocation. Nous pourrons alors être soit plus productifs, soit allouer ce temps à d’autres tâches. Cela a des implications économiques comme humaines.