Questa intervista è stata realizzata a Milano in occasione di Codemotion 2016, la più grande conferenza italiana a tema tech. Non perdere le prossime edizioni di Codemotion.Alla fine degli anni Ottanta, il mio professore di Informatica si laureava: erano gli anni in cui LaTeX si stava diffondendo in tutto il mondo. LaTeX è un software che permette di processare ed editare testi scientifici, categorizzarne il testo in classi e compilare il testo/sorgente che scriviamo — rendendolo a tutti gli effetti un vero e proprio linguaggio di programmazione.
Pubblicità
A differenza di tanti suoi coetanei, il mio professore non si trovava particolarmente bene con LaTeX: preferiva un altro software simile a XY Write — un word processor con alte possibilità di personalizzazione in voga durante l'era DOS e i primi anni di Windows 3.1. Diversi anni e peripezie dopo, la versione cartacea della sua tesi si trova ad ammuffire in qualche scantinato ed è inaccessibile nella sua forma digitale perché priva di un software capace di convertirla in un formato leggibile. Insomma, la tesi del mio professore è una delle tante vittime dell'obsolescenza digitale.Con il passare degli anni e il moltiplicarsi dei software vittime di questo tipo di dinamica, sono molti gli informatici e i ricercatori che si sono impegnati in progetti per la salvaguardia del codice sorgente di tutti quei servizi che saranno inevitabilmente destinati all'obsolescenza. Fra questi, uno dei progetti di maggior rilievo è Software Heritage, nato con l'obiettivo di salvaguardare i contenuti digitali dal rischio dell'obsolescenza conservandone il codice sorgente.Questo progetto nasce in Francia ma tra i suoi fondatori ci sono anche degli italiani: Roberto di Cosmo e Stefano Zacchiroli. Il primo è uno degli eroi del software libero, autore di "Hijacking the world: the dark side of Microsoft " ed oggi uno degli scienziati informatici più apprezzati in Francia e direttore dell'IRILL (Initiative pour la Recherche et l'Innovation sur le Logiciel Libre). Stefano Zacchiroli, anch'egli scienziato informatico, è stato presidente del Debian Project (Debian è il sistema operativo a Software Libero per eccellenza) e dell'Open Source Initiative.
Pubblicità
"Il software è la chiave per accedere alle informazioni e una parte fondamentale del patrimonio umano."
Pubblicità
"Siamo entrati nell'era del web semantico e, in futuro, serve uno strumento che garantisca la leggibilità dei software per lo sviluppo dei Linked Data."
Pubblicità
Motherboard: Come funziona Software Heritage? Si tratta di un indicizzatore di codice oppure di un vero e proprio mirror — ovvero, una copia esatta di un insieme di dati — che mantiene delle copie carbone aggiornate del codice?Software Heritage è un archivio di tutto il software pubblicamente accessibile in formato codice sorgente, in quanto bene comune dell'umanità che non possiamo correre il rischio di perdere. Software Heritage è quindi in primis un mirror di software disponibile altrove, che permette di recuperare copie carbone dello stesso, comprensive di tutta la storia del suo sviluppo (in gergo "commit" e altre informazioni simili), nel caso in cui dovesse sparire da dove era inizialmente ospitato. In seconda battuta Software Heritage è anche un 'indicizzatore' di codice, come necessità pratica che sorge rapidamente quando si vuole cercare qualcosa in un archivio di queste dimensioni.Volendo fare una stima, quanto è imponente in termini di byte il lavoro che Software Heritage si prefigge di svolgere?Sebbene ancora in beta, il nostro archivio contiene già un mirror completo e aggiornato di GitHub, più la quasi totalità della storia delle release dei progetti Debian e GNU. Il tutto corrisponde a circa 3 miliardi di file sorgenti unici e 700 milioni di commit, che occupano circa 200 TB. La stima del lavoro che resta da fare è ovviamente un esercizio molto difficile, ma in prima approssimazione pensiamo ci sia almeno altrettanto (ovvero un fattore 2x) da archiviare. Più ovviamente ciò che di nuovo viene costantemente pubblicato.
Pubblicità
La riproducibilità digitale, in moltissimi casi, ha di fatto eliminato la necessità di razionalizzare le operazioni di archiviazione: io stesso conservo migliaia di file di fatto inutili. Voi come state trattando questo problema?Esistono due grossi approcci all'archiviazione digitale. Uno di tipo museale, che prevede solitamente di identificare oggetti (software, nel nostro caso) "interessanti" e di archiviare per ognuno di essi tutto ciò che li riguarda, per potere poi ricostruire e raccontare la loro storia senza tralasciare nulla.In Software Heritage, optiamo per un approccio nativamente esaustivo che prevede in primis l'archiviazione di tutte le grandi piattaforme di code-hosting (GitHub, Bitbucket, SourceForge, GitLab, etc.) e le distribuzioni di software esistenti (Ubuntu o Debian, ma anche i repository dei vari package manager, come npm, pip, etc.). Inoltre permettiamo agli utenti la segnalazione di altro software, disponibile online in maniera meno sistematica/organizzata, che ha bisogno di essere aggiunto al nostro archivio. Siamo convinti che l'approccio museale non sia incompatibile con il nostro, ma che possa essere implementato in seconda battuta, appoggiandosi al nostro archivio per tutto ciò che riguarda il codice sorgente.
In che modo l'ecosistema della programmazione si sta attrezzando per evitare incidenti come quello avvenuto nel 2016 a seguito della rimozione di un codice sorgente pubblicato su un database online e che ha quasi rotto internet?
Pubblicità
Quel caso specifico fu dovuto a più fattori. Alcuni legati alla indisponibilità del codice sorgente (e quindi alla sua non archiviazione) ed altri più tecnici dovuti alla gestione dei pacchetti. Software Heritage può aiutare a risolvere la prima parte del problema, garantendo che il software pubblicato da qualche parte sul web resti disponibile anche nel nostro archivio. Questo permetterà di implementare meccanismi automatici di fallback che i package manager potrebbero utilizzare, usando Software Heritage come "piano B". Stiamo già lavorando in questo senso con le varie iniziative che si interessano ai cosiddetti reproducible builds, che sono tra i primi progetti a scontrarsi con la periodica sparizione di versioni specifiche di software pubblicati sul web.È possibile definire il lavoro di Software Heritage anche politico? La tendenza alla centralizzazione del mondo digitale osservata negli ultimi anni rischia di snaturare la vostra missione a causa di una violenta istituzionalizzazione?Il lavoro di archiviazione di codice sorgente è eminentemente politico, nel senso che risponde a un bisogno reale ed urgente, sebbene ancora poco percepito, della nostra società. Il software "media" l'accesso all'informazione digitale: senza software non possiamo vedere le foto delle nostre vacanze, ascoltare musica, o leggere estratti conto e cartelle cliniche. In particolare, è il codice sorgente (e non i programmi eseguibili) che contiene la 'conoscenza' necessaria ad interpretare tutte le informazioni digitali che fanno parte della nostra vita quotidiana. Non archiviarlo significa prendere rischi enormi in termini di perennità di tutte le altre forme di conoscenza che sono oggi salvate in formati digitali. La centralizzazione di questa missione però non sarebbe un bene: il vantaggio dell'informazione digitale è che si può copiare a costo irrisorio, ed ogni singola copia di qualcosa che rischia di andare persa è utile solo se accessibile a tutti.
Il lavoro di archiviazione di codice sorgente è eminentemente politico, nel senso che risponde a un bisogno reale ed urgente, sebbene ancora poco percepito, della nostra società."
Pubblicità
"Serve un modello di business non-profit sostenibile per l'archiviazione software."
Il giusto equilibrio però è dato da un mix di fonti di finanziamento: una "long tail" di finanziatori che garantisca che nessun singolo attore detenga una percentuale troppo importante delle entrate dell'organizzazione, e finanziamenti pubblici, proveniente da più paesi o anche organizzazioni sovranazionali. Per questo motivo il nostro attuale programma di sponsoring non discrimina sul tipo di entità finanziatrice, anche se finora abbiamo riscontrato maggiore interesse da parte di aziende, per ovvi motivi di ritorno di immagine.Cosa succede se l'archivio di Software Heritage si rompe?Diciamo che non si deve rompere! Scherzi a parte, sebbene il rischio zero non esista mai, stiamo mettendo in atto tutti gli approcci previsti dallo stato dell'arte per minimizzare tale rischio, partendo ovviamente dal mantenere più copie di tutto l'archivio. Attualmente ne abbiamo due, in data center diversi qua in Francia, più una terza in corso d'opera ospitata da un public cloud provider che è tra i nostri primi partner. L'obiettivo finale è avere decine di copie complete (mirror) dell'archivio distribuite geograficamente su tutto il pianeta, sia online che offline.Inoltre, tutto il software che noi scriviamo per realizzare e mantenere il nostro archivio è, esso stesso, software libero (solitamente sotto licenze di tipo copyleft). Questo permette a chiunque di verificare come operiamo, identificare e segnalarci eventuali bug e, perché no, darci una mano in questa importante missione!