Dentro ogni PC con Windows: parolacce, commenti shock e sorprese nel codice sorgente

La pubblicazione del codice sorgente di Windows XP, vecchia di qualche anno, offre una rara opportunità di esplorazione. L’analisi dei commenti frustrazione, autocritiche e soluzioni "sporche" che fotografano la fatica nello sviluppo di uno dei sistemi più iconici della storia. Un ritratto crudo ma autentico della realtà dei grandi progetti software.

Per festeggiare i 50 anni di Microsoft, Bill Gates ha recentemente pubblicato – nella sua interezza – il codice sorgente di Altair BASIC, primo software sviluppato nel 1975. Il sistema operativo Windows resta invece un software chiuso e proprietario, sebbene l’azienda di Redmond sostenga la filosofia open source e la utilizzi in molteplici sue iniziative. Microsoft non offre quindi il codice sorgente di Windows, fatta eccezione per alcuni soggetti che possono parzialmente visionarlo (entità governative, università e partner industriali sotto NDA).

I contratti di licenza di Windows (EULA), inoltre, vietano esplicitamente le attività di reverse engineering, la decompilazione e il disassemblaggio. In molte giurisdizioni (Europa e USA), le leggi proteggono il software come opera dell’ingegno, e il reverse engineering è vietato salvo eccezioni molto limitate (i.e. esigenze di interoperabilità, in certi contesti).

Il codice sorgente di Windows XP continua a circolare in rete

A settembre 2020, tuttavia, Microsoft ha dovuto subire un leak imponente. Un archivio contenente decine di gigabyte di dati è sfuggito alle “maglie” della società guidata da Satya Nadella e pubblicato online (anche sulla rete Torrent, in modo che la diffusione del materiale non potesse essere arrestata).

L’archivio trafugato contiene, tra le altre cose, anche il codice sorgente di Windows XP, uno dei sistemi operativi più apprezzati della storia di Microsoft che, ancora oggi, resta in uso su alcuni sistemi vintage.

Dopo il rilascio del 25 ottobre 2001, Windows XP detiene il primato del sistema Microsoft supportato più a lungo. La data di ritiro di Windows XP fu più volte rimandata, per poi essere fissata all’8 aprile 2014, dopo 12 anni e 5 mesi. Anche se Windows XP è un sistema operativo ormai non più supportato, la diffusione del suo codice sorgente resta assolutamente non autorizzata. Microsoft, infatti, detiene tutti i diritti sull’opera e difficilmente dichiarerà mai Windows XP un abandonware: pensate che l’azienda di Redmond ha reso MS-DOS 4.0 open source dopo 38 anni dalla data di pubblicazione…!

Sorgente di Windows XP pieno zeppo di commenti repellenti, parolacce e facezie

Sebbene la condivisione del sorgente di Windows sia proibita, il materiale trapelato online già da qualche anno ha offerto una rara opportunità di esplorare uno dei sistemi operativi più iconici con un dettaglio senza precedenti. L’autenticità del codice è stata rapidamente confermata da sviluppatori anonimi che sono riusciti a compilarlo e avviarlo, nonostante l’assenza di alcune componenti specifiche di applicazioni.

Mentre gran parte dell’attenzione si è concentrata sugli aspetti tecnici, soprattutto sul piano delle funzionalità, Enderman ha intrapreso un’analisi unica e approfondita, focalizzandosi non tanto sull’architettura del sistema, quanto sulle cosiddette “gemme nascoste“: i commenti, le annotazioni e le espressioni informali lasciate dagli stessi ingegneri di Microsoft all’interno del codice sorgente.

L’indagine offre uno spaccato davvero intimo sulle modalità di sviluppo del sistema operativo, sulle sfide affrontate e sulle realtà emotive di un progetto software di scala monumentale.

Nascosto in Windows XP, un ampio catalogo di frustrazioni manifestate dagli sviluppatori

Nel suo viaggio all’interno del codice sorgente di Windows XP, Enderman ha utilizzato una ricerca testuale estensiva a livello di progetto (“project-wide full text search“) con l’obiettivo di individuare l’utilizzo di parole offensive ed elementi che fotografassero le sensazioni dei programmatori Microsoft durante lo sviluppo di Windows XP.

La ricerca ha attinto a un’ampia gamma di termini, dai più espliciti ai più sottili, con l’intento di cogliere le sfumature della comunicazione interna e delle espressioni di frustrazione o umorismo degli sviluppatori di Redmond.

Nei commenti all’interno di Windows XP, gli sviluppatori si scagliano a più riprese contro le complessità e le imperfezioni delle librerie di sistema (“COM control is a stinking piece of s***“). C’è addirittura un file di testo (poo.txt), mai referenziato in alcun componente software del sistema operativo, che contiene la stessa singola parolaccia.

L’uso di “hell” e “heck” (diavolo/cavolo) è comune, spesso in esclamazioni di sorpresa o disappunto come “what the hell is this” (che diavolo è questo?) o “what the heck do we do with this one” (che diavolo facciamo con questo?). Queste espressioni riflettono le difficoltà di coordinazione in un progetto di scala Microsoft e le inevitabili ambiguità nel codice.

Un commento significativo include “what the heck i’m lazy or stupid” (che diavolo, sono pigro o stupido?), un’auto-critica che rivela la pressione e l’autoironia degli sviluppatori.

Esempi commenti nel codice sorgente Windows XP

Pressioni interne e conflitti con il compilatore

Enderman mette in evidenza come nel sorgente di Windows XP siano celati commenti sorprendentemente aggressivi, spesso in commenti diretti ad altri sviluppatori, per imporre direttive o avvertire contro modifiche non autorizzate. Esempi includono: “don’t you dare change anything in here or…” (non osare cambiare nulla qui oppure… [CENSURA]), “keep this contiguous please or…”  (mantieni questo contiguo per favore oppure… [CENSURA]) Questi commenti, sebbene probabilmente iperbolici, evidenziano l’intensità e la pressione sul team di sviluppo.

L’espressione “shut up the compiler” (fai star zitto il compilatore) è estremamente pervasiva, riflettendo una manifesta insoddisfazione per il comportamento del compilatore Microsoft, descritto come “pretty rough” (abbastanza rude). Gli sviluppatori utilizzavano frequentemente direttive (“pragmas“) per sopprimere avvisi e messaggi ritenuti non necessari, al fine di mantenere la concentrazione e l’efficienza.

Tanti commenti iperbolici nel sorgente di Windows

L’incognita del codice legacy

Una delle frasi più ricorrenti è “I have no idea” (non ho idea…), che appare decine di volte in contesti che denotano incertezza sulla funzione, l’origine o la necessità di specifiche sezioni del codice. Commenti come “I have no idea who came up with this wonderful scheme but we have to live with it” (non ho idea di chi abbia ideato questo schema meraviglioso ma dobbiamo conviverci), “I have no idea what Windows 95 would have done” (non ho idea di cosa avrebbe fatto Windows 95), o “no desire to mess around trying to figure it out” (nessun desiderio di perdere tempo a cercare di capirlo) rappresentano una cruda testimonianza delle sfide di gestione del codice legacy, quando la documentazione è scarsa o inesistente e la logica originale di alcune implementazioni è andata perduta nel tempo, portando all’accumulo di debito tecnico.

Compilatore Windows

Il riconoscimento della “bruttezza” del codice

Ancora, come svela Enderman, il codice sorgente di Windows XP custodisce altre “perle”. Tanti commenti descrivono alcune soluzioni, sebbene funzionanti, come subottimali, inefficienti o esteticamente sgradevoli. Il termine “disgusting” (disgustoso) è spesso accoppiato con “hack” (soluzione rapida) o “cludge” (soluzione goffa).

L’appellativo “gross” (grezzo, brutto) è il termine più frequentemente utilizzato per descrivere soluzioni imperfette ma necessarie, spesso per affrontare bug o problemi di compatibilità. E ci sono evidenti ammissioni che rivelano la consapevolezza degli sviluppatori circa la qualità non ottimale, per usare un eufemismo, di alcune sezioni del codice di Windows XP, spesso a causa di vincoli di tempo o requisiti complessi.

L’onnipresenza degli “Hack”

Il termine “hack” è diffuso in modo straordinario nel sorgente di XP, con menzioni del tipo “tons and tons of hack hacks” e persino “triple hacks” per indicare soluzioni a più livelli o particolarmente complesse.

La frequenza della parola sottolinea che gli “hack” non erano eccezioni, ma una parte integrante e quasi inevitabile del processo di sviluppo in un ambiente così complesso e con vincoli di retrocompatibilità. Spesso le indicazioni nel codice sono accompagnate da marcatori come “fix me” (correggimi), indicando la loro natura temporanea o la necessità di una revisione futura.

Uno sguardo d’insieme sul Windows che tutti noi abbiamo installato

L’analisi delle “gemme nascoste” restituitaci da Enderman offre preziosi spunti sulla realtà dello sviluppo software su larga scala. Lontano dall’immagine stereotipata di un processo puramente logico e algoritmico, i commenti permasti nel codice sorgente di Windows XP rivelano la natura profondamente umana e a volte caotica dello sviluppo software. Gli ingegneri sono individui sottoposti a stress, scadenze e frustrazioni: il loro linguaggio nel codice è un riflesso diretto di queste esperienze. E va detto: anche nel kernel Linux emergono spesso commenti fuori dalle righe ed esclamazioni tutt’altro che eleganti.

La pervasività di alcuni termini come “no idea“, “gross“, “disgusting” e “hack” è un indicatore lampante del debito tecnico accumulato in un progetto di lunga data come Windows XP. Le soluzioni “sporche” o temporanee, spesso necessarie per soddisfare requisiti immediati o garantire la compatibilità con hardware e software preesistenti, finiscono per radicarsi a livello di codebase, rendendone la manutenzione e l’evoluzione estremamente complesse.

Le espressioni aggressive e le esclamazioni di frustrazione rivelano le pressioni e le dinamiche, a volte conflittuali, all’interno di un team di sviluppo di dimensioni titaniche. Questo sottolinea l’importanza non solo delle competenze tecniche, ma anche delle competenze relazionali e di coordinamento in progetti complessi.

Le immagini nell’articolo sono tratte dal video YouTube di Enderman.

Ti consigliamo anche

Link copiato negli appunti