L'avenir du développement logiciel sera-t-il fait de « vibe coding » au lieu d'une connaissance technique ?
Accepter un code écrit par l'IA sans en comprendre le fonctionnement devient de plus en plus populaire
Pour de nombreuses personnes, le codage est synonyme de précision. Il s'agit de dire à un ordinateur ce qu'il doit faire et de faire en sorte que l'ordinateur exécute ces actions de manière exacte, précise et répétée. Avec l'essor d'outils d'IA tels que ChatGPT, il est désormais possible de décrire un programme en langage naturel (français par exemple) et de demander au modèle d'IA de le traduire en code fonctionnel sans jamais comprendre comment le code fonctionne. Andrej Karpathy, ancien chercheur d'OpenAI, a récemment donné un nom à cette pratique, le « vibe coding », qui gagne du terrain dans les milieux technologiques (Google a même déclaré générer 25 % de son code par IA). Cette évolution suggère-t-elle un avenir où le développement logiciel reposera davantage sur des intuitions et du « vibe coding » que sur une connaissance technique rigoureuse ?
Le développement logiciel a toujours reposé sur une compréhension approfondie des algorithmes, des structures de données et des principes fondamentaux de la programmation. Pourtant, une tendance émergente soulève des questions sur cette nécessité : l’acceptation croissante du code généré par l’intelligence artificielle, souvent sans réelle compréhension de son fonctionnement. Andrej Karpathy, ancien chercheur d'OpenAI, a récemment donné un nom à cette pratique, le « vibe coding », qui gagne du terrain dans les milieux technologiques.
Cette technique, rendue possible par les grands modèles de langage (LLM) d'entreprises comme OpenAI et Anthropic, a attiré l'attention parce qu'elle pourrait abaisser la barrière à l'entrée de la création de logiciels. Mais des questions subsistent quant à la capacité de cette approche à produire de manière fiable un code adapté aux applications du monde réel, même si des outils tels que Cursor Composer, GitHub Copilot et Replit Agent rendent le processus de plus en plus accessible aux non-programmeurs.
De la programmation maîtrisée à la génération automatisée
Pendant des décennies, coder signifiait comprendre. Les ingénieurs devaient non seulement écrire du code, mais aussi en expliquer chaque ligne, optimiser les performances et anticiper les erreurs potentielles. Cependant, avec l’essor de l’intelligence artificielle générative, ce paradigme évolue rapidement. Des outils comme GitHub Copilot, ChatGPT, ou encore Codeium permettent aujourd’hui de produire des morceaux de code fonctionnels en quelques secondes, souvent sans que l’utilisateur ait à en saisir les subtilités.
Cette automatisation repose sur des modèles d’apprentissage profond qui assimilent des milliards de lignes de code et génèrent des solutions plausibles à partir d’un simple prompt. Les développeurs, notamment les moins expérimentés, peuvent alors intégrer ces suggestions sans réellement comprendre les mécanismes sous-jacents. On assiste ainsi à une montée en puissance du développement basé sur la « vibe » : si le code semble fonctionner et ne génère pas d’erreur apparente, pourquoi s’attarder sur son explication ?
L’illusion de la fiabilité et les risques sous-jacents
Accepter du code généré par IA sans le comprendre pose des risques majeurs. D’une part, les modèles d’IA ne garantissent pas l’exactitude absolue : ils produisent du code plausible, mais pas nécessairement correct. Des biais dans les données d’entraînement, des erreurs subtiles dans la logique ou des failles de sécurité invisibles à première vue peuvent s’y glisser. Or, si l’utilisateur ne maîtrise pas le fonctionnement du code, il lui sera difficile de détecter ces anomalies avant qu’elles ne causent des problèmes en production.
D’autre part, cette approche risque d’accentuer la dépendance des développeurs aux outils d’IA. Une génération de programmeurs pourrait émerger sans connaissance approfondie des bases de la programmation, se contentant d’assembler des fragments de code générés par IA comme des blocs de Lego. Cela pourrait affaiblir leur capacité à déboguer efficacement ou à concevoir des architectures logicielles robustes.
Au lieu d'être une question de contrôle et de précision, le « vibe coding » (littéralement « codage vibratoire ») consiste à s'abandonner au flux. Le 2 février, Karpathy a introduit le terme dans un billet sur X, en écrivant : « Il existe un nouveau type de codage que j'appelle le “vibe coding”, où l'on s'abandonne totalement aux vibrations, où l'on embrasse les exponentielles et où l'on oublie l'existence même du code ». Il a décrit le processus en termes délibérément décontractés : « Je me contente de voir des choses, de dire des choses, d'exécuter des choses et de copier-coller des choses, et cela fonctionne la plupart du temps.
Il existe un nouveau type de codage que j'appelle « codage vibratoire », où l'on s'abandonne totalement aux vibrations, où l'on embrasse les exponentielles et où l'on oublie l'existence même du code. C'est possible parce que les LLM (par exemple Cursor Composer et Sonnet) deviennent trop bons. De plus, je parle à Composer avec SuperWhisper et je touche à peine le clavier. Je demande les choses les plus stupides comme « diminuer de moitié le rembourrage de la barre latérale » parce que je suis trop paresseux pour le trouver. J'accepte toujours tout, je ne lis plus les différences. Lorsque je reçois des messages d'erreur, je les copie-colle sans commentaire, ce qui résout généralement le problème. Le code dépasse ma compréhension habituelle, il faudrait que je le lise vraiment pendant un certain temps. Parfois, les LLM ne peuvent pas corriger un bug, alors je le contourne ou je demande des changements au hasard jusqu'à ce qu'il disparaisse. Ce n'est pas trop grave pour les projets du week-end, mais c'est tout de même assez amusant. Je construis un projet ou une application web, mais ce n'est pas vraiment du codage - je vois juste des choses, je dis des choses, j'exécute des choses, et je copie-colle des choses, et ça fonctionne la plupart du temps.Une technique qui contraste fortement avec les meilleures pratiques traditionnelles de développement de logicielsThere's a new kind of coding I call "vibe coding", where you fully give in to the vibes, embrace exponentials, and forget that the code even exists. It's possible because the LLMs (e.g. Cursor Composer w Sonnet) are getting too good. Also I just talk to Composer with SuperWhisper…
— Andrej Karpathy (@karpathy) February 2, 2025
Pendant le codage, si une erreur se produit, vous la réinjectez dans le modèle d'IA, vous acceptez les changements, vous espérez que cela fonctionne et vous recommencez le processus. La technique de Karpathy contraste fortement avec les meilleures pratiques traditionnelles de développement de logiciels, qui mettent généralement l'accent sur une planification minutieuse, des tests et la compréhension des détails de la mise en œuvre.
Comme Karpathy l'a reconnu avec humour dans son billet d'origine, cette approche constitue l'expérience ultime du programmeur paresseux : Je demande les choses les plus stupides, comme « réduire de moitié le rembourrage de la barre latérale », parce que je suis trop paresseux pour le trouver moi-même. J'accepte toujours tout ; je ne lis plus les différences.
Au fond, cette technique transforme toute personne ayant des compétences de base en communication en un nouveau type de programmeur en langage naturel, du moins pour les projets simples. Les modèles d'IA étant actuellement freinés par la quantité de code qu'ils peuvent assimiler en une seule fois (taille du contexte), il tend à y avoir une limite supérieure à la complexité d'un projet logiciel codé par vibration avant que l'humain au volant ne devienne un gestionnaire de projet de haut niveau, assemblant manuellement des tranches de code généré par l'IA dans une architecture plus vaste. Mais comme les limites techniques s'élargissent avec chaque génération de modèles d'IA, ces limites pourraient un jour disparaître.
Qui sont les « vibe codeurs » ?
Il est impossible de savoir exactement combien de personnes sont actuellement en train de vibrocoder, que ce soit dans le cadre de projets de loisir ou d'emplois dans le domaine du développement, mais Cursor a fait état de 40 000 utilisateurs payants en août 2024, et GitHub de 1,3 million d'utilisateurs de Copilot il y a un peu plus d'un an (février 2024). Le site Replit Agent revendique 30 millions d'utilisateurs, dont un pourcentage inconnu utilise l'agent de codage alimenté par l'IA du site.
L'approche a particulièrement gagné en popularité en ligne en tant que moyen amusant de prototyper rapidement des jeux. Peter Yang, de Microsoft, a récemment fait une démonstration de « vibe coding » dans un fil de discussion X en construisant un simple jeu de tir à la première personne en 3D sur des zombies à l'aide d'invites conversationnelles alimentées par Cursor et Claude 3.7 Sonnet. Yang a même utilisé une application de synthèse vocale pour pouvoir décrire verbalement ce qu'il voulait voir et affiner le prototype au fil du temps.
Débogage en « vibe coding »
Simon Willison, développeur de logiciels indépendant et chercheur en IA, a offert un point de vue nuancé sur la programmation assistée par l'IA : « J'aime beaucoup le vibe coding », a-t-il déclaré. « C'est une façon amusante de tester une idée et de prouver qu'elle peut fonctionner ».
Mais il y a des limites à ce que Willison est prêt à faire : « Il est évidemment risqué de se lancer dans le vibe coding d'une base de code de production. La plupart des travaux que nous effectuons en tant qu'ingénieurs logiciels consistent à faire évoluer des systèmes existants, pour lesquels la qualité et la compréhensibilité du code sous-jacent sont cruciales. »
À un moment donné, il est important de comprendre au moins une partie du code, car le code généré par l'IA peut comporter des bogues, des malentendus et des confabulations - par exemple, des cas où le modèle d'IA génère des références à des fonctions ou à des bibliothèques inexistantes.
« Le vibe coding est très amusant jusqu'à ce qu'il faille déboguer le vibe coding », a noté avec ironie le développeur Ben South sur X, soulignant ainsi ce problème fondamental.
Willison a récemment affirmé sur son blog que le fait de rencontrer des hallucinations avec des outils de codage d'IA n'est pas aussi préjudiciable que d'intégrer de fausses informations générées par l'IA dans un rapport écrit, car les outils de codage intègrent un système de vérification des faits : En cas de confabulation, le code ne fonctionnera pas. Cela fournit une limite naturelle à la fiabilité du codage vibratoire : le code fonctionne ou ne fonctionne pas.Vibe coding is all fun and games until you have to vibe debug
— Ben South (@bnj) March 4, 2025
Malgré cela, le calcul risque/récompense pour le vibe coding devient beaucoup plus complexe dans les environnements professionnels. Alors qu'un développeur solitaire peut accepter les compromis du vibe coding pour ses projets personnels, les environnements d'entreprise exigent généralement des normes de fiabilité et de maintenabilité du code que les solutions de vibe coding peuvent avoir du mal à respecter. Lorsque le code ne fonctionne pas comme prévu, le débogage nécessite de comprendre ce que le code fait réellement - précisément les connaissances que le vibe coding tend à éviter.
Sources : Andrej Karpathy, Simon Willson
Et vous ?
Cette tendance pourrait-elle mener à une perte de savoir-faire en programmation, comme certaines technologies disparues dans le passé ?
Les écoles et universités doivent-elles adapter leur enseignement pour intégrer cette nouvelle réalité ou au contraire insister sur les bases traditionnelles de la programmation ?
À terme, pourrait-on imaginer un monde où les programmeurs ne codent presque plus, mais supervisent uniquement des IA qui génèrent et corrigent le code ?
Si l’IA prend en charge l’écriture du code, quelles compétences deviendront essentielles pour les développeurs de demain ?
Le développement logiciel pourrait-il devenir une activité davantage conceptuelle, centrée sur la conception et la validation plutôt que sur l’implémentation ?
Peut-on comparer cette évolution à l’histoire d’autres métiers automatisés, comme les calculs comptables ou le design assisté par ordinateur ?
Quels sont les dangers d’un code adopté sur la base de son apparence fonctionnelle plutôt que de sa compréhension ?
Comment garantir la sécurité et la robustesse d’un code généré par IA si les développeurs ne comprennent pas entièrement son fonctionnement ?
Faut-il imposer des normes ou des certifications pour encadrer l’utilisation de l’IA dans le développement logiciel ?
Voir aussi :
L'IA peut écrire du code mais ne parvient pas à le comprendre, selon une étude d'OpenAI. Testés sur des tâches réelles de programmation, les modèles les plus avancés n'ont pu résoudre qu'un quart des défis
« Jusqu'à 90 % de mon code est désormais généré par l'IA », d'après Adam Gospodarczyk, qui ravive le débat sur l'impact de l'IA et son aptitude à remplacer les humains dans la filière du génie logiciel
Le « premier ingénieur logiciel IA » loin d'être à la hauteur : Devin a un taux de réussite de 15 %. Des chercheurs notent que l'IA prend des jours pour faire des tâches simples qui auraient pris des heures
Partager