Depuis l'apparition d'outils comme Github Copilot, Windsurf, Cursor, et plus généralement des LLM (Large Language Models), une nouvelle pratique de développement a vu le jour : le vibe coding.
Cette pratique visant à produire rapidement et sans effort du code complexe grâce à l’intelligence artificielle bouleverse les repères traditionnels du développement logiciel.
Avec cette approche, le développeur ne part plus d’une conception rigoureuse ou d’un plan détaillé.
Il devient un ingénieur de prompt et explore les capacités de l'IA à générer la majorité, ou même la totalité du code.
Mais si cette pratique peut sembler efficace, voire exaltante, elle n’est pas sans poser de sérieuses problématiques, notamment en matière de sécurité, de qualité de code ou encore de maintenabilité.
Qu'est-ce que le Vibe coding ?
Le terme de "Vibe coding" a été popularisé sur X par le célèbre ingénieur en intelligence artificielle Andrej Karpathy, ayant notamment travaillé pour OpenAI.
There'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
Il existe un nouveau type de programmation que j'appelle « vibe coding », qui consiste à s'abandonner totalement aux vibrations, à embrasser les exponentielles et à oublier l'existence même du code.
Son idée est que les développeurs adoptant cette approche s'abandonnent aux "vibes", et décident de se focaliser sur le résultat attendu en oubliant totalement que le code existe.
Ce n'est pas si mal pour les projets de 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 de la programmation - 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 en grande partie.
Ainsi, le vibe coding semble être une bonne approche pour des petits projets personnels ou des scripts ayant un but bien défini.
Mais que se passe-t-il lorsqu'on l'utilise pour des applications accessibles au public ?
Le vibe coding est une approche de développement qui a émergé avec l'arrivée des LLM, consistant à déléguer la majeure partie de la conception et du développement à l'intelligence artificielle.
Depuis la mise à disposition de ChatGPT au grand public, beaucoup de développeurs l'ont adopté comme un réel outil d'assistance au quotidien.
À tel point qu'il en deviendrait presque un collègue à part entière.
Très vite, sont arrivés de nouveaux outils basés sur les LLM dédiés au développement applicatif.
Le premier ayant vraiment marqué les esprits est sans doute Github Copilot, un véritable assistant de développement, guidant le développeur en lui proposant du code généré qui s'adapte au contexte (langage de programmation, frameworks utilisés, objectif de l'application, etc...).
Mais ça ne s'est pas arrêté là, puisque d'autres solutions encore plus puissantes ont depuis fait leur apparition.
Parmi elles, on peut citer Cursor, Windsurf, Claude Code, Roo Code ou encore Cline.
Ces solutions implémentent un système de chat intégré, permettant aux développeurs de demander clairement à l'IA de concevoir et écrire le code nécessaire à la création ou la modification d'une fonctionnalité.
On peut voir le vibe coding comme une nouvelle forme de programmation "no-code", c'est à dire une programmation qui ne repose pas directement sur un langage de programmation.
En l’occurrence, cette méthode repose tout simplement sur une langue vivante comme le français, l’anglais, ou toute autre langue comprise par l’intelligence artificielle.
Toute personne cherchant à développer un site web ou application mobile, et qui ne souhaite pas, ou ne peut pas apprendre le JavaScript, le Swift, le Kotlin (et autres), peuvent alors se tourner vers une alternative comme que le vibe coding.
Il faut cependant bien différencier cette méthode de développement avec l'utilisation de l'IA comme assistant de développement.
Si un LLM a écrit chaque ligne de votre code, mais que vous l'avez revu, testé et compris, il ne s'agit pas de vibe coding, mais d'une utilisation d'un LLM comme assistant de programmation.
- Simon Willison
Les dangers du vibe coding
Hal, génère moi une application complète, robuste, sécurisée et facile à maintenir sans que je ne fasse quoi ce soit...

I. Du code peu sécurisé
L'un des problèmes du code généré via IA est qu'il se base souvent sur des fonctionnalités datant de quelques années, et donc potentiellement dépréciées.
L'entraînement de ces IA est fait avec différentes ressources extraites sur le web. Malheureusement, le code présent sur internet n'est pas toujours le plus adapté, efficient ou sécurisé.
La conséquence de cela ?
Il est facile de générer des applications pleines de failles de sécurité.
Et puisque le code généré dans ce contexte ne sera probablement jamais relu (ou même compris), il sera alors difficile d'identifier les failles en question lors de la phase de développement.
Comment percevoir une vulnérabilité dans un algorithme lorsqu'on ne le comprend pas réellement ?

II. Du code difficile à maintenir
Le développeur qui s’appuie sur le vibe coding n’a bien souvent qu’une compréhension partielle, voire inexistante, du code qu’il intègre.
Ainsi du code mort peut s’accumuler au fil des prompts, sans que personne ne réalise qu’il est devenu inutile, créant une véritable dette technique.
Le code généré par IA étant assemblé à partir de prompts unitaires, il peut se révéler inadapté face à la globalité de l'application.
L'IA peut manquer de contexte et sacrifier de l'expérience utilisateur sur une fonctionnalité A afin de développer une fonctionnalité B.
Les noms de variable peuvent également être peu précis, car générés pour une fonctionnalité bien précise, le développeur ne prenant pas forcément le temps de les modifier.
III. Du code peu, voire pas du tout testé
Par défaut, l’IA ne génère presque jamais de tests — qu’ils soient unitaires, d’intégration ou end-to-end — sauf si elle en reçoit la consigne explicite. Or, un développeur peu sensibilisé à l’importance des tests ne pensera pas forcément à en demander. Résultat : le code devient une zone à risque.
La moindre modification peut casser une fonctionnalité existante sans qu'il ne soit possible de le détecter facilement.
Dans ce contexte, intervenir manuellement revient à marcher sur un champ de mines.
Conclusion
Le vibe coding est à la fois fascinant et inquiétant.
Fascinant, car il promet une révolution dans la manière de concevoir des logiciels, où la vitesse de développement atteint des sommets et où la technique ne semble plus être un frein à la créativité.
Inquiétant, car il repose sur un équilibre fragile entre confiance aveugle en la machine et responsabilité humaine.
Certes, les outils d’IA deviennent de plus en plus performants, notamment dans leur capacité à comprendre le contexte d’un projet, à suggérer des solutions cohérentes, voire même à anticiper les besoins du développeur.
Mais cette évolution ne doit pas occulter les risques réels : fuites de données, dette technique, failles de sécurité ou performances dégradées.
Le vibe coding sera-t-il à l’origine des prochaines grandes catastrophes logicielles ?
Ou au contraire, donnera-t-il aux développeurs un moyen de constamment accélérer leur productivité tout en recentrant leur attention sur l’expérience utilisateur ?
Tout dépendra de la manière dont nous choisirons de les utiliser.
Un grand pouvoir implique de grandes responsabilités