Tous les codes ne se valent pas
Écoutez ceci : « Je n'utilise pas l'IA pour la programmation, car je veux apprendre et m'améliorer en programmation et si un LLM génère du code pour moi, je n'apprends rien. »
Ou celle-ci : « J’aime écrire du code. J’aime écrire chaque ligne de code. J’aime mettre des points-virgules ici, aligner des espaces là, réfléchir à un nom de variable ici et réorganiser ces trois lignes pour que tout le paragraphe soit plus beau — je ne veux pas qu’un LLM m’enlève ça. »
Ce sont des versions paraphrasées de certaines des réponses que j’ai reçues la dernière fois que j’ai discuté avec des collègues sur l’utilisation de l’IA pour la programmation.
Je comprends. J'aime aussi le code. J'aime l'écrire, j'aime le modifier, j'aime le lire. Il y a une copie imprimée du code accrochée sur mon mur ici, j'ai pensé à en tatouer une partie sur mon avant-bras. Il y a une partie du code qui existe dans le monde qui me plaît tellement que j'ai envie de le lécher.
Mais (voilà, vous le saviez) : allons , soyons honnêtes ! Tout code ne mérite sûrement pas la révérence, n'est-ce pas ? Tout code ne contient pas une leçon et chaque ligne ne mérite pas l'intention.
Il y a deux semaines, j'ai utilisé Claude pour créer un script Python de 50 lignes qui lit tous mes articles Out of the box de l'archive Substack et les convertit du HTML au Markdown, en lisant les métadonnées d'un fichier CSV. La semaine précédente, Claude m'avait généré un amalgame HTML/JavaScript/CSS de 200 lignes qui me permet de coller deux extraits de code et de générer en réponse un diff dans un format personnalisé. La semaine dernière, Claude a créé pour moi une petite application Web Python qui me permet de parcourir le contenu d'un dossier local, d'inspecter chaque fichier, puis de décider de le jeter dans le bac A ou le bac B. 120 lignes, je crois.
Aucun de ces codes ne contenait de leçon. En fait, j'étais content de ne pas avoir à comprendre comment ouvrir un fichier CSV en Python — j'ai fait cela dans au moins quatre autres langages et je ne peux pas dire que j'ai apprécié ou que j'apprécie cette connaissance. Je ne voulais pas non plus me casser la tête à créer une mise en page à 3 colonnes en CSS pour ce seul fichier HTML. Je ne me souciais pas non plus de savoir comment servir quatre endpoints dans une petite application Web Python. J'ai écrit suffisamment d'applications Web dans ma vie pour savoir que je finirais généralement par être frustré après avoir essayé de comprendre comment accéder aux paramètres de requête d'URL.
Je ne me soucie pas non plus de la structure du code et de savoir si celui-ci doit être placé dans telle ou telle fonction. Je ne me soucie pas non plus de son indentation. Si vous aviez une machine qui mets des whitespace sur les fichiers, je vous dirais de la pointer vers ces scripts et d'appuyer sur la gâchette jusqu'à ce qu'elle clique. Ajoutez-y aussi quelques onglets, je m'en fiche.
Le code de ces minuscules programmes et scripts est en écriture seule. Aucun autre humain — touchons du bois — ne devrait avoir à le consulter à nouveau. Il est autonome, il a une seule tâche temporaire et son rayon d'action est, au mieux, un dossier de fichiers qui est de toute façon sécurisé par git.
Et si je ne me soucie pas de la qualité ni des whitespace, alors pourquoi ne pas laisser les LLM l'écrire ?
Il y a tellement de code comme celui-ci à écrire si vous savez repérer les opportunités : prototypes, preuves d'idées, démonstrations, petites aides au débogage, explorations et expériences. Je prendrai toute l'aide que je pourrai obtenir.
Parce que voici la meilleure partie : si je laisse Claude l'écrire, non seulement je me retrouve avec plus d'outils d'aide, mais je peux également passer plus de temps sur le code qui m'intéresse réellement.
Merci de m’avoir lu!