3 points par GN⁺ 2025-02-04 | 1 commentaires | Partager sur WhatsApp
  • Dans un environnement de développement basé sur les LLM, proposition d’un nouveau concept de « vibe coding », où l’utilisateur ne rédige pas directement le code mais produit le résultat via le dialogue et des commandes
  • En utilisant Cursor Composer et SuperWhisper, le code est modifié par commandes vocales, avec un travail réalisé à partir de simples demandes comme « réduis de moitié le padding de la barre latérale »
  • Utilisation d’un flux de correction automatique consistant à approuver en bloc avec « Accept All » sans lire les modifications de code (diff), puis à copier-coller les messages d’erreur tels quels pour les résoudre
  • Le code devient progressivement plus complexe et difficile à comprendre, mais cela fonctionne suffisamment bien pour des projets expérimentaux de week-end
  • Un jeu de Battleship dans lequel deux LLM s’affrontent en temps réel a aussi été créé de la même manière, avec la remarque selon laquelle « 4o est plus fort que 4o-mini »

Concept de vibe coding

  • Le « vibe coding » est une méthode de développement qui privilégie le flux et l’intuition plutôt que l’écriture du code
    • L’utilisateur ne se soucie pas de la structure détaillée du code et accepte tel quel le résultat proposé par le LLM
    • L’expression « on en oublie même que le code existe » souligne une expérience de développement centrée sur l’IA

Outils utilisés et méthode de travail

  • Génération du code à l’aide de Cursor Composer et du modèle Sonnet
    • Grâce à SuperWhisper, l’utilisateur dialogue vocalement avec Composer et utilise très peu le clavier
  • Demandes de modification formulées par de simples commandes comme « réduis de moitié le padding de la barre latérale »
    • Les modifications de code (diff) ne sont pas relues et sont validées avec « Accept All »
    • Il suffit généralement de copier-coller les messages d’erreur sans explication supplémentaire pour obtenir une correction

Gestion du code et limites

  • Plus le code grossit, plus il devient complexe au point d’être difficile à comprendre
    • Si un bug n’est pas résolu, le problème est éliminé en contournant la difficulté ou en répétant des demandes de corrections arbitraires
  • Cette approche convient aux projets de court terme et expérimentaux, mais présente des limites pour les systèmes complexes

Projet expérimental : jeu de Battleship

  • Création d’un jeu de Battleship en environ une heure de vibe coding
    • La structure fait s’affronter en temps réel deux modèles de LLM
    • Mention d’une observation informelle selon laquelle « 4o est plus fort que 4o-mini »
  • Il n’existe pas encore de statistiques détaillées ni de mesures comparatives de performance

Contexte général

  • Cela montre qu’avec les progrès des LLM, un développeur peut générer rapidement une application fonctionnelle sans manipuler directement le code en détail
  • Le vibe coding peut être vu comme un exemple expérimental d’un nouveau paradigme de programmation centré sur l’IA

1 commentaires

 
GN⁺ 2025-02-04
Avis sur Hacker News
  • Chaque année, on pense que les standards de qualité logicielle ne peuvent pas tomber plus bas, et pourtant on se rend compte à chaque fois qu’on avait tort

    • Je ne comprends pas pourquoi on se donne la peine de faire quelque chose qu’on ne fera même pas correctement
    • C’est comme clouer à la va-vite des morceaux de bois mal coupés pour fabriquer un pseudo-siège, puis s’asseoir dessus
    • Certains disent « on a parfois juste besoin d’un endroit où s’asseoir », mais j’ai quand même l’impression qu’il faut un minimum de finition
    • J’ai vu des personnes, peu sûres d’elles en anglais, devenir totalement dépendantes des LLM, au point d’y perdre leur capacité d’expression et leur confiance
    • En logiciel, on sait rarement dès le départ qu’on est en train de fabriquer une « chaise »
      • Au fond, ce n’est qu’un autre nom pour la programmation exploratoire ou le prototypage
    • Parfois, la destination n’est pas ce qui compte ; on veut juste arriver quelque part rapidement
      • C’est comme reprocher à quelqu’un d’être fatigué et de s’asseoir un instant par terre
    • Ces temps-ci, je m’inquiète de voir disparaître le sens du réel qui veut que le code s’exécute sur du matériel bien concret
      • Beaucoup de jeunes développeurs ne comprennent pas les conséquences physiques du code
      • Je pense que l’IA et tout son hype finiront par retomber un jour, mais la bataille pour préserver la qualité doit continuer
  • Moi aussi, j’éprouve du plaisir à faire de petits projets de cette manière

    • Mais en matière de sécurité, impossible de bâcler les choses
    • Il est arrivé plus d’une fois qu’un assistant de code IA crée une API sans authentification ou génère des templates exposés aux risques de XSS
    • J’utilise des LLM tous les jours, mais je suis convaincu que le rôle des ingénieurs sécurité restera très important à l’avenir
  • Cette approche donne l’impression d’un livrable produit par quelqu’un qui code en mangeant

  • J’ai peur que commencer à coder de cette façon fasse régresser la capacité à résoudre des problèmes difficiles

    • Mais d’autres disent qu’on peut toujours continuer à traiter soigneusement à la main les parties qui l’exigent
    • En contrepartie, le ticket d’entrée pour essayer de nouvelles choses baisse, ce qui permet d’explorer bien plus librement
  • On voit de plus en plus de développeurs natifs de l’IA qui apprennent dès le départ de cette manière

    • On a l’impression qu’on est entré dans une époque où il s’agit moins de coder que de gérer des codeurs IA
  • Des outils de type « WYSIWYG modifiable en langage naturel » risquent d’avoir une falaise de complexité brutale, comme les limites des outils RAD

  • Certains disent qu’« on ne devrait pas apprendre comme ça », mais je pense qu’il est important d’ajuster le niveau de finition à l’effort fourni

    • Le Vibe Coding est une bonne méthode pour apprendre et explorer
    • Cela peut ouvrir un nouveau spectre effort–fini
    • Cela dit, comme le disait Fred Brooks, si la première tentative est insuffisante, il faut savoir la jeter sans hésiter
      • S’accrocher à une première implémentation produite par un LLM peut enfermer dans un mauvais point d’ancrage, sans avoir vraiment compris le problème
  • Je pense que pour le CSS, le Vibe Coding suffit largement

    • Mais d’autres rétorquent qu’en tenant compte de l’accessibilité et du responsive design, ce n’est pas si simple
    • Un CSS bien conçu est au contraire concis et facile à maintenir
    • Y ajouter de l’IA peut même devenir contre-productif
    • Quelqu’un d’autre raconte avoir entièrement réalisé avec Claude un petit utilitaire web
    • Une autre personne explique avoir créé de la même façon une DSL de recherche basée sur React ou un éditeur de pipeline GUI, preuve que cette approche va au-delà du simple CSS