Programmation automatique
(antirez.com)- antirez définit le processus d’écriture de logiciels avec l’assistance de l’IA comme de la « programmation automatique » (Automatic Programming), et estime que cela deviendra bientôt le standard de la production logicielle
- Même avec le même LLM, le résultat peut varier fortement selon l’intuition humaine, la conception et les ajustements continus de direction
- Le vibe coding consiste à laisser l’IA faire sans grande compréhension, tandis que la programmation automatique suppose une vision claire et un contrôle du développeur
- Même le code généré par l’IA repose sur des données de préapprentissage accumulées par les humains et sur leur jugement, et la propriété du résultat revient au développeur
- La programmation s’automatise de plus en plus, mais les idées et la vision restent encore du domaine humain
Définition du concept d’Automatic Programming
- Le processus consistant à écrire des logiciels avec l’aide de l’IA est appelé programmation automatique (Automatic Programming)
- Cette approche deviendra bientôt le processus standard d’écriture de logiciels
Différence avec le vibe coding
- Le vibe coding est une manière de générer un logiciel avec l’IA sans participer du tout au processus
- Si l’on décrit ce que l’on veut en termes très généraux, le LLM produit alors la première idée / conception / code qui lui vient naturellement, en fonction de ses données d’entraînement et de l’échantillonnage propre à cette exécution
- Au mieux, le vibe coder se contente de signaler ce qui ne fonctionne pas ou ce qui diffère des attentes
- La programmation automatique vise une haute qualité et suit rigoureusement la vision logicielle du producteur
- Cette vision est multicouche : elle va de la manière exacte d’exécuter une tâche donnée jusqu’au fait d’indiquer directement à l’IA comment écrire une fonction précise
- Ce qu’il faut faire est aussi un élément central
Importance du facteur humain
- Même avec le même LLM, les résultats varient fortement selon l’intuition, la conception, les ajustements continus de direction et les idées sur le logiciel de la personne qui pilote le processus
- Dire « Claude a fait ce logiciel en vibe coding » n’est pas une formulation appropriée
- Si l’on comprend ce qui se passe et que l’on produit réellement le logiciel, alors il s’agit bien du logiciel que l’on produit soi-même
Point de vue sur la propriété du code
- Les données de préapprentissage ne sont pas la seule chose qu’apprend un LLM (le RL a aussi un poids important), mais elles sont produites par les humains
- Il ne s’agit donc pas de s’approprier quelque chose d’autre
- On peut considérer le code généré par l’IA comme « à nous », et on est en droit de le faire
- Le préapprentissage est un cadeau collectif qui permet à beaucoup de personnes de faire des choses qu’elles ne pourraient jamais accomplir seules
- Comme si l’on était relié, d’une certaine façon, à un esprit collectif
- Le code généré par programmation automatique est votre code, votre résultat, votre production, et vous pouvez en être fier
Le cas de Redis
- Redis n’a rien de particulièrement novateur sur le plan technique
- À ses débuts, ce n’était rien de plus qu’un assemblage de structures de données de base et de code réseau qu’un programmeur systèmes compétent aurait pu écrire
- Pourtant, il est devenu un logiciel extrêmement utile grâce aux idées et à la vision qu’il contient
Conclusion
- La programmation est désormais automatisée, mais la vision ne l’est pas encore
1 commentaires
Avis Hacker News
Avec plus de 30 ans de carrière dans le secteur, je me suis récemment plongé à fond dans le développement piloté par les spécifications (spec-driven development)
J’utilise Claude Code et GPT-5.2 (CoPilot) pour générer les exigences, puis j’affine les specs en répétant plusieurs cycles d’auto-revue (self-review)
Une fois la spécification finalisée, Claude Code rédige le plan d’implémentation et le code, et les fonctionnalités principales sont prêtes en 20 minutes
Cela me rappelle la méthode waterfall de mon époque dans l’industrie de la défense, mais grâce à l’IA, j’ai l’impression qu’une approche bien plus rapide et raffinée d’« augmented cascade » est désormais possible
L’agile était une réponse de survie pour les entreprises incapables de réunir ces conditions et devant livrer vite
Je me demande s’il existe des exemples publics de specs qui vaillent le détour. Comme la génération précédente admirait le code de Quake de John Carmack, la suivante célébrera peut-être d’excellentes spécifications
Les humains ne peuvent pas anticiper toute la complexité et tous les cas particuliers. Quand on construit réellement, il y a toujours un moment où l’on se dit : « à ça, je n’avais pas pensé »
Si les exigences sont déjà claires, ce n’est pas vraiment nécessaire
La différence, c’est qu’on utilise des LLM au lieu d’équipes en dessous
Références : Design by Contract (Goodreads), PDF original
Je ne suis pas d’accord avec l’expression selon laquelle le pré-entraînement (pre-training) serait « le cadeau collectif de l’humanité »
Si c’est volé, ce n’est pas un cadeau
Même si un code est généré par un LLM, si j’en prends la responsabilité et que je le maintiens, alors je considère que c’est mon code
Le problème apparaît quand l’auteur se dérobe à sa responsabilité
En utilisant Claude Code et Opus 4.5, je suis arrivé à une conclusion similaire
J’appelle cela le « zen coding ». On traite la base de code comme un jardin zen, on conçoit soigneusement les spécifications et on relit ligne par ligne
L’IA ne doit pas agir comme concepteur, mais comme outil
Celui qui dispose de spécifications claires peut obtenir un code de bien meilleure qualité avec l’IA
Le vibe coding est une expérimentation intuitive, le zen coding est une discipline d’artisan
Quand j’entends des formulations du genre « Claude me l’a donné », j’ai tout de suite l’impression que le code a encore un côté brouillon
Il ne faut ni blâmer l’outil ni s’en excuser : il suffit d’améliorer le résultat
L’expression « le pré-entraînement est un cadeau de l’humanité » me met mal à l’aise
Beaucoup de développeurs open source ne voulaient pas que leur code serve à l’entraînement des LLM
Une partie du code généré par les LLM reprenait parfois presque mot pour mot du code que j’avais vu dans des livres ou des blogs
À minima, je pense qu’indiquer la source est une question d’éthique
Si un LLM a été entraîné sur du code GPL, on peut défendre l’idée que ses résultats devraient eux aussi être publiés sous GPL
Par exemple, Kafka avait demandé qu’on brûle ses manuscrits, et ils sont aujourd’hui devenus des classiques de la littérature
Dans les années 1950-60, l’« automatic programming » désignait en réalité les compilateurs
Les 4GL des années 1980 étaient des langages de haut niveau spécialisés par domaine, et les LLM d’aujourd’hui n’en sont encore qu’au stade de la génération de brouillons à partir de spécifications en langage naturel
Au final, les humains doivent toujours améliorer le résultat par itérations successives et changements de conception
Nous sommes peut-être en train d’assister à la dernière génération de développeurs-artisans (artisanal coders)
Des artisans comme Antirez manipulent des concepts qui dépassent les limites humaines ordinaires et produisent des logiciels simples et élégants comme Redis
L’IA peut générer du code à une vitesse impossible pour les humains, mais ce n’est ni le pinceau ni la toile
La nouvelle génération sera artisan d’une manière complètement différente
Moi aussi, cela m’inquiète, mais j’accueille ces nouveaux outils tout en expérimentant une nouvelle ère de l’artisanat
La seule nouveauté, c’est qu’il faut en plus savoir bien manier l’IA ; les connaissances existantes ne deviennent pas inutiles pour autant
J’ai trouvé marquante, dans le texte d’Antirez, la distinction claire entre « vibe coding » et « automatic programming »
C’est un changement comparable au passage, en architecture, du dessin manuel au BIM et à la CAO
À l’ère de l’IA, les développeurs ne codent pas moins : c’est le centre de gravité de la valeur qui change
« vibe coding vs automatic coding » n’est pas une dichotomie, mais un spectre
On peut mélanger plusieurs niveaux d’approche dans un même projet
L’essentiel est d’utiliser l’outil avec esprit critique et de l’améliorer en continu
Certains appellent cela le « spec strumming »