IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Pourquoi le « Vibe Coding » me donne envie de vomir
Par Kush Creates

Le , par Kush Creates

242PARTAGES

16  0 
Un programmeur s'insurge contre le « Vibe Coding » et la tendance dangereuse qui consiste à accepter aveuglément le code généré par l'IA sans le comprendre. Découvrez pourquoi cette approche est en train de détruire le plaisir et l'art de la programmation.

Pour votre information, le Vibe Coding consiste à utiliser des LLM et des chatbots IA pour réaliser votre projet et à vibrer avec le code que le LLM vous donne.


Introduction

Vous souvenez-vous de l'époque où programmer signifiait comprendre son code ? Quand le débogage ne consistait pas simplement à coller des erreurs dans une IA ? Lorsque vous pouviez expliquer comment votre application fonctionnait réellement ?

Cette époque est apparemment révolue, si l'on en croit le récent X Post (Tweet) d'Andrej Karpathy sur le « Vibe Coding ». Il s'agit d'une approche troublante où les programmeurs abandonnent leur métier à des outils d'IA en espérant que tout se passe bien. En tant que personne ayant passé des années à perfectionner ses compétences en programmation, je trouve cette tendance non seulement préoccupante, mais carrément dangereuse.

Karpathy a donc lâché cette perle absolue sur le « Vibe Coding » et j'ai failli recracher mon troisième café de la matinée sur mon clavier. Si je comprends bien, nous sommes maintenant FIER de ne pas comprendre notre propre code ? Cool cool cool. Une approche totalement durable de l'ingénierie logicielle.

Ecoutez, je diffuse des solutions de code sur StackOverFlow depuis de nombreuses années. Vous vous souvenez de cette période sombre ? Lorsque vous deviez LIRE LA DOCUMENTATION ? Et maintenant, nous avons Mr. « J'ai cofondé OpenAI » qui se vante en toute décontraction de vibrer avec son code comme s'il s'agissait d'une sorte de trip technologique sous acide.

Laissez-moi vous expliquer pourquoi « vibrer » avec votre code donné par l'IA au lieu de le comprendre est le chemin le plus rapide vers la catastrophe technique et pourquoi les vrais développeurs devraient s'opposer à cette tendance bizarre.



La montée du développeur qui "accepte tout"

Citation Envoyé par @karpathy sur X
J'"accepte toujours tout", je ne lis plus les diffs.
C'EST. QUOI. CE. BORDEL.

Oh cool, cool. Alors on se contente d'appuyer sur le bouton « Accepter tout » comme s'il s'agissait d'un jeu de morpion ? Je peux déjà sentir les conflits de fusion qui se préparent comme une mauvaise tasse de café que quelqu'un a laissée dans la salle de repos pendant trois jours.

Je veux dire, bien sûr Andrej, c'est très bien quand vous construisez un joli petit projet de week-end dont personne ne dépend. Mais certains d'entre nous travaillent sur des systèmes où « Accepter tout » est l'équivalent numérique de jouer à la roulette russe avec cinq balles chargées.

Laissez-moi vous dépeindre mon mardi de la semaine dernière :

  1. Un développeur junior a « vibré » avec la base de code
  2. Personne n'a revu les changements parce que YOLO, n'est-ce pas ?
  3. Le serveur de production a pris feu à 2 heures du matin
  4. Devinez qui a été bipé ? Pas les vibrations, c'est sûr.


L'écart de compréhension

Citation Envoyé par @karpathy sur X
Le code se développe au-delà de ma compréhension habituelle, il faudrait que je le lise vraiment pendant un certain temps.
Si ce n'est pas la phrase la plus terrifiante qu'un développeur puisse lire, je ne sais pas ce que c'est. Bien sûr, Andrej, construisons une maison dont nous n'avons aucune idée de l'emplacement des murs porteurs. Qu'est-ce qui pourrait bien aller de travers ?

Ce n'est pas un badge d'honneur, mais un drapeau rouge de la taille du Texas. Lorsque vous ne comprenez pas votre propre base de code, vous n'êtes plus un développeur. Vous êtes juste une personne extrêmement inefficace qui n'a jamais appris à coder et qui se contente d'utiliser l'IA.

Les étapes suivantes sont prévisibles :

  1. Un code incompréhensible entraîne un comportement imprévisible.
  2. Un comportement imprévisible conduit à un code non structuré, à des bidouillages et à des solutions de contournement.
  3. Les bidouillages et les solutions de contournement conduisent à un code encore plus incompréhensible.
  4. Répétez l'opération jusqu'à ce que votre dépôt GitHub soit légalement considéré comme une scène de crime.

C'est comme si "je laissais mon enfant concevoir mon portefeuille financier en sélectionnant au hasard les actions en fonction des logos d'entreprises qui ont les plus jolies couleurs." Sauf que le bambin est une IA qui a été entraînée sur StackOverFlow, y compris toutes les réponses désapprouvées.

Ecoutez, je vais vous révéler un petit secret qui, apparemment, doit être dit en 2025 : LES BONS INGÉNIEURS COMPRENNENT LEUR CODE.

Cette connerie de « Vibe Coding » est l'équivalent en programmation de fermer les yeux en conduisant parce que votre Tesla est sur Autopilot. Ça marche très bien jusqu'à ce que vous vous retrouviez enroulé autour d'un arbre en vous demandant pourquoi l'IA ne l'a pas vu venir.

Ce n'est pas vraiment du codage

Écoutez les gars, je ne suis pas contre l'assistance de l'IA. J'utilise Copilot, ChatGPT, Claude depuis qu'ils ont été lancés, et ils sont vraiment utiles pour les modèles simples. Mais il y a une différence entre le « codage assisté par l'IA » et le spectacle d'horreur décrit par Andrej Karpathy.

Le vrai codage implique la compréhension. Le débogage. La résolution de problèmes. La satisfaction de comprendre enfin pourquoi cette fichue fonction ne cesse de retourner undefined et NaN à 2 heures du matin. L'effroi existentiel lorsque vous réalisez que c'est parce que vous avez mal orthographié quelque chose et que vous n'avez pas essayé de relire la fonction correctement. Ce sont ces expériences authentiques qui nous façonnent en tant que développeurs !

La philosophie du « contournement des bogues »

Citation Envoyé par @karpathy sur X
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.
Oh mon dieu, c'est en train de me faire réagir. C'est comme réparer sa voiture en frappant différentes parties avec un marteau jusqu'à ce que le bruit bizarre s'arrête. Bien sûr, le bruit s'est arrêté ! Le problème sous-jacent ? On s'en fout ! VIBES !

Cette programmation équivaut à donner un coup de pied à votre fichue télévision jusqu'à ce que l'image revienne. Très professionnel. Très durable.

Je jure que je recevrai un appel d'un recruteur dans 6 mois :
« Nous recherchons un ingénieur Vibe senior avec plus de 10 ans d'expérience dans l'intégration exponentielle, et plus de 5 ans à oublier que le code existe. »

« Hey, pourquoi notre application se plante-t-elle en production ? »
« Aucune idée, mec. J'ai juste continué à lui donner des coups de bâton jusqu'à ce qu'elle arrête de faire ce truc sur ma machine ».

Ce n'est pas ce que je pensais que le « Vibe Coding » serait

Lorsque j'ai entendu parler de « Vibe Coding » dans les cercles de programmation, j'ai pensé qu'il s'agissait de vibrer avec des collègues et des amis programmeurs pour réaliser des projets ensemble, juste pour le plaisir. Vous savez, la vraie collaboration humaine, le partage d'idées, la programmation en binôme tout en partageant une pizza et des boissons énergisantes à minuit.

Mais non. La définition actuelle du « Vibe Coding » est apparemment la suivante : « Abandonner son pouvoir intellectuel à une IA et espérer que tout se passe bien ». C'est la porte d'entrée vers l'enfer de la programmation. La prochaine chose que vous saurez, c'est que vous serez dans une réunion à essayer d'expliquer aux utilisateurs de X, pourquoi l'application continue d'envoyer les informations de la carte de crédit des utilisateurs à un canal Telegram aléatoire.

« Ce n'est pas un bug », direz-vous, la sueur coulant sur votre front, « c'est une vibration ».

Le tsunami de dette technique

Parlons de la dette technique. Le codage normal en crée déjà suffisamment et nous avons tous écrit ce hack de code « temporaire » qui est toujours en production cinq ans plus tard. Mais le « Vibe Coding », c'est comme si vous preniez une hypothèque à haut risque sur votre base de code et que vous mettiez immédiatement le feu à vos comptes.

Lorsque vous ne comprenez pas votre propre code, vous créez non seulement des dettes, mais aussi des dettes dont vous ne soupçonnez même pas l'existence jusqu'à ce qu'elles vous tombent dessus. C'est comme jouer au Jenga les yeux bandés, en état d'ébriété et avec de la vodka dans une main.

Titre : Une application supprime aléatoirement les données de l'utilisateur lorsque Mercury est en rétrograde
Description : Aucune idée de la raison pour laquelle cela se produit. Les ondes doivent être éteintes.
Priorité : Peut-être élevée ? Qui sait ?

La mort des compétences de débogage

Il y a une satisfaction particulière à déboguer correctement un problème complexe. Suivre la piste des miettes de pain, mettre en place le cas de reproduction parfait, réduire le problème étape par étape. C'est un peu comme si vous étiez un détective du code.

Avec le « Vibe Coding », cette compétence est remplacée par « coller l'erreur dans l'IA et prier ». Lorsque cela ne fonctionne pas, la solution consiste apparemment à « demander des changements aléatoires jusqu'à ce que le problème disparaisse ».

Il ne s'agit pas de débogage, mais d'exorcisme numérique. « LE POUVOIR DE L'IA VOUS ATTIRE ! » asperge le clavier d'eau bénite.

Le copier-coller des messages d'erreur

Citation Envoyé par @karpathy sur X
Lorsque je reçois des messages d'erreur, je les copie-colle sans commentaire, ce qui règle généralement le problème.
Oh là là. C'est comme si tu disais que tu allais donner toutes les erreurs et tous les bugs de ton application et que tu attendais en te disant « Cette fois-ci, ce sera réparé sans drame ». Parfois, ça marche ! Jusqu'à ce que ce ne soit pas le cas, et que vous ayez à faire face à un mal de tête pour résoudre ce problème à 3 heures du matin parce que vous n'avez jamais compris pourquoi cette erreur/bogue particulière s'est produite en premier lieu.

Laissez-moi vous dépeindre cette approche :

Le développeur : *collage d'un message d'erreur*
LLM : J'ai corrigé le problème en ajoutant un délai d'attente.
Développeur : *3 semaines plus tard* Pourquoi ma base de données se bloque-t-elle ?
LLM : Ajoutons un autre délai d'attente !
Développeur : *2 mois plus tard* Pourquoi ma base de données se bloque-t-elle ? *2 mois plus tard* Pourquoi tout mon système est-il un château de cartes construit sur des délais arbitraires ?
LLM : Avez-vous envisagé une carrière dans le management ?
L'illusion de la productivité

Bien sûr, vous pouvez construire quelque chose plus rapidement avec cette approche au début. Vous vous émerveillerez de la rapidité avec laquelle votre application prend forme, de la facilité avec laquelle les fonctionnalités semblent se matérialiser. Vous vous direz : « C'est génial, je suis 10 fois plus productif ! ».

Puis la réalité frappe. Le château de cartes s'effondre. Votre base de données est corrompue. Votre gestion des états est un cauchemar de dépendances circulaires. Votre CSS est plus une guerre des spécificités qu'un véritable stylisme. Et le pire, c'est que vous n'avez aucune idée de la façon de réparer tout cela parce que vous ne l'avez jamais compris.

C'est comme si vous prétendiez être un peintre productif parce que vous pouvez rapidement jeter des seaux de peinture au hasard sur une toile. Certes, vous avez couvert la toile rapidement, mais qu'avez-vous créé exactement ?

La fin de la propriété du code

Il y a quelque chose de profondément satisfaisant à regarder un morceau de code et à savoir que c'est vous qui l'avez écrit. Ce qui est encore mieux, c'est de revisiter un code que...
La fin de cet article est réservée aux abonnés. Soutenez le Club Developpez.com en prenant un abonnement pour que nous puissions continuer à vous proposer des publications.

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de Waikiki
Membre averti https://www.developpez.com
Le 03/09/2025 à 21:40
On le paiera dans les années à venir avec l'explosion de failles en tout genre à cause du code générer par IA non revérifié derrière.
7  0 
Avatar de Souil002
Membre du Club https://www.developpez.com
Le 21/08/2025 à 10:23
Je pense surtout que tout ceux qui se reposent uniquement sur le "vibe-coding" pour créer leur application n'ont aucune vision de l'avenir de leur produit et cherchent surtout à faire un produit qui fonctionne le plus rapidement possible pour mettre en place leur idée.

Certains iront plus loin et si l'idée fonctionne ils essaieront de faire un produit plus fiable et d'autre verront juste leur produit couler quand les utilisateurs se rendront compte qu'il n'évolue pas ou quand les créateurs eux-mêmes verront que ce n'est pas maintenable.

Le vide-coding pour faire des petites applications qui simplifient le travail ou la "vie" en général, ça reste intéressant car ça fait gagner du temps tout en étant des petites bases de code maintenable même si la qualité du code n'est pas là.
6  0 
Avatar de richard
Membre éclairé https://www.developpez.com
Le 08/09/2025 à 10:03
Dijkstra (80's) : «It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration

2020's : “It is practically impossible to teach good programming to students that have had a prior exposure to vibe coding : as potential programmers they are mentally mutilated beyond hope of regeneration”*

Rien n'a changé on tourne en rond
5  0 
Avatar de RenarddeFeu
Membre averti https://www.developpez.com
Le 31/03/2025 à 15:49
Le déclin présent et à venir du métier de programmeur a des causes structurelles qui vont bien au-delà de l'avènement de l'IA.
3  0 
Avatar de selmanjo
Membre régulier https://www.developpez.com
Le 03/09/2025 à 7:03
Ce fut une expérience dévastatrice pour mes 3 neurones me restant. Ça bousille le cerveau pour les gens pure en abstraction.
2  0 
Avatar de ludovicdeluna
Membre du Club https://www.developpez.com
Le 06/09/2025 à 13:33
Vous souvenez-vous de cette publicité sur les bonbons Kiss Cool ? Il y a deux effets, le 1er est généralement super. Le second l'est nettement moins. C'est mon ressenti avec l'IA.

Je ne peux que partager la vision des développeurs senior. Oui, on peut produire quantité de code, de façon simple, et ce code est généralement à peut près fonctionnel lorsqu'on a pris le temps de comprendre comment exploiter l'IA. C'est le premier effet Kiss Cool. J'ai été impressionné et j'ai compris que le monde du développement de demain serait radicalement différent.

Et puis, il y a eut...

...Le second effet Kiss Cool. Lorsqu’on prend de la distance après quelques années. Que constate t-on ? Que cette quantité phénoménale doit être maîtrisée vis à vis de comportements de plus en plus difficile à analyser. L'IA est toujours utile, mais elle fait parti également du problème qui amène à cette situation.

Je ne comprend pas cette hérésie à parler de "codage". A quel moment on fait du codage (transformation d'un éléments vers une autre forme qui garde l'équivalence de l'original) ? Nous faisons de l'architecture, nous devrions simplifier les choses en étant critique envers l'existant.

Aujourd'hui, je produis moins de code. C'est une philosophie et un objectif. Mais l'IA est une plaie à ce niveau.

Est-ce là l'envie irrationnelle d'avoir un produit moins évolué ? Non. C'est l'application d'observations et de pratiques évidentes que l'on enseignait déjà dans les années 90, et qui étaient elle-même le fruit de recherches sur les 20 ans qui les ont précédées. C'était avant qu'on parle d'agilité, de design pattern. Bien que l'absence de ces termes soit surprenante, la lecture des ouvrages de l'époque laisse voir sans édulcorant les fondamentaux de ces pratiques. Mais nous n'avons retenu que l'aspect superficiel depuis... Et je suis gentil en le disant.

Je trouve que nous somme devenus amnésiques dans les années 2000. Et l'IA a simplement rendu toute critique encore moins accessible, ce qui accélère cette frénésie à la production massive, ou devrais-je dire : de codage (un terme d'abrutis).

Réfléchir plus. Écrire moins. Aiguiser son sens critique. Il n'y a rien d'exceptionnel la dedans, et l'IA n'apporte rien sur ces sujets. Mais pour produire, lorsqu'on a pas le choix (par manque de maîtrise ou que le résultat n'a pas une grande plus-value), alors oui : l'IA est bluffante.
2  0 
Avatar de Michka1111
Nouveau membre du Club https://www.developpez.com
Le 28/05/2025 à 15:19
RdEX : Retour d'EXpérienceS
"Coder AVEC" : Ce n'est ni l'IA qui écrit mon code, ni moi qui recopie son code. J'ai essayé, ça n'a pas marché.
Au début, J'ai prompté la description de l'appli que je voulais faire, il n'en est pas ressorti grand chose, si ce n'est qu'il me fallait apprendre à lui parler et à lire entre les lignes de ses réponses, prose ou code. Une chose est sure : c'est plaisant.
J'ai vite compris qu'il fallait lui préciser le contexte, en particulier évaluer sa connaissance des mots-clés des concepts.
Cela me rafraichissait la mémoire, et alimentait la conversation.
J'ai compris ensuite que "poser le contexte" est synonyme de "présenter les conversants", Je lui précise donc à qui je veux m'adresser, avec l'expert de quel domaine j'engage la conversation.
Ensuite, j'explore ses connaissances du domaine.
C'est plus récemment que j'ai compris qu'il faut lui préciser ce que j'attends des réponses : certains LLM commentent systématiquement, à d'autres il faut le leur demander.
Ceci évolue d'ailleurs rapidement, au fil des apprentissages mutuels "automatiques" (les siens) et "manuels" (les miens), des versions, d'avec ou sans Internet, au fil des algorithmes de réponses, de mise en forme, de conversation.
Ollama.exe, par exemple, est mis à jour régulièrement, et je vois les différences en surveillant la consommation mémoire du gestionnaire de tâches toujours au premier plan.
Comme la conversation est plaisante, c'est productif, toutes les réponses m'apportent quelque chose.
J'ai été surpris des réponses en français, J'ai vite compris qu'il traduisait ma question et sa réponse grâce à quelques "coquilles" qui m'ont fait mélanger des mots anglais à mes phrases en français pour être sûr qu'il comprenne certains mots-clés. C'est toujours d'actualité.
Bref, le mot d'ordre est "vivre avec son temps" mais avec mes acquis.
C'est donc TRÈS productif.
Notamment si c'est un langage que je ne connais pas ou pas bien.
Je suis resté baba en lisant son code de génération d'un fichier "play-list" de vidéos pour VLC à partir du résultat d'une requête SQL en LibreOffice Basic sur la base LibreOffice Base que je venais de créer.
Mais je travaille AVEC lui. Ni moi pour lui, ni lui pour moi : il m'assiste.
C'est bien du "codage assisté". Ni plus, ni moins.
La syntaxe est TOUJOURS correcte, LibreOffice Basic, bash, Python, ffmpeg pour ce que je lui ai demandé, et il y a ajouté java spontanément avec l'API objet OpenOffice / LibreOffice.
L’algorithmique, par contre, est presque toujours incorrecte.
Parce qu'il fait du "bachotage", si vous voyez ce que je veux dire…
Et comme chez moi c'est l'inverse, je trouve en lui mon complément de production idéal.
Les résultats ?
- Appli LOBase qui requête un schéma étoile des matches de la NFL et qui produit des playlists pour VLC des vidéos sélectionnées.

- script bash / ffmpeg.exe qui convertit mes films en hevc 600p, me faisant gagner ~2.5x en volume stocké (239 vidéos passés de 307Go à 135Go). Soit de 1,2Go / film à 0.56Go / film en moyenne.
Et il a lui-même paramétré ffmpeg pour faire ça !
$FFMPEG_PATH -i "$(wslpath -w "$file"" -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2,scale=trunc((iw*${TARGET_HEIGTH}/ih)/2)*2:${TARGET_HEIGTH}" -c:v libx265 -crf ${FFMPEG_CRF} -preset ${FFMPEG_PRESET} -c:a copy "$(wslpath -w "$output_file""
À part certaines variables, je n'ai rien changé, et j'ai gardé les valeurs des variables FFMPEG.
Reste un bug dans bash pour boucler sur une liste regex/ls de fichiers en entrée qui ne traite qu'un film lorsque le script appelle cmd.exe /C ffmpeg.exe. Mais ça me va bien comme ça pour l'instant.

- extension personnalisée pour Sphinx/ReStructuredText en Python (en cours) avec Workspace VSCode et TDD.

Et j'utilise Bing Copilot, VSCode + Chat( Github Copilot) + Continue( Ollama(Llama3.2, DeepSeek-coder-v2(16B) en local)). Si j'ai Internet, c'est VSCode+Chat( Github Copilot), si j'ai pas Internet, c'est VSCode+Continue( Deepseek-coder-v2) en Chat ou en Edit sur Ollama en local, donc avec un LLM jusqu'à 16B avec 20Go RAM Ryzen 5 2500U Lenovo Ideapad 330.

Il est clair que le retour arrière est impensable.
;-*
1  0 
Avatar de selmanjo
Membre régulier https://www.developpez.com
Le 03/09/2025 à 7:04
Je ne recommande pas pour/sur un projet sérieux.
2  1 
Avatar de MisterMoa
Nouveau Candidat au Club https://www.developpez.com
Le 03/09/2025 à 16:03
Citation Envoyé par totozor Voir le message
Ce n'est pas mon domaine d'expertise mais peut on vraiment "coder sans comprendre" et Ã* la fin arriver Ã* un résultat conforme.
Je ne suis pas codeur mais représentant des utilisateurs et donc testeur, et un combo de tests réaliser par des codeurs et des "gens qui utilisent" fait qu'on évite d'avoir des plaintes inattendues après mise en prod - ce qui me suggère des fonctionnalités bien codées (et donc comprises?).
Ici c'est coder sans comprendre. Ce n'est pas lire sans comprendre.
1  0 
Avatar de RenarddeFeu
Membre averti https://www.developpez.com
Le 04/09/2025 à 4:27
Qui dit "Vibe Coding" ne dit pas nécessairement coder sans comprendre. L'IA génère un code qu'il faut reprendre par la suite. Typiquement en C++ : ajouter le constructeur/destructeur de classe, le constructeur de copie (ou à défaut empêcher la copie), la gestion des exceptions, la gestion du threading, utiliser les shared_ptr là où c'est possible, etc..

C'est normal que les séniors soient plus enclins à utiliser l'IA puisqu'ils ont normalement un regard critique sur le code généré.
4  3