Tutti gli articoli

La folla si raduna ancora intorno al codice fatto a mano

Ascolta l'articolo (sperimentale) · 09:02

00:00 / 09:02

Un anello sparso di osservatori sbiaditi dirige lo sguardo verso una piccola griglia di celle composta a mano, il cui quadrato centrale arde d'ambra dentro un anello verde

Una delle domande di programmazione più lette su Stack Overflow di recente riguardava il calcolo a mano di un CRC a 32 bit per un file PNG. 1.171 visualizzazioni sul suo contatore pubblico. La sua risposta migliore, una camminata paziente attraverso l'aritmetica dei polinomi, ha totalizzato 27 punti, un numero che quasi nulla sul sito di oggi raggiunge. Nessuno ha bisogno di farlo. zlib calcola CRC correttamente dal 1995, ogni libreria PNG sulla faccia della terra la incapsula, e qualunque modello tu possa nominare sputa il codice funzionante prima che tu abbia finito di digitare la domanda. Secondo ogni misura economica, l'argomento è risolto, automatizzato e chiuso.

Più di mille persone sono venute a guardare lo stesso.

Scorri cos'altro ha radunato folle sul sito ultimamente e lo schema si ripete finché non smette di sembrare una coincidenza. Il Gioco della Vita di Conway, un giocattolo del 1970, a 855 visualizzazioni. "Should I make my own vector in C++ and use that more than the one built in?" (dovrei costruirmi il mio vector in C++ e usarlo al posto di quello incluso?) a 373, una domanda la cui risposta da manuale è un no secco, e la cui risposta vera è che costruirne uno è il modo per scoprire cosa sta facendo quello incluso. "What are the requirements for C code that can run without an operating system?" (quali sono i requisiti perché del codice C giri senza sistema operativo?) a 274. Un thread sugli interrupt hardware in modalità protetta. Una domanda duplicata e chiusa su come procurarsi un compilatore C per HelloWorld.c che ha comunque attirato venticinque commenti, e una discussione sull'implementazione della crittografia post-quantistica in C puro che ne ha attirati ventisei. I piani alti appartengono quasi per intero a cose che nessuno viene più pagato per costruire da zero: checksum, automi cellulari, contenitori, codice di bootstrap, crittografia.

Ho scritto in un articolo precedente di cosa dicono ormai le chiusure del sito: il centro fattuale delle domande e risposte di programmazione è stato automatizzato fino a perdere la sua scarsità, e le domande che prosperano sono quelle che le macchine non possono chiudere una volta per tutte. Ma i numeri delle visualizzazioni misurano qualcosa che alle chiusure sfugge. Una domanda chiusa ti dice cosa le persone non hanno più bisogno di chiedere. Millecento visualizzazioni per un CRC fatto a mano ti dicono cosa le persone vogliono ancora guardare.

Una nota metodologica, perché i numeri siano onesti: i conteggi delle visualizzazioni e i punteggi sono contatori pubblici presenti su ogni domanda di Stack Overflow, e i miei sono un'istantanea del periodo in cui stavo scrivendo questo pezzo. Lo schema non dipende dall'istantanea. Guarda in qualunque mese e le cose fatte a mano galleggiano.

Nessuno ha bisogno del checksum

Sii preciso su cosa quelle visualizzazioni non sono. Non sono bisogno. Uno sviluppatore a cui nel 2026 serva davvero un CRC non legge una lunga risposta sulla divisione polinomiale; chiama la funzione di libreria, oppure chiede al modello che ha al fianco e incolla il risultato, ed entrambe sono la mossa professionale corretta. Se fosse il bisogno a guidare quel traffico, la domanda avrebbe il pubblico del mercato del lavoro del suo argomento, vale a dire quasi nessuno.

Non sono nemmeno nostalgia, o non principalmente. La nostalgia si radunerebbe intorno alle vecchie tecnologie in sé, e non c'è nessuna folla che si raduna intorno a Delphi o a SOAP. La folla si raduna specificamente intorno ai fondamenti costruiti a mano: il checksum calcolato passo dopo passo, il vector implementato male di proposito, il programma in C senza sistema operativo sotto. Non cose vecchie. Cose nude.

L'attività umana più vicina che riesco a trovare è guardare un vasaio. La ceramica industriale ha vinto un secolo fa; la tua credenza è la prova. Eppure metti un tornio in una vetrina e la gente smette di camminare. Nessuno di quelli che guardano ha intenzione di tornirsi il servizio di piatti. Guardano perché il processo è leggibile in un modo in cui la fabbrica non lo è, perché l'abilità esercitata alla luce del sole merita attenzione per sua natura, e perché una parte del comprendere piatto esiste solo nel vederne fare uno. Il vaso non è il prodotto della dimostrazione. Lo è l'immagine nella testa di chi guarda.

Quest'ultima frase è la stessa a cui continuo ad arrivare da altre direzioni. Quando ho sostenuto che restare bloccati è il punto, la tesi era che la comprensione si forma dove la tua immagine della macchina incontra la macchina e perde. Guardare un CRC calcolato a mano è la versione da spettatore dello stesso evento. Il lettore di quella risposta non sta acquisendo un checksum. Sta guardando bit muoversi attraverso un polinomio finché la scatola nera etichettata "controllo di integrità" non diventa un meccanismo che tiene in mano, e quel meccanismo si trasferisce a ogni checksum, hash e codice di errore che incontrerà in seguito. La risposta è una dimostrazione che il pavimento sotto le astrazioni è solido e ci si può camminare. Non hai bisogno di percorrerlo ogni giorno. Hai bisogno di averlo percorso una volta.

Il chiedere se n'è andato, il guardare è rimasto

Ecco la divisione che quei numeri rendono visibile. Il chiedere è in gran parte passato alle macchine, ed era giusto così. Chiedere è bisogno, il bisogno vuole velocità e riservatezza, e un modello consegna entrambe senza giudicare alle tre di notte. Il guardare è rimasto umano, e credo sia rimasto per una ragione che conta per chiunque scriva o insegni: guardare è il modo in cui le cose profonde si propagano davvero. Lo è sempre stato. La lezione, la master class, la sessione di pair programming, la demo di live coding alla conferenza che tutti ricordano ancora anni dopo, tutto questo è il tornio del vasaio, abilità resa leggibile in movimento. Il formato delle risposte di Stack Overflow, al suo meglio, è sempre stato più vicino a quello che a una tabella di consultazione, e la folla sta votando esattamente per le risposte che mettono in scena la comprensione invece di limitarsi a distribuirla.

Il che ridefinisce a cosa serve una domanda come "dovrei costruirmi il mio vector". Letta come richiesta di una decisione, è banalmente risolvibile e vagamente imbarazzante, ed è per questo che la vecchia costituzione teneva domande simili a distanza. Letta per quello che è davvero, un invito a qualcuno di abile a smontare la macchina in pubblico, è tra le cose più preziose rimaste al sito. La risposta da 27 punti sul CRC non è stata scritta per chi chiedeva. È stata scritta per i millecento, e i millecento hanno saputo arrivare.

Ho fatto la stessa scommessa con il mio consiglio da apprendistato: impara a programmare proprio perché le macchine sanno farlo, dato che il valore si è spostato dal produrre l'artefatto al possedere l'immagine. Questi numeri sono l'argomento di quell'articolo che gira allo stato brado, con tanto di numeri di visualizzazioni. Quando generare è diventato gratis, l'artefatto ha smesso di attirare la folla. Il fare ha continuato ad attirarla.

Scrivi per chi guarda

Se costruisci cose, in quei numeri si nasconde una conclusione pratica. La dimostrazione fatta a mano non è contenuto obsoleto; è quasi l'unico contenuto il cui pubblico le macchine non hanno assorbito, perché il suo valore non è mai stato nell'output. Nessuno avrà mai bisogno del tuo CRC scritto da zero, del tuo allocatore giocattolo, del tuo renderer costruito in una settimana di ferie. Pubblicane comunque la lavorazione, con il ragionamento in vista, con le svolte sbagliate lasciate dentro. Il modello al fianco di tutti si è preso il lavoro di distribuire risposte, e quel lavoro se lo tenga pure. Quello che non si è preso è la vetrina, il tornio, l'argilla, e la piccola folla che ancora si ferma, con affidabilità, mille persone di martedì, a guardare qualcuno che sa quello che fa costruire una cosa a mano.

Le domande a cui questo articolo risponde

  • Perché si continua a leggere di cose fatte a mano se l'IA le fa in un istante?

    Perché il valore della dimostrazione non è mai stato nell'output. Uno sviluppatore a cui serve davvero un CRC chiama la funzione di libreria oppure chiede al modello che ha al fianco, ed entrambe sono la mossa professionale corretta; le mille e passa persone che leggono un CRC calcolato a mano stanno guardando una scatola nera etichettata controllo di integrità diventare un meccanismo che tengono in mano. Il parallelo umano più vicino è il vasaio in vetrina: la ceramica industriale ha vinto un secolo fa, e la gente continua a smettere di camminare.

  • Non è solo nostalgia per le vecchie tecnologie?

    No, o non principalmente. La nostalgia si radunerebbe intorno alle vecchie tecnologie in sé, e non c'è nessuna folla che si raduna intorno a Delphi o a SOAP. Ad attirare le visualizzazioni sono i fondamenti costruiti a mano: il checksum calcolato passo dopo passo, il vector implementato male di proposito, il programma in C senza sistema operativo sotto. Non cose vecchie, cose nude.

  • Conviene scriversi da zero il proprio vector, allocatore o checksum?

    Letta come richiesta di una decisione, la risposta è un no secco, ed è per questo che la vecchia costituzione di Stack Overflow teneva domande simili a distanza. Letta per quello che è davvero, un invito a qualcuno di abile a smontare la macchina in pubblico, è tra le cose più preziose rimaste al sito. 373 persone sono arrivate a quella domanda sul vector, perché costruirne uno è il modo per scoprire cosa sta facendo quello incluso. Non hai bisogno di percorrere quel pavimento ogni giorno; hai bisogno di averlo percorso una volta.

  • Cosa vale ancora la pena pubblicare se un modello risponde a qualunque domanda?

    Pubblica la lavorazione, con il ragionamento in vista e le svolte sbagliate lasciate dentro. Il modello si è preso il lavoro di distribuire risposte e se lo tenga pure, ma non si è preso la vetrina, e la dimostrazione fatta a mano è quasi l'unico tipo di contenuto il cui pubblico non ha assorbito. La risposta da 27 punti sul CRC non è stata scritta per chi chiedeva; è stata scritta per i millecento, e i millecento hanno saputo arrivare.