
Ayesha - stock.adobe.com
Plaidoyer contre le Vibe Coding
Le Vibe Coding est-il une mauvaise idée pour les entreprises ? L’IA peut produire des résultats plus rapidement que la programmation manuelle, mais ses avantages finissent par se tarir en raison de coûts cachés et de complexités. Voici pourquoi.
Ces derniers mois, le Vibe Coding est apparu comme une nouvelle approche du développement logiciel. Elle émerge en particulier de la montée en puissance d’outils assistés par l’IA générative tels que ChatGPT, Copilot et d’autres systèmes propulsés par de grands modèles de langage.
Qu’est-ce que le Vibe Coding ?
Le Vibe Coding est une méthode de développement reposant sur l’IA générative et sur une approche décontractée de la conception logicielle, fondée sur l’essai et l’erreur.
En français, on pourrait le traduire par l’étrange expression « programmation à l’instinct ».
Dans le développement traditionnel, un développeur conçoit, code, teste et améliore le logiciel de manière itérative. Avec le Vibe Coding, l’on demande à l’IA de générer une réponse « intuitive », qui devrait fonctionner. Si la première version ne fonctionne pas ou produit des erreurs, il suffit de supprimer le code défectueux et de générer une autre version, en espérant tomber accidentellement sur un code qui fonctionne, ou du moins sur quelque chose qui semble fonctionner.
En outre, le Vibe Coding décourage le débogage. Selon les partisans de cette approche, il ne s’agit pas de comprendre pourquoi le code a échoué. Il faut aller vite et se fier à la prochaine supposition de l’IA. Le développeur est réduit au rôle d’un éditeur peu rigoureux plutôt qu’à celui d’un ingénieur chargé de résoudre les problèmes.
Les avantages perçus du Vibe Coding
L’attrait du Vibe Coding est facile à comprendre, surtout avec les progrès rapides de l’IA générative.
Avec un bon prompt, les grands modèles de langage peuvent générer des solutions qui prendraient des heures, voire des jours, à un développeur pour les produire manuellement. Pour un œil non averti, cela semble être l’avenir du génie logiciel pour plusieurs raisons.
Vitesse de développement pour les petits projets
Pour les petits utilitaires, les scripts et les outils uniques, le Vibe Coding peut vraiment être plus rapide que la programmation manuelle. Vous avez besoin d’un script Python pour analyser un fichier CSV et générer des tableaux de bord ? Le Vibe Coding peut vous permettre d’y parvenir en une ou deux générations, ce que l’on appelle le « one-shotting » dans la terminologie dédiée. Cette « technique » peut également réduire considérablement le délai entre l’idée et l’exécution pour les prototypes, les preuves de concept ou l’automatisation de tâches banales.
Économies
D’un point de vue commercial, le Vibe Coding paraît moins cher. Les abonnements à l’IA sont beaucoup moins coûteux que l’embauche d’une équipe de développeurs. Une IA capable de générer un prototype ou un produit minimum viable en quelques heures, au lieu de quelques semaines, réduit les coûts initiaux et accélère les délais. Et les parties prenantes non techniques voient des résultats rapides.
Pourquoi le Vibe Coding est une mauvaise idée
Ces avantages superficiels s’évaporent et les défauts deviennent flagrants lorsque cette approche est appliquée à plus large échelle ou à un problème de plus en plus complexe.
Les limites avec des bases de code plus importantes
Les applications telles que ChatGPT ou GitHub Copilot ne comprennent pas vraiment les systèmes qu’ils génèrent. Ils prédisent le prochain token ou modèle de code le plus probable sur la base de leurs données d’apprentissage. Cela signifie que s’ils excellent dans la génération de modèles standard ou courants, ils ont du mal à gérer l’optimisation, l’architecture et les cas limites. Bien qu’ils sont entraînés à généraliser leurs connaissances, tout ce qui n’est pas standard ou qui ne figure pas dans leur jeu de données d’apprentissage leur pose un problème.
Le Vibe Coding s’effondre complètement avec les grandes bases de code, où les décisions architecturales dictent le succès à long terme. L’IA ne suit pas la conception globale ; elle ne se souviendra pas que la fonction qu’elle a générée il y a trois générations est incompatible avec le module qu’elle génère ensuite. Les dépendances deviennent un véritable fouillis et des bugs subtils se glissent dans le code.
Le débogage est contraire aux principes du Vibe Coding
Justement. Dans le développement traditionnel de logiciels, le débogage est un processus essentiel. Les erreurs sont attendues et leur résolution permet de mieux comprendre le fonctionnement du code.
Comme le Vibe Coding tend à passer cette étape, au fur et à mesure que les systèmes se développent, les problèmes sont moins liés à des erreurs de syntaxe qu’à des bugs logiques, des effets secondaires, des conditions de course et une mauvaise architecture. L’IA n’est pas en mesure de corriger utilement ses propres résultats. Les développeurs qui tentent de déboguer le code généré par l’IA, en particulier le code qu’ils n’ont pas écrit ou compris, auront du mal à faire de la rétro-ingénierie sur la façon dont il fonctionne.
Les cauchemars de l’assistance et de la maintenance
La programmation ne s’arrête pas à la fin de la compilation. Les organisations doivent mettre à jour, corriger et soutenir leurs logiciels au fil du temps. Le code généré par l’IA est souvent fragile ; il fonctionnera juste assez pour passer un simple test, mais il manque d’efficacité, de documentation ou même d’un style cohérent.
Les futurs développeurs chargés de maintenir les projets codés par l’IA hériteront d’une boîte noire sans conception claire, avec des commentaires minimaux et une logique construite par régénération aléatoire. Réparer ou développer ce code sera un cauchemar, et finalement la seule option possible sera de tout réécrire à partir de zéro, ce qui effacera toutes les « économies » initiales réalisées grâce au Vibe Coding.
Coûts cachés et échecs à long terme
Le Vibe Coding semble être une bonne affaire parce que ses coûts réels sont cachés.
Dès qu’un projet va au-delà d’une démo ou d’un script unique, le Vibe Coding présente les défauts suivants :
- Les défauts de conception du système empêchent la mise à l’échelle et obligent à des réécritures coûteuses.
- Le remaniement du code généré par l’IA est pénible et prend beaucoup de temps.
- Les exigences en matière de tests montent en flèche parce que l’IA ne garantit pas l’exactitude ou ne couvre pas les cas limites.
- Les bugs complexes introduits tôt se multiplient et deviennent catastrophiques plus tard.
Les entreprises qui misent trop sur le Vibe Coding risquent de se retrouver piégées : incapables de corriger leur produit, incapables de le faire évoluer. Elles risquent de se retrouver coincées avec un code spaghetti que personne ne veut toucher. Les économies perçues s’évaporent, remplacées par des coûts de remaniement et de réparation en constante augmentation.
Conclusion
Le Vibe Coding est séduisant. Il promet la rapidité, la réduction de l’effort cognitif et un développement moins coûteux. Pour les petits projets éphémères, il peut tenir ces promesses.
Cependant, le génie logiciel ne consiste pas seulement à produire un code qui fonctionne, mais à concevoir des systèmes fiables et faciles à maintenir, qui peuvent évoluer au fil du temps. Le Vibe Coding ignore ces principes et remplace la discipline de l’ingénierie par la roulette russe de l’IA. Sur le temps long, ce n’est pas viable.
L’avenir de l’IA dans la programmation est prometteur, mais le Vibe Coding à lui seul n’en fait pas partie. Les véritables gains de productivité seront obtenus lorsque l’IA améliorera l’ingénierie humaine.
David « Walker » Aldridge est un développeur avec 40 ans d’expérience dans plusieurs langages et dans la programmation à distance. Il est également un administrateur système expérimenté et un membre d’une blue team en cybersécurité, intéressé par l’informatique rétro.