- Même si un projet est mené à terme avec de l’IA générative, si la personne qui l’a demandé et celle qui l’a réellement produit ne sont pas les mêmes, il est difficile d’en tirer le sentiment d’accomplissement de « je l’ai fait »
- Les prompts demandent de la vision, du jugement, de la communication et de la technique, mais cela se rapproche davantage de la capacité à confier la réalisation à une autre entité que du savoir-faire de fabrication directe
- Un système de flashcards en espagnol de 177 lignes écrit à la main a pris environ 50 fois plus de temps qu’avec Claude, mais a procuré une fierté bien plus grande que n’importe quel code produit par l’IA
- Alors que le compilateur, l’assembleur et le marteau semblent être des outils du fabricant, une IA qui répond au langage humain ressemble à une personne à qui l’on donne des instructions, ce qui brouille la frontière entre outil et exécutant délégué
- Générer via l’IA peut aussi être un acte créatif, mais achever un résultat et fabriquer soi-même ne procurent pas la même satisfaction personnelle, et cette frontière reste difficile à définir clairement
Le sentiment d’accomplissement que l’IA change dans le développement
- Les développeurs qui utilisent l’IA générative et les LLM vivent des évolutions contradictoires
- Ils peuvent perdre l’artisanat du code écrit à la main, la résolution de problèmes bas niveau et une part du plaisir
- Ils peuvent aussi résoudre davantage de problèmes de haut niveau, terminer des projets laissés de côté et découvrir de nouveaux plaisirs
- Au-delà de ce bilan, la vraie question est de savoir si l’on peut avoir le sentiment d’avoir créé soi-même un résultat finalisé par l’IA
- Le texte part de l’expérience d’un développeur qui code depuis l’ère des micro-ordinateurs des années 1980, a travaillé 20 ans dans l’industrie et enseigne aujourd’hui l’informatique
- Sur l’échelle allant de l’utopie à la catastrophe de l’IA, il se situe lui-même à 65 % du côté catastrophe
- Il utilise Claude Code tout en continuant aussi à coder directement
Une « polyvalence » mise en scène avec des résultats produits par l’IA
- L’introduction montre plusieurs réalisations qui semblent avoir été faites directement par l’auteur
- Le roman de science-fiction The Vorrkai Interval avec une scène de combat
- La gravure sur bois aux couleurs pastel Mirrors of the Machine
- Un nouveau perron en cèdre
- Du code de roguelike d’aventure en TUI écrit en Rust
- En réalité, le roman, l’image et le code ont été générés par l’IA, et le perron a été construit par des artisans qualifiés rémunérés pour cela
- Comme son rôle a surtout consisté à lancer la production et transmettre les exigences, il est mal à l’aise à l’idée de dire qu’il a lui-même fabriqué ces résultats
Pourquoi il est difficile de dire « je l’ai fait »
- Pour le perron construit par d’autres, il estime plus exact de dire « je l’ai fait installer » que « je l’ai installé »
- Pour le code généré par Claude, il dit aussi non pas « je l’ai fait », mais « j’ai fait en sorte qu’il soit fait pour moi »
- Mal à l’aise à l’idée d’apposer une licence MIT à son nom sur un contenu généré par une IA sans relation d’emploi, il utilise Unlicense
- Même lorsqu’il travaillait comme manager, il disait non pas « j’ai construit ce produit », mais « notre équipe l’a construit », et s’il avait encadré des LLM, il dirait « mes agents l’ont construit »
- Terminer un projet est déjà satisfaisant, mais lorsqu’un projet qu’il a lancé est achevé par quelqu’un d’autre, la satisfaction est bien moindre que lorsqu’il le fabrique lui-même
- Ce qui se perd n’est pas seulement le savoir-faire du code ou le plaisir de résoudre des problèmes, mais aussi l’expérience de fabriquer soi-même quelque chose
Une flashcard de 177 lignes faite à la main
- Sa femme lui demande un petit système d’apprentissage de l’espagnol permettant d’entrer les mots voulus dans un tableur et de les voir sous forme de flashcards
- Il choisit de faire l’implémentation lui-même et demande à Claude de ne pas générer de code, ne lui posant que des questions de base comme la manière la plus simple de récupérer des données depuis Google Sheets
- Il utilise l’endpoint CSV de Google Sheets
- Il écrit au total 4 fichiers et 177 lignes : 112 lignes de JavaScript, 33 lignes de CSS et 32 lignes de HTML
- Cela prend environ 50 fois plus de temps que si Claude l’avait fait, mais il peut y mettre son nom et dire qu’il l’a réellement fabriqué
- Même si le code n’est ni volumineux ni révolutionnaire, il en ressent une fierté bien supérieure à celle procurée par n’importe quel code écrit par Claude
- De même que sa femme, à l’origine de la demande, ne dirait pas qu’elle a écrit le système de flashcards, le demandeur n’est pas pour autant le fabricant
Le prompt comme compétence distincte
- Un prompt efficace demande clairement une contribution humaine
- Il faut y mettre une vision
- Il faut juger le résultat
- Il faut savoir communiquer et rédiger des prompts
- Comme tous les prompts et tous les utilisateurs d’IA ne se valent pas en efficacité, le prompting est bel et bien une compétence importante
- Mais cela ressemble davantage à la capacité à demander efficacement ce que l’on veut qu’à la capacité de le fabriquer directement
- Même dans le logiciel, le prompting donne plus l’impression de confier la réalisation à une autre entité que de fabriquer soi-même le logiciel
La zone grise entre compilateur et IA
- Lorsqu’il écrit un programme en C ou en Rust, il n’écrit pas lui-même le code machine réellement exécuté, mais il a tout de même le sentiment d’avoir écrit le programme
- La transformation du code C en code machine ressemble à un processus mathématiquement précis, mais quelques questions subsistent
- Clang et GCC génèrent des instructions différentes, donc le résultat n’est pas rigoureusement unique
- Le code C reste portable même si le code machine varie selon les plateformes
- Même si le build n’a été fait que sous Linux, on peut considérer qu’il a écrit un programme qui tourne sous Windows
- Lorsqu’il demande à Claude de convertir un programme C récursif de Fibonacci en assembleur x86_64 Linux, celui-ci génère du code que l’on peut compiler et exécuter
- La sortie affiche correctement la suite de Fibonacci de
0: 0à9: 34 - Il utilise aussi XOR pour fixer l’état de sortie à 0
- La sortie affiche correctement la suite de Fibonacci de
- Comme il a écrit lui-même le code C d’origine, il considère malgré tout avoir écrit ce programme, même si l’assembleur a été généré par Claude
- La conversion de l’assembleur vers le code machine est un processus strict et non intelligent, accepté comme l’usage d’un outil qui ne retire pas l’acte de fabrication, comme lorsqu’on utilise un marteau pour enfoncer un clou
Le critère qui sépare outil et exécutant délégué
- Ce qui relève du faire direct comprend écrire du code C et l’exécuter, enfoncer un clou avec un marteau, et transformer de l’assembleur en code machine avec un assembleur
- Ce qui relève de l’instruction donnée à autrui comprend écrire du logiciel, construire un perron ou produire une image
- Il n’a pas le sentiment d’avoir peint lui-même une image générée par ChatGPT, alors qu’avec un marteau ou un compilateur, il n’y a pas cette impression de demander à quelque chose de faire le travail à sa place
- Le cas où il demande à Claude de compiler du code C chevauche les deux catégories
- On peut considérer qu’il a exécuté du code C qu’il avait lui-même écrit
- On peut aussi considérer qu’il a demandé à une IA d’écrire du logiciel
- Il aurait pu obtenir le même résultat à partir d’exigences formulées uniquement en anglais
- Comme l’IA comprend un langage humain imprécis et répond d’une manière proche de l’humain, elle peut donner davantage l’impression d’une relation entre manager et subordonné que d’un compilateur ou d’un marteau
- Si l’on demandait à un marteau doté d’IA d’enfoncer un clou, il serait difficile de dire qu’on a martelé soi-même, même si l’on a participé au processus créatif
- Plus on examine cette zone grise, plus l’idée que confier la fabrication à l’IA puisse aussi être un acte créatif paraît forte, mais la frontière à partir de laquelle on peut dire qu’on a fabriqué soi-même reste floue
La contribution réellement apportée au résultat
- Pour la scène de SF, le prompt demandait de générer trois paragraphes et un titre de roman où un héros et deux réfugiés, pris sous le feu de lasers ennemis, trouvent une issue pour s’échapper
- Pour l’image, il demandait deux hackers aux allures de mages, face à face et concentrés sur des ordinateurs, dans le style d’une gravure sur bois aux couleurs pastel, avec de chaque côté des couleurs contrastées mais complémentaires
- Pour le jeu, il demandait un jeu TUI de fantasy semblable à Ultima I
- Des cellules de carte de 3×3 caractères, 7×7 cellules de carte par écran, et une animation de l’eau
- Un monde procédural basé sur le bruit de Perlin, des monstres prédéfinis se déplaçant aléatoirement, et des caractéristiques dans l’esprit de D&D
- Un joueur ordinaire sans classe, une implémentation en Rust et Ratatui, et une séparation entre l’UI et la logique du jeu
- Pour le travail de menuiserie, il a demandé « remplacez le perron », mais il a bien enfoncé lui-même un clou dans une chute de bois nécessaire à la photo d’introduction
- Le tiret cadratin utilisé dans le texte est un choix délibéré, et le digramme Vim est
^K-M
1 commentaires
Avis sur Hacker News
Même si je n’ai pas écrit moi-même une seule ligne de code avec un LLM, je peux être fier du résultat que j’ai créé
Je ne compte pas me vanter d’être un excellent programmeur, mais le code a toujours été un moyen de créer un produit fini
C’est comme pouvoir éprouver de la satisfaction devant un jardin que j’ai imaginé, même si je n’ai pas fait les travaux moi-même et que j’ai engagé une entreprise de paysagisme
L’éditeur de tablatures de guitare créé en vibe coding résout un vrai problème grâce à des fonctions absentes des autres logiciels, et je n’aurais jamais pu le créer sans IA tout en jonglant avec le travail, la famille et les loisirs
On dit aussi qu’on a fait un sandwich beurre de cacahuète-confiture quand on l’a préparé soi-même sans créativité particulière, et c’est pareil quand on utilise un outil comme une scie circulaire qui remplace le travail manuel
Mais télécharger
Articulated dragon.stlsur le Web et appuyer simplement sur le bouton d’impression, ce n’est pas la même chose que le concevoir soi-même puis l’imprimerL’utilisation de CNC et d’imprimantes 3D exige aussi des connaissances et des compétences différentes du travail manuel, mais plus les outils deviennent faciles, plus la frontière devient floue
Même s’il n’y a pas de ligne nette, elle se situe quelque part entre « tout faire à la main parce que les nouveaux outils seraient de la triche » et « commander un sandwich et attendre »
Si l’on a délégué un projet à quelqu’un d’autre, on peut dire qu’on l’a géré ou qu’on en a conçu une partie, mais il est difficile de s’attribuer le mérite de l’avoir exécuté soi-même
Même sans avoir réalisé concrètement la chose, on peut tout à fait être fier d’avoir donné une orientation et une vision pour résoudre le problème
makinga une forte connotation de fabrication active et directe, tandis queproducingrenvoie davantage au fait de superviser et de coordonnerCette différence m’est apparue plus clairement quand j’ai commencé à travailler avec des producteurs dans le développement de jeux
Des projets perso dont Claude a récemment écrit les parties principales faisaient bien ce que je voulais, et pourtant je me suis senti étrangement déconnecté du résultat, ce qui m’a amené à réfléchir à la manière d’utiliser l’IA pendant mon temps libre
Un compilateur produit des résultats déterministes et cohérents à partir d’instructions précises, tandis que Claude interprète des consignes moins précises que du code, produit un résultat différent à chaque fois, ajoute même des comportements non demandés et prend des décisions à la place de l’utilisateur
On peut lui donner des consignes strictes avec de grosses spécifications en Markdown ou des tests détaillés, mais si cela demande autant de temps à écrire, la différence avec le fait de coder soi-même peut ne plus être si grande
L’IA est excellente pour résoudre un problème bloquant ou expliquer des concepts de façon personnalisée, mais dès qu’on lui confie les décisions, on privilégie le résultat plutôt que la création
Les side projects qu’on fait par amour de la création elle-même sont plus proches de l’art que du produit ; l’IA peut donc convenir aux produits, mais pas forcément à l’art
Dans la tech, il y a des gens qui aiment les détails et des gens qui aiment les systèmes ; les profils orientés systèmes peuvent trouver les LLM amusants et satisfaisants, tandis que les profils orientés détails peuvent ressentir exactement l’inverse
Une connaissance célèbre pour ses travaux en vision par ordinateur avant les réseaux de neurones disait qu’autrefois, elle résolvait beaucoup de choses pour la première fois, mais qu’aujourd’hui la majeure partie du développement logiciel consiste à assembler des éléments déjà connus, ce qui l’ennuie
Les LLM semblent encore accélérer cette tendance
Produire des scripts à la chaîne avec un LLM me donne l’impression de remplir une grille de sudoku avec des chiffres au hasard jusqu’à ce que l’application dise que c’est la bonne réponse
Je ne veux pas voir sur Hacker News des soumissions générées par des LLM
Même quand il ne s’agissait pas de produits à succès, j’aimais voir la créativité humaine réellement mise en œuvre
Comme je ne regarde pas les parties d’échecs entre ordinateurs, il faudrait un moyen de distinguer facilement les logiciels et œuvres d’art créés par IA pour les éviter
La différence tient au degré auquel on peut raisonner sur l’effet qu’un changement d’entrée aura sur le comportement observable de la sortie
Si un exécutable produit par un compilateur ne se comporte pas comme prévu, c’est à 99,99 % de ma responsabilité, et je peux prédire le résultat à partir du code source comme analyser les dysfonctionnements
Il n’existe pas de relation comparable entre un programme de vibe coding et le prompt qui l’a généré
Si un robot tondeuse entièrement autonome fait correctement son travail, c’est le robot qui a tondu la pelouse ; mais si je monte dessus pour le conduire, ou si je le pilote au joystick, alors c’est moi qui l’ai tondue
Le sentiment d’appropriation dépend de qui est le sujet qui décide où tondre
Même dans un projet de vibe coding, on ressent différents niveaux de sentiment d’appropriation selon la profondeur de l’attention et de la compréhension qu’on y a investies
Certaines personnes ne décident que du moment où lancer le processus et si le résultat est bon ou mauvais, mais, faute de compétence réelle pour juger, elles croient parfois que le créateur a bien traité tous les sous-éléments
Un compilateur transforme presque toujours correctement un programme en binaire et signale clairement les échecs, mais l’exactitude de l’algorithme reste de la responsabilité de l’utilisateur, ce qui rend la frontière claire
En revanche, la frontière de responsabilité des LLM est floue, et ils ne gèrent pas de manière fiable tous les éléments qui ne sont pas explicitement indiqués dans le prompt
C’est aussi différent d’une collaboration humaine où, si l’on demande à un peintre professionnel de dessiner Batman, on n’a pas besoin de vérifier jusqu’aux orteils ou au nombre de bras
J’ai commencé à utiliser les LLM parce que c’est plus rapide, mais je n’en retire plus le même plaisir qu’avant
La vitesse n’a pas toujours à passer avant le plaisir, et il faut réapprendre à se concentrer sur le fait d’écrire soi-même sans le considérer comme « inefficace »
J’aimerais retrouver la sensation de coder en pleine nuit quand j’avais 13 ans, et les textes de Beej sont toujours marquants
Quand on crée du texte, du code ou de la musique uniquement avec des prompts, c’est précisément ce processus qui disparaît
Pendant environ deux mois, je n’avais même pas envie de regarder la télé, à part boire de l’alcool, mais après plusieurs semaines d’abstinence, l’envie de créer semble revenir petit à petit
J’ai conçu et fabriqué moi-même des caméras et de petits robots autonomes, et j’ai enfin réparé une caméra qui était tombée en roulant dans la voiture
J’ai perdu l’intérêt après avoir fait des vidéos avec chaque objectif vintage en monture C, ne laissant qu’une boîte d’objectifs et une caméra devenue objet de décoration, mais ces projets hardware m’ont permis d’obtenir deux postes d’ingénieur logiciel
Quand je dis « je l’ai fait » à propos d’un projet dont Claude Code a généré le code, le respect diminue généralement aussitôt, mais au final l’argent et la liberté sont essentiels, et moi aussi je veux assurer ma liberté avant de faire ce que j’aime
Si ce n’est pas déjà fait, il peut aussi valoir la peine d’examiner la possibilité d’un TDAH ou d’autres facteurs
Les humains ne sont pas des machines, mais des êtres biologiques complexes ; comprendre ses propres caractéristiques aide beaucoup à repartir dans la bonne direction
Pour les travaux que j’ai récemment confiés à l’IA, j’ai du mal à me souvenir même des grandes lignes, alors qu’une base de code de plus de 100 000 lignes que j’ai écrite il y a des années reste encore globalement navigable dans ma tête
Mais un projet créé avec l’IA il y a à peine deux semaines ne reste qu’un bloc flou du genre « quelqu’un a écrit un prompt et du code est sorti »
Quand j’étais étudiant à l’OSU et que j’apprenais en autodidacte la programmation système pratique, je consultais tous les jours
Beej's Guide to Network ProgrammingJe regrettais que ce site gratuit soit bien plus utile qu’une université coûteuse ; maintenant que Beej enseigne à l’OSU, c’est une belle boucle qui se referme et un excellent recrutement
Je veux me concentrer sur la conception au niveau système, l’usage actif de l’IA, ainsi que sur des projets et des équipes plus ambitieux
Apprendre à coder reste indispensable, mais il faut désormais placer plus tôt dans la formation davantage de compétences en génie logiciel qu’on acquérait autrefois sur le terrain
Je me dis quand même que l’arrivée des LLM aurait pu attendre une quinzaine d’années
Le Corbusier et Frank Lloyd Wright ne construisaient pas eux-mêmes les bâtiments, ils les concevaient, mais ces bâtiments sont sans hésitation reconnus comme leurs œuvres
Steve Jobs non plus ne concevait pas les circuits imprimés et ne codait pas, mais il a créé le Mac, l’iPod et l’iPhone, et les peintres de la Renaissance dirigeaient eux aussi des ateliers où travaillaient des apprentis
La création logicielle ne se limite pas à écrire du code : elle consiste aussi à comprendre le marché et les besoins, à faire le marketing et les textes, à décider quoi construire et quoi abandonner, et à imaginer la forme finale
Les artisans qui ont construit les maisons de Wright peuvent se vanter d’avoir fait le toit, les murs ou la cascade, mais la maison dans son ensemble appartient clairement à Wright
Les lamentations actuelles relèvent plutôt d’une peur légitime de perdre un monopole technique
Cela peut évoluer comme lorsque les meubles artisanaux ont été remplacés par IKEA et que les menuisiers qualifiés se sont concentrés sur le haut de gamme, à ceci près que les clients de la programmation sont surtout des entreprises et que le critère d’acceptation est binaire : « est-ce que ça marche ? »