Una storia di libero software

di Francesco Nidito

Creatività intellettuale, collaborazione operativa, condivisione dei saperi e vocazione internazionale: un racconto breve per spiegare (a tutti) come nasce e si sviluppa un progetto free software.

Beatrice, guarda Alberto, sorride e se ne esce: “Bello! Anche io stavo pensando di fare un programma così qualche tempo fa... ti va se ci lavoriamo insieme?”. Occasione da non sottovalutare per un programmatore.
Una licenza è un contratto tra l'autore di un software e chi ne usufruisce. La licenza GPL consente l'uso da parte di tutti, la possibilità di studiare il codice e di modificarlo e ridistribuirlo secondo la stessa licenza

Qualche tempo fa Luca Nicotra mi ha chiesto di scrivere un pezzo che descrivesse come si svolge lo sviluppo di un progetto free software. Da subito, mi sono chiesto, anche con una certa preoccupazione, come poter spiegare un po' a tutti, specialmente ai non tecnici, come funziona lo sviluppo di un progetto software (in particolar modo di un progetto free software). La maggiore preoccupazione rimane quella di diventare troppo tecnici da un lato e quella di essere troppo vaghi (e quindi rendere il pezzo inutile) dall'altro. Premesso che non sono uno scrittore (tipicamente mi avventuro sono nella scrittura tecnica), ho comunque deciso di fare di questo pezzo una specie di racconto, più che un resoconto noioso e pieno di tecnicismi. Spero vivissamente che vi possa interessare e fornire qualche informazione in piu' su un mondo fatto di "smanettoni" che passano delle giornate davanti ad un monitor, parlando per sigle, che riescono a ridere alle battute dei matematici sulla "pettinabilità di una sfera" e che non si offendono minimamente a essere chiamati "nerd". Nessun programma nasce "free". I programmi nascono per necessità di chi li scrive (o dalla necessità di un committente esterno). Alcuni di questi programmi, per motivi filosofici di chi li crea, divengono free e vengono aperti a tutti, con la possibilità di studiarli, usarli e modificarli.
Alberto era andato a mensa, come tutti i giorni. E come tutti i giorni era andato con Beatrice, uno dei rarissimi esempi di ragazza che studia informatica (che nel mondo informatico sono circa il 5% della popolazione: a questo proposito si ringrazia la natura per aver reso informatici ed umani interfertili al solo scopo di non far estinguere gli informatici). Alberto quel giorno era pensieroso più del solito ma in maniera automatica si era preso del cibo, effettuando anche delle scelte complesse: banana o yogurt? Al tavolo non era stato molto frizzante, non parlava. Beatrice un po' incuriosita gli fa: "Che hai oggi?". Alberto, assorto nei suoi pensieri, guardando verso la buccia di banana nel piatto sembra organizzare una frase di senso compiuto e poi se ne esce: "Ieri sera ho iniziato a scrivere un programmetto... niente di che... è un coso che mi ripulisce la home dai file inutili". Cerco di venire incontro ai lettori, la "home" in un sistema operativo Linux (forse il più noto dei sistemi free) è la cartella principale per un utente del sistema. Dato che un sistema Linux può essere usato da più persone, ogni utente ha uno spazio dedicato per i suoi files, appunto, la sua "casa", la "home". Per quanto riguarda i file "inutili", qui ci si riferisce, ad esempio ai file che i programmi lasciano nella "home" dell'utente dopo l'esecuzione e che non sono più necessari, ad esempio, dopo aver modificato un file, molti programmi lasciano ancora la vecchia copia del file nella home dell'utente (seguendo la filosofia del "non si sa mai"). Beatrice, guarda Alberto, sorride e se ne esce: "Bello! Anche io stavo pensando di fare un programma così qualche tempo fa... ti va se ci lavoriamo insieme?". Occasione da non sottovalutare per Alberto, anche se tutti i programmatori sono molto gelosi dei programmi che scrivono. Alberto torna ad osservare la buccia della banana... è già scurita: "Ma sì, dai che ci lavoriamo un po' insieme... mi sembra un'ottima idea". Passa la giornata. Alle 16 finisce la lezione più noisa della storia ed Alberto e Beatrice se ne vanno in aula computer. Alberto si mette a sedere davanti al monitor, sembra un po' Kirk in "Star Trek" seduto in plancia. Accede alla sua "home" ed apre il programma dentro un editor di testi, si scansa un po' di lato per far vedere meglio a Beatrice la sua opera d'arte. "Tutto qui?" fa notare Beatrice puntando il dito accusatorio contro il monitor. Alberto è in serio imbarazzo, del resto si rende conto che il programma è ancora in stato molto "embrionale"... nel senso che è composto da solo tre righettine di codice che di per se non fanno niente. Serve una risposta intelligente: "A dire il vero ho appena iniziato" apostrofa un po' stizzito Alberto... la risposta, come ovvio, non è intelligente. "Lavoriamoci un po' su", incoraggia Beatrice, e poi prosegue "ma cosa è che dovrebbe fare questo programma?". Sono passati un po' di giorni, il programma di per se non è male, non ha ancora tutte le meravigliose funzionalità che Alberto si sogna di notte, compreso la finissima e garbatissima icona a forma di WC, che si dovrebbe riempire quando i file inutili sono stati collezionati e pronti per essere distrutti, dopo che l'utente dirà al programma di farlo, tirando una elegantissima catenella virtuale. Beatrice non lo sa ancora, se lo sapesse, probabilmente avrebbe già lasciato il progetto. Oggi c'è riunione di progetto. Alberto e Beatrice sono a mensa e stanno per scambiarsi il solito fiume di idee quando Beatrice se ne esce in maniera inaspettata dicendo: "Sai, l'altra sera ho incontrato Carlo?". Alberto riesce solo a ricordare le note de "Il triangolo no" di Renato Zero, ed il jingle che gli passa per la mente è: "lui chi è? il suo ruolo mi spieghi qual è?". Alberto deve essere discreto ed avere tatto: "E chi cazzo è?", non si nota ma il tatto c'è stato... ha detto di peggio in vita sua... una volta anche in sede d'esame. "Ma dai che lo conosci... è quel ragazzo che fa il pendolare da Carrara... quello che ha fatto con noi l'esame di base di dati l'anno scorso. È impossibile che tu non te lo ricordi... dai su... era quello simpatico, che faceva le battute per smorzare un po' la tensione prima dell'orale. Ma davvero non te lo ricordi?". Spezziamo una lancia a favore di Alberto, non è proprio che non se lo ricorda, è solo che era riuscito a dimenticarlo: per un programmatore, trovare qualcuno più bravo di te, molto più bravo, è un po' uno smacco, ogni programmatore, oltre ad essere geloso del suo codice ne è, soprattutto, orgoglioso! Alberto si arrende: "Ah sì... quel Carlo... e che dice? Sta bene?". Beatrice è una persona entusiasta per natura: "Gli ho parlato del nostro progetto, sai? Dice che gli sembra interessante e che vorrebbe partecipare anche lui". Alberto è quasi in lutto, sta cercando di ricordarsi se a casa ha una faccia nera da potersi mettere al braccio: "Ma non è pendolare? E scende solo per gli esami? Quando ci potrebbe lavorare con noi?". Beatrice sembra avere una risposta per tutto: "Sai, mi ha detto che lui ha un account su sourceforge e che, se vogliamo, potremmo farcelo anche noi. Poi potremmo mettere il codice nel repository di sourceforge in modo da lavorarci anche a distanza". Un'altra nota: sourceforge è il più grande sito che raccoglie progetti di free software ed open source di Internet. Gli utenti di sourceforge possono mettere sul sito i loro progetti e fare in modo che altri utenti possano scaricarli liberamente. Inoltre, sourceforge mette a disposizione dello spazio web per le pagine di presentazione e documentazione del progetto. Sourceforge mette a disposizione degli utenti anche un repository per il codice sorgente, che da la possibilità, non solo di conservare il codice, ma anche di tenere traccia delle modifiche che sono state apportate nella storia del progetto. Alberto è definitivamente in lutto. La gente potrebbe avere il suo codice, leggerlo, guardarlo e scimmiottarlo per le castronerie che ha scritto. Ma sa essere politically correct: "E tu, Beatrice, che ne pensi?". Beatrice sorride, si appoggia al tavolo della mensa, guarda Alberto ed apre la bocca. Ne escono dei suoni: "Secondo me sarebbe bellissimo! Ti rendi conto? Il nostro software a disposizione di tutti e poter contribuire attivamente allo sviluppo del codice libero!". Alberto, colpito da due siluri, affonda. Quando ormai la plancia di comando sta per essere inghiottita dalle gelide acque dell'Atlantico lancia il suo grido di rivincita: "Sì, sembra bello anche a me". Si è inabissato. Sono passate alcune settimane ed il progetto è su sourceforge, i nostri eroi hanno imparato come funziona il repository (non era intuitivo) e il progetto sta crescendo, hanno scelto come licenza del progetto la licenza GPL: Carlo è stato convincente. Beatrice entusiasta. Alberto accondiscendente. Qualche tempo prima, in una riunione di progetto, Carlo aveva parlato delle cose meravigliose che la licenza GPL comporta... sembrava anche un esperto in proposito: "Una licenza è un contratto che si instaura tra l'autore, o gli autori, di un software e chi ne usufruisce. La licenza GPL consente l'uso da parte di tutti, la possibilità di studiare il codice e di modificarlo e ridistribuirlo secondo la stessa licenza. È possibile che, una persona che ha scaricato il software e lo ha modificato possa decidere di rivenderlo. Nel momento stesso in cui decidesse di farlo, dovrebbe comunque dare i sorgenti del programma a coloro i quali lo hanno comprato." La possibilità che qualcuno potesse rivendere il loro software non era molto piaciuta a Alberto ma poi si era detto fra se e se: "Dovrebbero se non altro renderlo più bello del mio"... ed era passata la paura (ho già accennato all'orgoglio dei programmatori nei confronti del loro stesso codice, vero?). Era periodo di esami ed il progetto andava un po’ a rilento. In effetti sarebbe stato bello dire a mamma e papà: "questa sessione non ho dato manco un esame... ma tu vedessi che bel programma che ho scritto!". Per quanto riguarda Beatrice non saprei dire, ma le finestre a casa di Alberto sono abbastanza larghe da garantirne il passaggio durante una eventuale defenestrazione, in risposta all'entusiastica notizia del salto triplo carpiato della sessione. Sempre durante il periodo di esami successe l'inimmaginabile, o almeno fino a quel momento lo era sembrato: era arrivata una email da un tizio il cui nome era impronunciabile dalla Cina! Aveva scaricato il loro programma! E gli era pure piaciuto! Alla ricezione della mail Alberto aveva preso il cellulare e, ignaro dell'essere nel cuore della notte ed aveva telefonato a Beatrice. Il telefono squillava. Rispose Beatrice con la vocina flebile di chi viene da un mondo fatto di cuscini di piume e avvolgenti coperte e aveva detto: "Pronto... ma che ore sono?... Ma chi sei?". L'entusiasmo era troppo: "Bea! hai letto la mail?". "Chi? Cosa? Ma che ore sono?". "No, dico: ma hai visto la mail?" "La mail di cosa... scusa? Ma sono le 4...". "Un tizio ha scritto una mail dalla Cina, sta usando il nostro programma!" "Eh? Ma de' che? Se ne parla domani...". Beatrice riattacca la cornetta. Solo lei. Alberto resta con la cornetta in mano a guardare la mail e pensa tra se e se: "Siamo famosi!". L'indomani mattina si trovarono tutti e tre, Alberto, Beatrice e Carlo per discutere della mail e dell'insperato successo: c'era qualcuno che usava il loro programma! Alla mail ne seguirono altre, una conteneva la notifica di un bug scoperto dallo stesso ragazzo cinese e la seconda dei ringraziamenti e dei suggerimenti su altre funzionalità da aggiungere. Qualche tempo dopo, un altro utente dopo aver usato il programma aveva mandato, non solo la notifica di un bug, ma anche un pezzo di codice che descriveva come correggerlo. All'unanimità fu votato che quest'ultimo, Damian dal Kansas, divenisse insieme a loro uno degli sviluppatori del progetto: il gruppo si era ingrandito ed internazionalizzato. Programmatori/utenti si erano trovati a scambiarsi idee e a collaborare, per la gioia di farlo e per la gioia di fare qualcosa che potesse essere utile anche ad altri. Alberto, forse, è il più contento di tutti... una storia iniziata con un "Tutto qui?" stava proseguendo nel migliore dei modi: molte persone avevano scaricato il programma e lo stavano usando, qualche persona aveva mandato suggerimenti e altri avevano aiutato a migliorare il progetto. Adesso sono in 8 persone a seguire il progetto ed il progetto è diventato più grande e più funzionale, il massimo sarebbe quello di essere distribuito direttamente con Linux. L'unica cosa che ad Alberto non va giù è che tutte le volte che tira fuori l'idea dell'icona a forma di WC, tutti gli rispondono di no. Chissà perché?
Nota
Fatti e situazioni che possano ricondurre a persone reali sono volute e scritte nel modo più offensivo possibile... sto scherzando... ma forse no ;-)
Copyright (C) 2009 Francesco Nidito. Questo documento è distribuito secondo la licenza: "Attribuzione-Non commerciale-Condividi allo stesso modo 2.5": http://creativecommons.org/licenses/by-nc-sa/2.5/it
 

Mercoledì, 29 luglio, 2009 - 17:40
Eccetto dove diversamente specificato i contenuti di questo sito
sono rilasciati sotto la licenza Creative Commons: Attribuzione della paternità

Licenza Creative Commons

cc Associazione Luca Coscioni, via di Torre Argentina, 76 - 00186 Roma, Italia.
Tel. 06 689 79 286, Fax. +39 06 23 32 72 48, Email info [at] lucacoscioni.it
Posta Certificata: associazionelucacoscioni [at] pec.it