Deprecated: Creation of dynamic property Timber\Site::$pingback is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Site.php on line 180

Deprecated: Creation of dynamic property Timber\User::$name is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/User.php on line 118

Deprecated: Creation of dynamic property Timber\Post::$has_disclaimer is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_edit_lock is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_edit_last is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$onesignal_meta_box_present is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$onesignal_send_notification is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$onesignal_modify_title_and_content is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$onesignal_notification_custom_heading is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$onesignal_notification_custom_content is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$tipologia is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_tipologia is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$attributi is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_attributi is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$in_evidenza_newsletter is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_in_evidenza_newsletter is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$inviato_in_newsletter is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_inviato_in_newsletter is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$fonte is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_fonte is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$fonte_url is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_fonte_url is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_primary_category is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_primary_blz_affiliation_attributes is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_primary_content_type is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_primary_attributes is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_primary_speciali is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_focuskw is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_metadesc is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_linkdex is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_content_score is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_focuskeywords is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_keywordsynonyms is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_estimated-reading-time-minutes is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_thumbnail_id is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$response_body is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$status is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_indexnow_last_ping is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_date_gmt is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$comment_status is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$ping_status is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_password is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_name is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$to_ping is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$pinged is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_modified is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_modified_gmt is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_content_filtered is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$guid is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$menu_order is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_mime_type is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$comment_count is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$filter is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71
Dentro ogni PC con Windows: parolacce, commenti shock e sorprese nel codice sorgente

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