Programmation Vibe
Qu’est-ce que la programmation vibe ?
Programmation Vibe est une méthode de programmation alimentée par l’IA introduite par Andrej Karpathy en 2024/2025. Avec la programmation vibe, vous décrivez ce que vous voulez via des invites en langage naturel et généralement les grands modèles de langage (LLMs) génèrent la majeure partie, souvent la totalité, du code fonctionnel pour vous. Si vous avez le temps, consultez L’Art de la programmation vibe adapté par Rick Rubin pour en apprendre davantage sur la voie de la programmation vibe.
Un grand avantage de cette nouvelle méthode est l’accessibilité, car des personnes sans expérience en programmation peuvent créer des projets tandis que des développeurs expérimentés peuvent prototyper rapidement de nouvelles idées avant de s’engager pleinement. Cela est particulièrement utile pour les startups. L’inconvénient est que les développeurs ne comprendront très probablement pas entièrement le fonctionnement du code généré. Pour de petits projets personnels, cela passe, mais pour des logiciels en production cela peut entraîner des problèmes à long terme et de la dette technique.
Il existe de nombreux outils qui rendent la programmation vibe plus fluide. Cursor IDE, Claude Code CLI, GitHub Copilot, Loveable, Replit, v0, et d’autres vous permettent de travailler avec l’IA directement dans votre environnement ou fournissent des interfaces dédiées pour la programmation vibe. Personnellement, je me suis surtout appuyé sur Cursor IDE et Claude Code CLI pour ces projets.
Voici cependant le point important. Ces outils et modèles coûtent de l’argent. Avec la programmation traditionnelle, vous payez principalement en temps. Avec la programmation vibe, vous payez avec votre portefeuille. Et si vous ne savez pas ce que vous faites, vous payez à la fois avec votre portefeuille et votre temps. Chacun des projets de cette page coûte environ $10 à $20 à construire. Cela s’accumule si vous expérimentez beaucoup. Je pense toutefois qu’à mesure que ces modèles s’amélioreront et deviendront plus efficaces, le coût finira par baisser. Pour l’instant, c’est quelque chose à prendre en compte lorsque vous décidez si la programmation vibe a du sens pour votre projet.
Curieux de ce qui est possible, j’ai essayé la programmation vibe moi-même et j’ai créé cette page pour explorer le principe à travers des projets concrets. Je ne me contente pas de construire des produits, je teste et démontre ce dont la programmation vibe est réellement capable. C’est juste pour le plaisir, mais cela offre un aperçu de ce à quoi la programmation pourrait ressembler à l’avenir à mesure que ces modèles s’améliorent.
Théorème du singe infini
Vous avez déjà entendu parler du théorème du singe infini ? C’est une expérience de pensée philosophique qui dit que si vous donnez des singes infinis des machines à écrire infinies et du temps infini, éventuellement l’un d’eux produira les œuvres complètes de Shakespeare simplement en frappant au hasard les touches.
Ça semble ridicule, non ? Mais voici la partie folle. La programmation vibe est en quelque sorte comme ça, sauf qu’au lieu de singes nous avons des modèles d’IA, au lieu de machines à écrire nous avons des langages de programmation, et au lieu de Shakespeare nous obtenons des logiciels fonctionnels.
Réfléchissez-y. Les grands modèles de langage sont entraînés sur des milliards de lignes de code, de motifs et d’exemples. Lorsque vous donnez une requête à un LLM, il ne « réfléchit » pas réellement à votre problème pas à pas comme le ferait un développeur humain. Au lieu de cela, il prédit le jeton le plus probable suivant en se basant sur les motifs qu’il a appris pendant l’entraînement. Il fait essentiellement des suppositions éclairées en générant du code basé sur ce qui semble statistiquement correct.
Et d’une manière ou d’une autre, la plupart du temps, ça fonctionne. Le modèle produit du code qui compile, s’exécute et résout votre problème. Pas par compréhension, mais par correspondance probabiliste de motifs à une échelle absolument massive. C’est comme si le générateur de texte aléatoire le plus sophistiqué de l’univers trouvait la « bonne » réponse. Mais ici, la différence est la vitesse. Ces singes auraient besoin d’une infinité littérale. Votre IA ? Y arrive en quelques secondes ou minutes.
Donc d’une certaine manière, lorsque vous utilisez la programmation vibe, vous exploitez des millions de lignes de motifs de code, distillées dans un modèle, pour générer des solutions. Ce n’est pas une résolution de problème consciente, c’est de la magie statistique. Et c’est précisément pour cela que c’est si puissant et, il faut l’admettre, pourquoi il est toujours important de comprendre ce que le code fait réellement.
La question compte plus que la réponse
Voici quelque chose d’important qui passe souvent inaperçu. La programmation vibe ne consiste pas à obtenir une réponse quelconque, elle consiste à poser la bonne question. Pensez au superordinateur Deep Thought de Le Guide du voyageur galactique. Il a passé des millions d’années à calculer la réponse à la question ultime sur la vie, l’univers et tout le reste, pour ne vous donner que le nombre 42. La réponse était techniquement correcte, mais inutile parce que le véritable problème était de déterminer quelle question poser en premier lieu.
La programmation vibe fonctionne de la même manière. Vos requêtes sont tout, mais la gestion du contexte l’est tout autant. Une requête vague vous donnera du code vague, et si vous ne fournissez pas les bons fichiers, la documentation ou des exemples comme contexte, le modèle ne comprendra pas ce dont vous avez réellement besoin. Si vous êtes quelqu’un qui comprend le codage, l’architecture et la conception des systèmes, vous pouvez rédiger des requêtes détaillées et sélectionner le bon contexte pour orienter le LLM vers d’excellentes solutions. Mais si vous ne savez pas quoi demander ou quel contexte fournir, l’IA non plus.
C’est en fait la raison pour laquelle la programmation vibe est si puissante pour les développeurs expérimentés. Nous savons à quoi ressemble un bon code, nous comprenons les pièges, et nous pouvons écrire des requêtes qui poussent le modèle à les éviter. Pour les débutants sans formation technique, cela devient une vraie limitation. Vous pouvez obtenir du code fonctionnel, mais sans comprendre ce qui a mal tourné ou quoi demander ensuite, vous êtes bloqué.
Quand la programmation vibe ne suffit pas
Les derniers modèles d’IA sont impressionnants, mais ils ne sont pas une solution miracle. La programmation vibe peut fonctionner en production, mais seulement si vous la prenez au sérieux. Vous avez besoin de tests unitaires robustes. Vous avez besoin de sources de vérité claires pour ce que votre système doit faire. Vous devez détecter quand les choses se cassent ou dérivent. Et vous avez besoin de l’état d’esprit du hacker. Pensez différemment et essayez de casser votre projet codé par vibe de façons inattendues. Quels cas limites n’avez-vous pas envisagés ? Quelles vulnérabilités de sécurité quelqu’un pourrait-il exploiter ? C’est ce qui sépare le code qui fonctionne simplement du code qui est réellement robuste.
Voici la chose toutefois. L’IA ne vous possède pas. Vous possédez l’IA. N’acceptez pas simplement ce qu’elle génère. Passez-le en revue. Testez-le. Cassez-le. Et honnêtement, pour certaines parties de votre base de code, vous devrez revenir au codage à l’ancienne. Concentrez-vous, réfléchissez profondément, écrivez-le vous-même. La programmation vibe accélère les choses, mais ce n’est pas un remplacement de la programmation réelle quand cela compte.
Il y a une autre chose que j’ai apprise. Parfois, vous devez simplement terminer une session avec l’IA et en démarrer une nouvelle. À mesure que l’historique de vos conversations s’allonge, les performances du modèle se dégradent. Il commet plus d’erreurs, génère du code moins cohérent et commence à halluciner plus fréquemment. Si vous ne le remarquez pas et que vous continuez, ces erreurs s’accumulent les unes sur les autres, rendant les choses de plus en plus mauvaises. C’est comme essayer de lire un document qui a été photocopié encore et encore. Repartir à zéro permet de garder les choses propres et nettes.
Projets codés avec la programmation vibe
Ci-dessous se trouvent deux projets, stairs (repo) et transcendental (repo), que j’ai construits en utilisant la méthodologie de la programmation vibe. Principalement générés à partir de requêtes, avec un travail manuel limité à la fourniture de contexte, au débogage et au déploiement sur GitHub Pages. Ce sont des expériences de sites statiques amusantes qui montrent ce qui est possible lorsque vous combinez des idées créatives avec du code via la programmation vibe. Les deux sont hébergés sur GitHub.