1 points par GN⁺ 2026-03-23 | 1 commentaires | Partager sur WhatsApp
  • Programmer est un acte créatif qui consiste à affiner progressivement des spécifications ambiguës avec précision, et l’IA accélère ce processus en transformant des spécifications en anglais en code
  • Le « vibe coding » permet une approche plus intuitive du développement, mais il ne peut pas éviter les problèmes de complexité et de bugs dus aux fuites d’abstraction
  • Les humains utilisent l’abstraction et la compression pour gérer la complexité, et c’est là une valeur essentielle de la programmation
  • À l’ère de l’AGI, l’IA devrait aider à créer de meilleures abstractions et permettre la création de code plus sophistiqué et plus artistique
  • Contrairement à l’idée selon laquelle « le code est mort », l’IA est présentée non comme la fin du codage, mais comme un outil ouvrant un nouveau départ

La mort du code est une affirmation exagérée

  • En soulignant l’ambiguïté des spécifications en anglais et les limites de leur précision, l’article explique que programmer consiste, comme écrire, à augmenter la précision par itérations successives
    • Une citation de Bertrand Russell souligne que « tout est vague tant qu’on n’a pas essayé de le rendre précis »
    • L’IA transforme rapidement des spécifications rédigées en anglais en code exécutable, ce qui permet à l’utilisateur de préciser progressivement le résultat souhaité
  • Le « vibe coding » est une manière de développer en réagissant intuitivement aux résultats générés par l’IA, mais cela peut donner l’illusion d’une abstraction exacte
    • Lorsque l’abstraction fuit, des bugs inattendus apparaissent, et le problème s’aggrave à mesure que l’échelle augmente
    • Comme dans le cas présenté par Dan Shipper, un éditeur de texte collaboratif créé en « vibe coding » a gagné en popularité avant de tomber à cause de problèmes de complexité
    • La « collaboration en direct » paraît intuitivement simple, mais c’est en réalité un problème très difficile, ce qui montre la nature même de la complexité

Abstraction et maîtrise de la complexité

  • L’être humain ne peut appréhender qu’environ 7±2 éléments à la fois, donc la seule manière de gérer la complexité est la « compression », c’est-à-dire l’abstraction
    • Une citation d’Edsger Dijkstra souligne que « le but de l’abstraction n’est pas l’imprécision, mais la précision à un nouveau niveau de sens »
    • L’exemple de Sophie Alpert simplifiant un diagramme complexe de flux de notifications de Slack est cité
  • Le cœur de la programmation est la création de meilleures abstractions pour traiter la complexité, et l’on peut en trouver la beauté dans des approches comme la programmation réactive fonctionnelle
    • Même des problèmes intrinsèquement complexes, comme les éditeurs de texte collaboratifs, peuvent être progressivement maîtrisés grâce à des outils d’abstraction comme ReactJS ou TailwindCSS

L’ère de l’AGI et le rôle du code

  • À mesure que l’IA progresse et devient plus rapide et moins coûteuse, elle finira par atteindre une intelligence indiscernable de celle des humains (AGI)
    • À l’ère de l’AGI, chacun pourra disposer à faible coût d’une intelligence aussi puissante que « 100 génies du niveau de Karpathy »
    • Mais cela ne servira pas à produire « davantage de mauvais code » ; ce sera plutôt un outil pour de meilleures abstractions et une meilleure compréhension de la complexité
  • Le code n’est pas seulement un moyen de créer des logiciels, c’est aussi un produit artistique important en soi, et un code bien écrit est comparé à de la poésie
    • De même qu’il n’existe pas de « vibe writing » en écriture, le codage ne peut pas non plus être remplacé par un simple geste intuitif
    • Quand l’AGI arrivera, les machines pourront écrire du code non-slop, ce qui constituera un progrès glorieux pour l’humanité

IA et amélioration de la qualité du code

  • Aujourd’hui encore, l’IA produit du code imparfait, mais les développeurs l’utilisent en tenant compte de cette limite
    • Comme le souligne Simon Willison, l’IA doit être utilisée comme un outil pour produire un meilleur code
    • Lorsque l’AGI apparaîtra, elle sera d’abord mobilisée pour résoudre les problèmes d’abstraction les plus difficiles, afin d’améliorer des systèmes complexes comme les bibliothèques d’éditeurs collaboratifs
  • Un exemple est donné avec le développement, à l’aide d’Opus 4.6, du framework React full stack (vtrr) pour Val Town
    • Des problèmes non résolus liés à React Router 7 ont été réglés d’un seul coup, avec une démo en fichier unique de 50 lignes qui traite la complexité avec élégance
    • Cela montre qu’il est possible de créer un code sophistiqué grâce à une collaboration entre l’IA et l’humain

L’avenir du code et la valeur du formalisme

  • Une grande partie de la société croit que « le code est mort », mais c’est la même erreur que de déclarer la fin des histoires à cause de l’invention de l’imprimerie
    • L’IA ne signifie pas la fin du codage, mais un nouveau commencement pour le codage
  • Des citations d’Edsger Dijkstra, Tony Hoare et Charles Babbage soulignent que la pensée formelle et la puissance de compression des symboles étendent les capacités de la pensée humaine
    • Dijkstra explique que l’usage des langages formels doit être vu non comme une contrainte, mais comme un privilège
    • Hoare oppose deux approches : « une conception simple manifestement exempte de défauts » et « une conception complexe dont les défauts ne sont pas manifestes »
    • Babbage souligne que la compression des symboles est une force qui stimule la pensée
  • En conclusion, le code n’est pas mort ; au contraire, il s’impose comme un outil créatif encore plus puissant à l’ère de l’IA

1 commentaires

 
GN⁺ 2026-03-23
Réactions sur Hacker News
  • Chris Lattner a examiné un compilateur écrit avec Claude AI, et selon lui il n’y avait rien de révolutionnaire
    L’IA a tendance à recombiner en moyenne des connaissances existantes, et ne peut donc pas produire d’elle-même une pensée critique ou de nouveaux paradigmes
    Les humains peuvent penser en dehors du consensus existant, tandis que l’IA a une force qui la ramène vers ce consensus
    Au final, l’IA est conformiste (conformist), et c’est à la fois sa force et sa faiblesse
    Article lié

    • Pour moi, les LLM sont surtout utiles lorsqu’il faut intégrer plusieurs systèmes
      Au lieu de passer des heures à comprendre directement dans la documentation des configurations d’authentification complexes comme OAuth ou SAML, un LLM peut rapidement produire du code d’intégration fonctionnel
      Je m’en sers aussi comme d’un rubber duck debugging pour clarifier mes idées en discutant avec l’IA
      Ce type d’échange atteint un niveau de complexité difficile à tenir pour quelqu’un qui n’a pas de véritable expérience de développement
    • Je pense que la question de savoir si l’IA remplace l’humain n’est pas binaire, mais relève d’un spectre
      La vraie inquiétude, c’est de savoir si l’IA réduit la demande au point de créer une surabondance d’offre dans le secteur
      Si de nouveaux problèmes business continuent d’apparaître, l’IA aidera comme outil ; sinon, les emplois diminueront avec ou sans IA
    • L’idée que « l’IA génère ses réponses près du centre de la pensée existante » est liée au théorème d’approximation universelle (Universal Approximation Theorem)
      Les réseaux neuronaux font essentiellement de l’interpolation, pas de l’extrapolation
      Autrement dit, ils sont précis dans la zone apprise, mais imprévisibles en dehors
      L’article Wikipedia et l’exemple SolidGoldMagikarp l’illustrent bien
    • Je pense que l’évaluation de Lattner est une comparaison injuste
      L’objectif de Claude n’était pas d’innover, mais de prouver que « l’IA peut-elle construire un compilateur ? »
      Quand on voit des cas comme AlphaDev ou AlphaEvolve, on peut tout à fait envisager que l’IA produise réellement de l’innovation par apprentissage exploratoire et combinaison de connaissances
    • Il est vrai que l’IA suit une pensée conventionnelle, mais c’est justement aussi sa force
      Dans la plupart des cas, nous voulons des outils prévisibles, pas une entité instable qui apprend toute seule
      L’IA sait mettre de l’ordre dans des exigences contradictoires pour produire une implémentation cohérente
      Par exemple, face à une demande impossible comme « dessine 7 lignes rouges avec de l’encre bleue », elle peut répondre de façon logique
      Le fait que Claude ait réellement répondu « c’est impossible, donc dessiner 0 ligne est la réponse la plus honnête » est un exemple de pensée critique
  • À la question « l’IA peut-elle créer de nouvelles technologies ? », je suis sceptique
    Comme l’IA dépend de données existantes, l’apparition de nouveaux langages ou frameworks pourrait entraîner un risque de ralentissement de l’évolution faute de données d’entraînement suffisantes

    • Mais le software connaît déjà un ralentissement du rythme de changement des outils
      Le coding avec IA pourrait au contraire réduire la « réinvention de la roue » et aider à sortir du syndrome NIH
    • Moi, j’utilise un modèle d’IA avec un nouveau framework
      Même avec très peu de données d’entraînement, il peut lire la documentation, écrire du code et tenter de nouvelles approches
    • L’idée selon laquelle seuls les humains peuvent créer du nouveau repose sur des bases fragiles
      Il faut laisser ouverte la possibilité qu’un jour l’IA puisse aussi faire de la synthèse technologique créative
    • Le vrai problème plus large, c’est que les frameworks sur lesquels l’IA n’a pas été entraînée sont traités comme s’ils n’existaient pas
      Au final, on pourrait entrer dans une époque où les développeurs devront payer pour figurer dans les données d’entraînement de l’IA
    • Il existe déjà des tentatives pour résoudre ce problème
      Par exemple, des plateformes comme skills.sh proposent un système de compétences pour apprendre de nouveaux frameworks aux IA
      Avec seulement de la documentation et des exemples de code, l’IA peut alors utiliser immédiatement le framework concerné
  • J’ai des sentiments contradictoires vis-à-vis du code
    Dans le travail, le code est une dette, mais c’est aussi un plaisir comme hobby
    J’ai l’impression qu’un monde à la Star Trek, où l’on demande quelque chose à voix haute et où l’ordinateur s’en charge, se rapproche

    • Mais pour certains, l’avenir façon Star Trek et la réalité actuelle vont dans des directions totalement opposées
  • Une grande partie des ressources intellectuelles de la société est utilisée pour l’adtech ou l’industrie de la surveillance
    Si l’IA remplace le coding, cela pourrait devenir une occasion de redéployer les talents

    • Mais ce type d’objectifs industriels ne disparaît pas facilement par simple évolution technologique
  • Je suis en train de créer un CRDT capable de déplacer, supprimer et trier dans une structure en arbre sans tombstone
    Claude Code écrit bien le code, mais essaie sans cesse d’ajouter des tombstones, donc j’ai dû le convaincre par une preuve logique
    Il semble que l’IA ne maîtrise pas encore totalement ce niveau de compréhension structurelle fine

    • On m’a recommandé d’utiliser Codex pour ce genre de projet
  • Chaque fois qu’une nouvelle technologie apparaît, l’humanité traverse toujours une période d’attentes excessives et d’expérimentation
    C’est à travers ce processus qu’elle apprend les limites d’une technologie
    La promesse de la programmation agentique paraît très séduisante, mais au final tout le monde apprendra la réalité par tâtonnements

  • Plutôt que de dire que « le code est mort », je pense que l’humain est en train de monter d’un niveau d’abstraction
    Désormais, on peut écrire une spécification en anglais et l’IA produit le code
    Mais quand on a besoin d’une précision (specificity) absolue, le code reste plus utile
    Comme pour la retouche photo, quand on a besoin d’un contrôle fin, il vaut mieux faire soi-même, mais dans la plupart des cas il suffit de déléguer à l’IA
    Je pense qu’avec le temps, l’IA écrira mieux que les humains du code stable et hautement sécurisé

    • Bien sûr, si un jour le taux de bugs humains devient supérieur à celui des LLM, les erreurs humaines pourraient devenir un problème plus grave que les hallucinations de l’IA
  • Comme l’a dit Simon Willison, la vraie valeur du vibe coding n’est pas de faire « plus vite », mais de produire du meilleur code
    On peut générer des prototypes à partir de plusieurs modèles de conception, puis les améliorer par itérations selon des critères de lisibilité, fiabilité et tolérance aux pannes

    • J’ai le même espoir
      Désormais, en code review, quand on dit « changeons cette partie comme ceci », l’IA l’applique immédiatement
      Mais beaucoup de collègues n’attendent qu’une chose : un monde où « le code disparaît »
  • Il y a quelque temps, un article disait que Donald Knuth avait demandé une preuve à une IA, et que celle-ci avait trouvé une preuve auparavant inconnue
    Mais il est plus probable qu’il ne s’agisse pas d’une découverte nouvelle, mais de la redécouverte d’un document oublié
    C’est ce qui fait des LLM un puissant outil de recherche, tout en leur donnant parfois l’apparence de la créativité

    • Comme dans la phrase attribuée au directeur de l’office des brevets en 1899, « tout a déjà été inventé », la créativité humaine continue d’évoluer
    • Construire un compilateur C n’est pas aussi difficile qu’on pourrait le croire
      Avec le Dragon Book, on peut fabriquer quelque chose de fonctionnel en quelques mois et comprendre tous les principes au passage
    • De nouvelles avancées dans les langages continueront d’apparaître, comme les innovations qu’a montrées C# au début des années 2000
    • En réalité, C n’est pas si complexe, et on pourrait sans doute faire un compilateur en quelques jours
  • Je pense que les langages de programmation sont un moyen de compresser l’intention humaine
    Mais parfois, le langage naturel permet de transmettre l’intention de façon plus précise et plus dense
    Une bonne abstraction consiste à réduire cet écart, et les DSL ou les langages de la famille ML/Lisp en sont des exemples
    Par exemple, comme dans ce tutoriel Electric Clojure, le code peut parfois être la meilleure façon d’exprimer l’intention
    Au fond, comme l’a dit Wittgenstein, « une image floue peut parfois être exactement ce qu’il nous faut »

    • À cela, j’aimerais ajouter cette phrase de Dijkstra : « le but de l’abstraction n’est pas l’ambiguïté, mais la clarté à un nouveau niveau de sens »