
Un programmatore in un momento di rabbia (ChatGpt)
C’è un segreto inconfessabile, celato nel codice informatico che permette ai computer di funzionare: le parolacce. L’ha scoperto un giovane ingegnere russo, Enderman, che ha scovato decine di espressioni volgari nel codice sorgente del vecchio sistema operativo Windows XP. Sollevando il velo su una realtà ben più estesa: il turpiloquio, infatti, è presente in abbondanza anche negli algoritmi che governano Linux, il più celebre sistema operativo open source.
Ma perché il turpiloquio è sbarcato anche nel linguaggio più tecnologico di oggi, quello della programmazione informatica? Non dovrebbe essere il regno della algida logica matematica? Che cosa ha spinto gli informatici a lasciare queste espressioni fra i milioni di righe del codice?
In questo post darò una risposta a queste domande. E non è una mera curiosità di costume: una ricerca dell’università di Karlsruhe (Germania) ha scoperto, dati alla mano, che i programmi che contengono parole scurrili nel codice sono di qualità migliore rispetto a quelli che non ne hanno. Insomma, più imprechi, meglio programmi.
Windows dietro le quinte

La schermata iniziale del vecchio WIndows XP.
Il “caso Windows” è emerso a maggio, quando Enderman ha pubblicato su YouTube un video di 18 minuti in cui racconta le “gemme nascoste” nel linguaggio di programmazione di Windows XP. Ha già superato il mezzo milione di visualizzazioni. Uno scoop nello scoop: le aziende custodiscono gelosamente il proprio codice sorgente, la stanza dei bottoni che consente ai computer di funzionare. E’ l’insieme di informazioni dettagliate che definiscono ogni operazione e comportamento del sistema operativo. Pubblicare un codice sorgente sarebbe come svelare la ricetta della Coca-Cola: un segreto industriale. Quello di XP, però, è stato procurato (non si sa come) da qualche ignoto hacker che l’ha diffuso su un sito Web, 4chan.
Enderman ha fatto una ricerca testuale al suo interno, per vedere se vi fossero nascoste delle parolacce. Ne ha trovate in abbondanza, scritte dalle migliaia di persone che hanno collaborato alla scrittura del codice fra il 1999 e il 2001: Microsoft, come tutte le aziende informatiche, non rende pubblici la consistenza del team di sviluppo dei software.
Il termine più usato? “Merda” (shit). A partire da uno dei file più importanti, senza il quale Windows XP antiGDI (uno strumento antimalware) non funziona. Il file si chiama poo.txt (cacca.txt) e contiene al suo interno una sola parola: merda (shit). «Non so, davvero, perché abbiano inserito quel file, dato che non ci sono riferimenti diretti ad esso» racconta Enderman. Perché chiamare in quel modo un file così importante? Sembra una battuta in codice. Uno sberleffo da nerd.
Poi, dentro un altro file (oleext.idl), c’è un avvertimento: «tieni tutta la merda casuale (random shit) fuori da questa sottodirectory, o muori». Un riferimento, senza giri di parole, ai file generati durante il funzionamento del computer, che non servono a niente.
Gli sviluppatori se la prendono contro le complessità e le imperfezioni delle librerie di sistema: «commctrl (una libreria di controlli grafici, ndr) è un pezzo di merda puzzolente» («commctrl is a stinking piece of shit»), ha scritto uno degli anonimi revisori.
Qua e là nei commenti emergono momenti di panico, rabbia e disappunto: «qui sta succedendo una merda schifosa» (some ugly shit goin’ on here), scrive uno dei programmatori. E anche avvertimenti diretti: «Questo non funziona, perché non puoi modificare un I-frame appena inserito: crea un mucchio di merda».
Contrariamente a quanto ci si aspetterebbe, Enderman non ha trovato l’espressione più celebre e pesante dell’inglese, fuck. In compenso, ha trovato moltissimi commenti che contenevano “inferno” (hell), come «What the hell is this» (che diavolo è questo?). Interessante un commento autoironico ed esasperato riguardo una soluzione un po’ grezza: «C’è probabilmente un modo più carino di fare questa procedura in un ciclo ripetitivo, ma che diamine, sono pigro o stupido».
Il linguaggio sporco di Linux (e di Steve Jobs)
Anche il codice di Linux, celebre sistema operativo open source, presenta le stesse caratteristiche, come rivela un articolo. Un informatico, Vidar, ha ideato un’applicazione che calcola quanto spesso ricorrono alcune espressioni nel codice sorgente del kernel (il cuore del sistema operativo) di Linux fra il 1992 e oggi: “crap” (merda) è la più frequente, con picchi di oltre 200 ricorrenze, seguito da “fuck” (fottere) con un picco di oltre 60 ricorrenze, “shit” (merda) con un picco di oltre 40 ricorrenze, e “bastard” (bastardo) poco sopra la decina.

Linus Torvalds fa il dito medio a Nvidia.
Il motivo? Oltre agli sfoghi, in parte questa abitudine è stata influenzata dallo stesso fondatore di Linux, il finlandese Linus Torvalds, informatico passionale e suscettibile. Nel 2012, durante una conferenza pubblica al Aalto Center for Entrepreneurship a Otaniemi (Finlandia), a una donna del pubblico che gli aveva chiesto come giudicasse il livello di collaborazione fra Linux e i produttori di hardware, rispose: «So esattamente di cosa stai parlando. E sono felice di dirti che la collaborazione è un’eccezione piuttosto che una regola. Con Nvidia, in particolare, c’è stato uno dei peggiori momenti critici che abbiamo avuto con i produttori di hardware e questo è davvero triste perché Nvidia cerca di vendere molti chip nel mercato Android, ed è stata la peggior azienda con cui abbiamo mai avuto a che fare… Quindi Nvidia fanculo (fuck you)» e fa il dito medio verso la telecamera.
Torvalds non le mandava a dire a nessuno. Nemmeno con gli altri sviluppatori del programma, che nelle chat apostrofava con l’appellativo di “fucking idiots” (idioti del cazzo): quando, nel 2018, queste chat diventarono pubbliche, Torvalds si scusò e promosse un codice di condotta più rispettoso (come si vede dal crollo di “fuck” nel diagramma in alto).

Steve Jobs era ruvido nei suoi giudizi
E il codice di MacOs, il sistema operativo di Apple? Al momento non esistono analisi sul suo codice. Ma sul suo fondatore, Steve Jobs, sì: lo rivela Walter Isaacson, nel libro biografico a lui dedicato. «Jobs poteva entrare in una stanza, guardare il lavoro di settimane e dire: è una merda, Fa schifo (“This is shit, This sucks”), oppure “What the fuck are you doing?” (che cazzo stai facendo?)». Jobs infatti era noto per il suo stile crudo e diretto: interrompeva, criticava duramente e umiliava pubblicamente i dipendenti. E non guardava in faccia a nessuno: durante una riunione con i vertici della Disney (quando guidava la Pixar), disse all’allora amministratore delegato della Disney Michael Eisner, «You’re full of shit» (dici un mare di cazzate).
Sudore, lacrime, rabbia e bytes
Ma perché gli informatici hanno tutto questo bisogno di sfogarsi? Per capirlo, bisogna raccontare in che cosa consiste il lavoro di un programmatore di un sistema operativo. E’ un compito certosino e ciclopico: deve impostare il funzionamento di ogni processo che governa la macchina, i driver, la sicurezza, la gestione della rete… Sminuzzando ogni procedura nei suoi singoli passi: basta un punto, uno spazio, una lettera di troppo o di meno e tutto va a ramengo. Il suo codice è parte di un sistema con milioni di righe, e deve integrarsi con il lavoro di centinaia o migliaia di altri sviluppatori sparsi per il mondo. Una mole di lavoro pazzesco, estremamente complessa, che deve fare i conti con la fretta: le scadenze di consegna sono molto strette, per non lasciare alla concorrenza il tempo di occupare fette di mercato. Dunque un lavoro complicato, stressante, faticoso, pieno di contrattempi.
E le parolacce ben si prestano a una comunicazione diretta e veloce, che va dritto al problema senza giri di parole: un codice che funziona male o che non si integra nel sistema è «una merda». La rabbia, la frustrazione, l’aggressività verso i contrattempi o i colleghi che lavorano male vengono sfogate con queste espressioni, perché le parolacce servono proprio a sfogare il dolore: infatti sono tipiche dei lavori di fatica (imprecare come un camallo, un fabbro, un marinaio…. lo raccontavo in questo articolo).

Alcuni disegni osceni a margine di manoscritti medievali.
Ma le parolacce servono anche a sfogare la noia: il linguaggio di programmazione è molto astratto, ostico e spesso ripetitivo. Chi non ha mai sfogato la monotonia di una lezione o di un libro facendo scarabocchi o battute triviali ai margini di un libro? E’ un comportamento tutt’altro che moderno: a margine dei manoscritti copiati dai monaci medievali, dal 1200 in poi, in Francia, Inghilterra e Paesi Bassi sono stati trovati decine di lamentele («Ora che ho copiato tutto, per amor di Cristo, dammi da bere») o anche disegni grotteschi e osceni: una suora che raccoglie peni da un albero, una donna che cavalca un mega fallo, un uomo che fa flatulenze,un altro che defeca su una coppia di innamorati e così via. Questi disegni si chiamano “drollery” (immagine grottesca) e sono una forma particolare di “marginalia” (note a margine): anche a distanza di secoli e di enormi progressi tecnologici, un lavoro noioso e ripetitivo suscita le stesse reazioni.
Più imprechi, meglio programmi
Ma se le parolacce fossero qualcosa di più di un semplice sfogo? Se l’è chiesto un informatico greco, Alexandros Stamatakis, docente al Karlsruhe Institute of Technology (Germania), che nel 2023 ha affidato a un suo studente, Jan Strehmel, una tesi di laurea per verificare se la presenza di parolacce influenzasse la qualità del codice. Nel libro “Clean code”, il guru dell’informatica Robert Cecile, ha scritto le linee guida per scrivere un buon codice. Le sue regole stabiliscono, tra le altre cose, che non si dovrebbero usare toni sdolcinati o giochi di parole durante la denominazione di variabili, funzioni e classi. E le parolacce? Secondo Strehmel non avrebbero influenzato la qualità del codice, e per dimostrarlo ha usato un metodo efficace.
Un programma chiamato SoftWipe, sviluppato dal laboratorio di Stamatakis, misura l’aderenza di un codice agli standard di programmazione, come l’uso di controlli di qualità e una struttura semplice. Così l’autore ha recuperato da GitHub molti codici open source scritti in linguaggio di programmazione C: circa 3.800 esempi di codice contenente parolacce (verificate da una lista di 300 espressioni scurrili in inglese), insieme a 7.600 esempi di codice che ne erano privi. Risultato: il codice volgare ha ottenuto un punteggio (5,9) di circa mezzo punto superiore rispetto al codice che non ne conteneva (5,4), su una scala massima di 10 punti. Dunque, più imprechi, meglio programmi. Come si spiega un risultato del genere?
Lo psicologo cognitivo Benjamin Bergen dell’Università della California di San Diego, nonché studioso del turpiloquio, ha dato un’interpretazione su cui sono d’accordo: «I programmatori che imprecano potrebbero essere più coinvolti emotivamente nel loro lavoro rispetto a quelli che non lo fanno, il che potrebbe portarli a realizzare prodotti di qualità superiore».
Parolacce: l’unica cosa che i robot non possono rubarci (per ora)



Confermo. Scrivo codice da anni e cosa c’è di meglio che chiamare una variabile come un insulto o un’imprecazione? Soprattutto quando il codice non ne vuole sapere di funzionare