Negli ultimi anni si sente spesso nominare termini informatici come “Open Source” e “Software Libero”. Potrebbero sembrare termini riservati agli addetti ai lavori e in effetti forse è così, ma le implicazioni di carattere generale di cui sono portatori possono giustificare una certa curiosità a riguardo anche da parte di chi non si occupa di questo settore.
La maggior parte delle persone associa questi termini a programmi gratuitamente disponibili e non è un'intuizione sbagliata, solo un po' riduttiva. Quando acquistate un software comune, come Microsoft Windows o Office o il Norton Antivirus, vi viene distribuito in una forma che è comprensibile solo da un computer: tentare di risalire al significato di tutto ciò che è codificato in quel programma, quali sono con esattezza le operazioni che compie e soprattutto modificarle, è impresa non impossibile, ma nella pratica la difficoltà è tale da scoraggiare i migliori programmatori. Naturalmente gli sviluppatori del programma che avete acquistato non lo hanno scritto direttamente in quella forma così astrusa. Lo hanno prima scritto in un linguaggio (di programmazione) che, per quanto per la maggior parte delle persone sia comunque incomprensibile, è molto più vicino alla logica del linguaggio umano. Una volta codificato in questa forma gli sviluppatori lo hanno trasformato con un sistema automatico nel linguaggio comprensibile alla macchina. La sequenza di istruzioni contenute nel programma è detta “codice sorgente” quando è nella forma più comprensibile all'uomo e prende il nome di “codice eseguibile” o “binario” quando è nella forma comprensibile, cioè eseguibile, dal calcolatore.
Dopo questa doverosa premessa che vi ha dato le basi per capire ciò di cui stiamo parlando, cerchiamo di capire la differenza che c'è fra un tradizionale software commerciale a sorgente chiuso e uno cosiddetto “libero”.
Una società che distribuisce software a sorgente chiuso custodisce gelosamente il segreto del codice sorgente che i suoi sviluppatori hanno prodotto, ma cerca di diffondere in ogni modo quello eseguibile, di solito a pagamento, ma non necessariamente. Il codice sorgente per essa è, come la formula della Coca-Cola, un segreto industriale da proteggere in ogni modo. Inoltre l'acquirente in realtà non acquisisce la proprietà del software che si appresta ad utilizzare, ma semplicemente una licenza che gli consente di usarlo con una serie di limitazioni stabilite dalla società informatica che ne detiene i diritti. Alcune delle limitazioni più comuni sono quelle che impediscono di fare un numero arbitrario di copie del supporto su cui si trova il programma (per esempio un CD o un dischetto) oppure di installare il programma sul PC di un vostro amico oltre che sul vostro, di ridistribuirlo gratuitamente, di rivenderlo, di vedere e studiare il suo codice sorgente, di modificarlo ecc...
Il software libero, d'altra parte, viene distribuito con delle particolari licenze che hanno caratteristiche peculiari. Descriverò in particolare la licenza che fra queste è probabilmente la più diffusa, la GPL (General Public License), usata per la prima volta dal progetto GNU. Questa licenza obbliga il distributore a fornire all'utente anche il codice sorgente del programma e dà diritto all'utente di leggerlo, modificarlo e ridistribuirlo, regalarlo. Un software libero può essere replicato infinite volte senza commettere reato. La GPL impone però di ridistribuire sempre con la stessa licenza un eventuale software derivato da uno già rilasciato con licenza GPL. A questo punto qualcuno si domanderà come è possibile che il software venga distribuito così liberamente, come può un sistema del genere mantenersi in piedi finanziariamente. Le risposte sono molteplici. La più banale è che alcuni programmatori lavorano gratuitamente, al solo scopo di contribuire alla crescita di una comunità volontaria, o perché questo lavoro gli consente di fare esperienza e dimostrare le proprie capacità. Ma ci sono anche molte società a scopo di lucro che si mantengono scrivendo software open source. Ciò è possibile perché la licenza GPL non impedisce di vendere, ma semplicemente di far pagare il bene immateriale del software: per rendere meglio questa distinzione si può dire che si può guadagnare scrivendo un software su commissione, effettuando consulenze su software open source, installare e configurare per l'utente, spedire su richiesta CD contenenti il software, scrivere libri di divulgazione ed effettuare corsi, fornire assistenza tecnica di vario genere. Questo per dire che un'economia sostenibile, almeno per il momento, basata sull'open source è possibile e il proliferare di tecnologie di questo tipo negli ultimi anni ne è la dimostrazione.
Quali sono le questioni attualmente all'attenzione dell'opinione pubblica a proposito dell'open source? Uno degli aspetti più interessanti di questo genere di software è il modello di sviluppo a cui si accompagna. Essendo il codice sorgente liberamente disponibile è molto più semplice scoprire difetti del software (i cosiddetti “bug”) proprio perché esso è potenzialmente sotto gli occhi di qualsiasi programmatore competente. Nel caso del software chiuso i bug vengono alla luce in ogni caso ma in genere è solo la casa produttrice del software che è in grado di effettuare la correzione. Diversamente per i software liberi in tempi rapidissimi qualche volenteroso spesso può correggersi da sé il difetto e proporre agli sviluppatori “ufficiali” la correzione già pronta (quella che viene generalmente chiamata “patch”). I sostenitori dell'open source ritengono che questo renda il software libero addirittura qualitativamente migliore rispetto a quello tradizionale, anche perché, sostengono, un codice sorgente scritto per essere letto da chiunque tende ad avere una struttura più chiara e facilmente modificabile. Un'altra questione fondamentale è l'insieme dei diritti e possibilità che acquisisce l'utente solo se il software è libero. L'impossibilità di leggere il codice sorgente comporta che l'utente non è in grado di conoscere esattamente cosa sta facendo il programma sul proprio computer e ciò ha diverse implicazioni sulla possibilità che venga violata la riservatezza dei propri dati per mezzo di abusi della società produttrice di software. Ad esempio spesso si è insinuato che Microsoft abbia potuto predisporre dei sistemi di accesso non documentati e non autorizzati sui computer che eseguono Windows, sistemi di cui potrebbero essere a conoscenza esclusivamente agenzie di spionaggio americane, come la NSA (National Security Agency). Sto parlando delle famigerate “backdoor governative”. Ma questa considerazione si può anche generalizzare: è noto il caso di un uomo negli USA che ha contestato la sanzione per guida in stato di ebbrezza che gli era stata comminata in quanto il codice sorgente del software utilizzato per calcolare il tasso alcolico nel sangue non era liberamente disponibile e quindi l'autorità non poteva dimostrare la correttezza degli algoritmi usati nell'esame e il tribunale gli ha dato ragione. Ulteriore peculiarità del modello open source è quello della formazione di un gran numero di cosiddetti “fork”. Accade cioè che, siccome i grandi progetti rendono disponibile il codice sorgente, chiunque può decidere di riutilizzare quel codice per fondare un altro progetto alternativo (appunto un fork) che prende il via dal primo ma che poi prende una strada diversa. Sarà poi una sorta di selezione naturale effettuata dagli utenti a decidere se c'è spazio per entrambi i progetti o a decretare il successo soltanto di uno dei due.
Alcuni osservatori del fenomeno ritengono che il modello open source sia il frutto di un entusiasmo ideologico di alcuni programmatori che ha successo esclusivamente perché finanziato da grandi colossi informatici come IBM, Sun Microsystems e altri allo scopo di ottenere software di qualità a bassissimo costo a spese di sviluppatori sottopagati o non pagati per poi basare i guadagni su attività collaterali. Altri ritengono che questo modello sia il futuro dell'informatica.
Il più celebre software rilasciato con licenza GPL è probabilmente GNU/Linux, un sistema operativo libero, un concorrente del quasi-monopolista Microsoft Windows, per intenderci. Negli ultimi anni Linux si sta diffondendo sempre di più e non più soltanto come sistema operativo dei server, ma anche sui personal computer domestici di utenti a volte non molto esperti. Utilizzare questo sistema operativo ha vantaggi e svantaggi, ma si spera che questi ultimi vadano a diminuire col passare del tempo. I vantaggi più evidenti sono quelli tipici di ogni software libero, a cominciare dalla gratuità, ma se ne aggiungono altri che sono interessanti se visti in contrapposizione al più diffuso Windows: pur essendo Linux relativamente recente (è nato nel 1991) è un sistema operativo di tipo Unix, una famiglia di sistemi che hanno origine addirittura alla fine degli anni '60. Gli Unix hanno fatto la storia dell'informatica e sono stati pensati fin dall'inizio per funzionare in presenza di più utenti, di più programmi in esecuzione contemporaneamente e per essere collegati in rete. Usare Linux che ha la struttura dei sistemi di questa famiglia ha dei vantaggi notevoli per la sicurezza. Inoltre, ma questo è solo un vantaggio temporaneo, essendo Linux al momento molto meno diffuso di Windows, non è un bersaglio molto conveniente per chi vuole scrivere virus, anche perché i suoi utenti sono spesso molto più smaliziati di un comune utente di Windows, e di solito sanno come evitare di commettere imprudenze. Aggiungiamo a questo che la stragrande maggioranza delle applicazioni più diffuse disponibili per Linux è anch'essa costituita da software libero. Ciò significa che scegliendo Linux si ha a disposizione un'enorme quantità di software gratuito e libero. Tuttavia oltre ai vantaggi ci sono anche degli aspetti che ostacolano la diffusione di questo sistema operativo. Uno di essi è la minore compatibilità del sistema operativo con le periferiche hardware. E' un problema che va rapidamente scomparendo, ma Linux è comunque ancora indietro rispetto a Windows nel supporto a stampanti, scanner, modem ecc... questo soprattutto perché spesso i produttori di hardware non sono molto interessati a distribuire software o documentazione che consenta a Linux di funzionare facilmente con i propri prodotti, visto che la diffusione di questo sistema non è ritenuta tale da giustificare l'investimento. Un altro problema di Linux è la scarsità di software commerciale disponibile, specialmente in certi settori particolari. Per esempio manca un software professionale equiparabile ad AutoCAD, ma anche questa si spera sia una lacuna destinata a colmarsi col tempo e la diffusione. Infine c'è una caratteristica del target del sistema che ne limita la diffusione: si tratta dell'inerzia degli utenti e delle aziende che necessitano di un minimo di formazione per riconvertire le proprie conoscenze acquisite quasi esclusivamente lavorando su sistemi Microsoft, ed essere pronti all'uso disinvolto di Linux.
Software libero di grande successo si sta diffondendo molto anche sulla piattaforma Windows. Di solito si tratta di software che partendo dallo stesso codice sorgente può essere trasformato in codice eseguibile sia su Linux che su altri sistemi. Alcuni esempi sono: OpenOffice.org in alternativa a Microsoft Office, Firefox ad Internet Explorer, Thunderbird ad Outlook Express, The Gimp ad Adobe Photoshop, ecc...
Nel caso di OpenOffice.org la diffusione è limitata anche dalla politica Microsoft che non apre il formato dei documenti di Office, ovvero non viene resa pubblica la documentazione che spiega la struttura di questi formati (che si modificano anche nel tempo) e gli sviluppatori di software open source sono costretti a sforzi notevoli per raggiungere una compatibilità soddisfacente con essi oltre che a rincorrere nel tempo i loro cambiamenti. Lo stesso avviene con alcuni formati multimediali e protocolli di comunicazione chiusi, come per esempio quello del network di messaggistica istantanea MSN. Di fatto queste politiche portate avanti da chi detiene le quote di mercato più rilevanti ostacolano l'interoperabilità con i software prodotti da terze parti.
Ci sono d'altra parte diversi casi in cui il software libero ha una quota addirittura superiore a quella di qualsiasi altro concorrente: in questo caso l'esempio principale è Apache. Questo è un webserver, cioè un software in grado di gestire uno o più siti web. Apache è il webserver più diffuso in assoluto, ben più del suo inseguitore Microsoft IIS.
Qualcuno sostiene che il modello di sviluppo open source sia destinato col tempo a sostituire quasi completamente il modello tradizionale e addirittura alcuni ricercatori stanno cercando di capire quali sono i segreti di questo modello comunitario, che ha decretato il successo inaspettato di alcuni importantissimi software, allo scopo di trasferire questi vantaggi ad altri contesti oltre quello informatico. Forse Wikipedia si può considerare proprio un esperimento in questo senso: il trasferimento del modello libero e comunitario dalla programmazione informatica alla stesura di un'enciclopedia.
Solo il futuro potrà dirci se questo modello (non solo) economico è sostenibile sul lungo periodo ed è una rivoluzione appena scoppiata oppure se è solamente il prodotto di un'ondata di entusiasmo, in alcuni casi ideologico o accademico, dei programmatori, e che viene cavalcato da grandi società di software, ma destinato a spegnersi come un fuoco di paglia col passare degli anni.
Continua...