Tous les articles

La foule se rassemble encore autour du code fait main

Écouter l'article (expérimental) · 09:11

00:00 / 09:11

Un anneau lâche de spectateurs estompés dirige ses lignes de regard vers une petite grille de cellules composée à la main, dont le carré central brûle d'ambre à l'intérieur d'un anneau vert

L'une des questions de programmation les plus lues sur Stack Overflow ces derniers temps portait sur le calcul à la main d'un CRC 32 bits pour un fichier PNG. 1 171 consultations sur son compteur public. Sa meilleure réponse, une traversée patiente de l'arithmétique des polynômes, a récolté 27 points, un chiffre que presque rien n'atteint sur le site d'aujourd'hui. Personne n'a besoin de faire cela. zlib calcule des CRC correctement depuis 1995, toutes les bibliothèques PNG de la planète l'enveloppent, et n'importe quel modèle que vous pouvez citer crache le code fonctionnel avant que vous ayez fini de taper la question. À toutes les aunes économiques, le sujet est réglé, automatisé et clos.

Plus de mille personnes sont venues regarder quand même.

Parcourez ce qui a rassemblé les foules sur le site ces derniers temps, et le motif se répète jusqu'à ce qu'il cesse de ressembler à une coïncidence. Le Jeu de la Vie de Conway, un jouet de 1970, à 855 consultations. "Should I make my own vector in C++ and use that more than the one built in?" (devrais-je construire mon propre vector en C++ et l'utiliser plutôt que celui fourni ?) à 373, une question dont la réponse de manuel est un non catégorique, et dont la vraie réponse est qu'en construire un est la façon de découvrir ce que fait celui qui est fourni. "What are the requirements for C code that can run without an operating system?" (quelles sont les conditions pour que du code C tourne sans système d'exploitation ?) à 274. Un fil sur les interruptions matérielles en mode protégé. Une question fermée pour doublon sur l'obtention d'un compilateur C pour HelloWorld.c qui a tout de même attiré vingt-cinq commentaires, et une discussion sur l'implémentation d'un chiffrement post-quantique en C pur qui en a attiré vingt-six. Les étages supérieurs appartiennent presque entièrement à des choses que plus personne n'est payé pour construire à partir de zéro : sommes de contrôle, automates cellulaires, conteneurs, code d'amorçage, cryptographie.

J'ai écrit dans un billet antérieur sur ce que disent désormais les clôtures du site : le centre factuel des questions-réponses de programmation a été automatisé jusqu'à perdre sa rareté, et les questions qui prospèrent sont celles que les machines ne peuvent pas trancher. Mais les chiffres de consultation mesurent quelque chose qui échappe aux clôtures. Une question fermée vous dit ce que les gens n'ont plus besoin de demander. Onze cents consultations pour un CRC fait main vous disent ce que les gens veulent encore regarder.

Une note méthodologique, pour que les chiffres soient honnêtes : les nombres de consultations et les scores sont des compteurs publics présents sur chaque question de Stack Overflow, et les miens sont un instantané de la période où j'écrivais ceci. Le motif ne dépend pas de l'instantané. Regardez n'importe quel mois et les choses faites main remontent à la surface.

Personne n'a besoin de la somme de contrôle

Soyons précis sur ce que ces consultations ne sont pas. Elles ne sont pas du besoin. Un développeur qui a réellement besoin d'un CRC en 2026 ne lit pas une longue réponse sur la division polynomiale ; il appelle la fonction de bibliothèque, ou il demande au modèle qui se tient à ses côtés et colle le résultat, et les deux sont le bon geste professionnel. Si le besoin alimentait ce trafic, la question aurait le lectorat du marché de l'emploi de son sujet, c'est-à-dire presque aucun.

Elles ne sont pas non plus de la nostalgie, ou pas principalement. La nostalgie se rassemblerait autour des vieilles technologies elles-mêmes, et aucune foule ne se rassemble autour de Delphi ou de SOAP. La foule se rassemble spécifiquement autour de fondamentaux construits à la main : la somme de contrôle calculée pas à pas, le vector implémenté mal exprès, le programme en C sans système d'exploitation en dessous. Pas des choses vieilles. Des choses nues.

L'activité humaine la plus proche que je trouve, c'est regarder un potier. La céramique industrielle a gagné il y a un siècle ; votre buffet en est la preuve. Et pourtant, mettez un tour dans une vitrine et les gens s'arrêtent de marcher. Aucun de ceux qui regardent n'a l'intention de tourner sa propre vaisselle. Ils regardent parce que le processus est lisible d'une façon dont l'usine ne l'est pas, parce que le savoir-faire exercé au grand jour mérite l'attention par nature, et parce qu'une partie de la compréhension d'assiette n'existe qu'en en regardant une se faire. Le pot n'est pas le produit de la démonstration. L'image dans la tête du spectateur, si.

Cette dernière phrase est la même que celle à laquelle je n'arrête pas d'arriver par d'autres chemins. Quand j'ai soutenu que rester bloqué, c'est le but, la thèse était que la compréhension se forme là où votre représentation de la machine rencontre la machine et perd. Regarder un CRC calculé à la main est la version spectateur du même événement. Le lecteur de cette réponse n'est pas en train d'acquérir une somme de contrôle. Il regarde des bits traverser un polynôme jusqu'à ce que la boîte noire étiquetée « vérification d'intégrité » devienne un mécanisme qu'il tient en main, et ce mécanisme se transfère à chaque somme de contrôle, chaque hash et chaque code d'erreur qu'il rencontrera ensuite. La réponse est une démonstration que le sol sous les abstractions est solide et praticable. Vous n'avez pas besoin de l'arpenter tous les jours. Vous avez besoin de l'avoir arpenté une fois.

Le questionnement est parti, le regard est resté

Voici la ligne de partage que ces chiffres rendent visible. Le questionnement est en grande partie parti vers les machines, et il le fallait. Questionner, c'est du besoin, le besoin veut de la vitesse et de la discrétion, et un modèle fournit les deux sans jugement à trois heures du matin. Le regard, lui, est resté humain, et je crois qu'il est resté pour une raison qui importe à quiconque écrit ou enseigne : regarder est la façon dont les choses profondes se propagent réellement. Ça l'a toujours été. Le cours magistral, la master class, la séance de pair programming, la démo de live coding en conférence dont tout le monde se souvient des années plus tard, tout cela est le tour du potier, du savoir-faire rendu lisible en mouvement. Le format de réponse de Stack Overflow, à son meilleur, a toujours été plus proche de cela que d'une table de correspondance, et la foule vote exactement pour les réponses qui donnent la compréhension en spectacle au lieu de se contenter de la distribuer.

Ce qui recadre l'utilité d'une question comme « devrais-je construire mon propre vector ». Lue comme une demande de décision, elle est trivialement soluble et légèrement embarrassante, et c'est pour cela que l'ancienne constitution tenait ce genre de questions à distance. Lue comme ce qu'elle est réellement, une invitation faite à quelqu'un d'habile à démonter la machine en public, elle compte parmi les choses les plus précieuses qui restent au site. La réponse à 27 points sur le CRC n'a pas été écrite pour celui qui demandait. Elle a été écrite pour les onze cents, et les onze cents ont su venir.

J'ai pris le même pari avec mon propre conseil d'apprentissage du métier : apprenez à coder précisément parce que les machines le savent, puisque la valeur a migré de la production de l'artefact vers la possession de la représentation. Ces chiffres, c'est l'argument de ce billet tournant en liberté, consultations à l'appui. Quand la génération est devenue gratuite, l'artefact a cessé d'attirer la foule. Le faire a continué de l'attirer.

Écrivez pour ceux qui regardent

Si vous fabriquez des choses, une conclusion pratique se cache dans ces chiffres. La démonstration faite main n'est pas un contenu obsolète ; c'est presque le seul contenu dont les machines n'ont pas absorbé le public, parce que sa valeur n'a jamais résidé dans le résultat. Personne n'aura jamais besoin de votre CRC écrit à partir de zéro, de votre allocateur-jouet, de votre moteur de rendu construit pendant une semaine de vacances. Publiez-en la fabrication quand même, avec le raisonnement visible, les mauvais virages laissés dedans. Le modèle aux côtés de chacun a pris en charge la distribution des réponses, et grand bien lui fasse. Ce qu'il n'a pas pris en charge, c'est la vitrine, le tour, l'argile, et la petite foule qui s'arrête encore, avec fiabilité, mille personnes un mardi, pour regarder quelqu'un qui sait ce qu'il fait fabriquer une chose à la main.

Les questions auxquelles cet article répond

  • Pourquoi lit-on encore des explications faites à la main alors que l'IA fait le travail en une seconde ?

    Parce que la valeur de la démonstration n'a jamais résidé dans le résultat. Un développeur qui a réellement besoin d'un CRC appelle la fonction de bibliothèque ou demande au modèle qui se tient à ses côtés, et les deux sont le bon geste professionnel ; les quelque mille personnes qui lisent un CRC calculé à la main regardent une boîte noire étiquetée vérification d'intégrité devenir un mécanisme qu'elles tiennent en main. Le parallèle humain le plus proche, c'est le potier en vitrine : la céramique industrielle a gagné il y a un siècle, et les gens s'arrêtent toujours de marcher.

  • N'est-ce pas simplement de la nostalgie pour les vieilles technologies ?

    Non, ou pas principalement. La nostalgie se rassemblerait autour des vieilles technologies elles-mêmes, et aucune foule ne se rassemble autour de Delphi ou de SOAP. Ce qui attire les consultations, ce sont des fondamentaux construits à la main : la somme de contrôle calculée pas à pas, le vector implémenté mal exprès, le programme en C sans système d'exploitation en dessous. Pas des choses vieilles, des choses nues.

  • Faut-il écrire soi-même son vector, son allocateur ou sa somme de contrôle à partir de zéro ?

    Lue comme une demande de décision, la réponse est un non catégorique, et c'est pour cela que l'ancienne constitution de Stack Overflow tenait ce genre de questions à distance. Lue comme ce qu'elle est réellement, une invitation faite à quelqu'un d'habile à démonter la machine en public, elle compte parmi les choses les plus précieuses qui restent au site. 373 personnes sont venues à cette question sur le vector, parce qu'en construire un est la façon de découvrir ce que fait celui qui est fourni. Vous n'avez pas besoin d'arpenter ce sol tous les jours ; vous avez besoin de l'avoir arpenté une fois.

  • Que vaut-il encore la peine de publier quand un modèle répond à toutes les questions ?

    Publiez la fabrication, avec le raisonnement visible et les mauvais virages laissés dedans. Le modèle a pris en charge la distribution des réponses et grand bien lui fasse, mais il n'a pas pris en charge la vitrine, et la démonstration faite main est presque le seul type de contenu dont il n'a pas absorbé le public. La réponse à 27 points sur le CRC n'a pas été écrite pour celui qui demandait ; elle a été écrite pour les onze cents, et les onze cents ont su venir.