L'informatica è fatta di molte sigle e termini ambigui! L'utente molto spesso non si sofferma sul reale significato di un termine e a mente ne definisce, quasi sempre, uno proprio. Il modo di ragionare potrebbe essere corretto ma come dicevo all'inizio non sempre giungiamo da soli alla definizione più ovvia.
Facciamo qualche esempio, mai sentito parlare di software free?
La traduzione del termine nella nostra lingua punta inevitabilmente a: software libero, e qui sono sicuro che in molti assoceranno questa parola anche al software gratis. Il problema è che in inglese la parola free significa sia libero che gratis, ed è proprio questa ambiguità a generare non pochi problemi.
Un software gratis, detto anche freeware, viene distribuito senza alcun compenso con o senza codice sorgente. Qui l'aspetto più importante è quello economico, nulla è dovuto se siamo interessati ad usare il software (che in molti casi è liberamente diplicabile e ridistribuibile) [2].
Un software libero, ed è questa è la giusta traduzione, è invece tutt'altra cosa! Una definizione rigorosa di software libero ci viene rilasciata da Richard Stallman, il fondatore dalla FSF (Free Software Foundation). Un software libero è da considerarsi tale se e solo se gode di queste proprietà:
- Libertà 0: il programma può essere usato da tutti per qualsiasi scopo;
- Libertà 1: il programma può essere studiato e modificato nel codice;
- Libertà 2: il programma può essere copiato e distribuito per aiutare il prossimo;
- Libertà 3: il programma migliorato va ridistribuito a tutta la comunità;
Il software libero, dunque, è una questione di libertà, non di prezzo [1].
E se ora vi direi di pensare alla parola open source?
Un software open source è un software che permette ai suoi utilizzatori di apportare modifiche e di studiarne il codice. Software open source vuol dire software a codice aperto. Tutto questo viene proposto per migliorare, nel tempo, il software stesso. Internet ha permesso al software open source di crescere molto rapidamente, annullando di fatto le distanze esistenti fra i vari programmatori.
La collaborazione, mediante l'accesso al codice sorgente, favorisce lo sviluppo del software che altrimenti, se portato avanti da pochi individui, risulterebbe assai più lenta. Open source, quindi, è più una metodologia di sviluppo per il software e osserva i seguenti principi di base:
- Libertà di ridistribuire il software: l'utente che effettua la ridistribuzione del codice decide se farlo gratuitamente oppure dietro compenso;
- Libero accesso al codice sorgente che definisce il programma;
- Il software derivato dal codice sorgente del software stesso e quindi modificato va rilasciato sotto la stessa licenza;
- Integrità del codice sorgente dell'autore;
- Nessuna discriminazione contro gruppi o persone nel rilascio della licenza;
- Nessuna discriminazione contro l'uso dell'applicazione;
- La licenza deve essere distribuibile;
- La licenza non può essere specifica per un prodotto;
- La licenza non deve coinvolgere altri software;
- La licenza deve essere tecnologicamente neutrale;
Maggiori dettagli sui principi sopra elencati possono essere ricercati in [3]. E' evidente che alcuni di questi principi hanno motivo di esistere solo dopo aver parlato delle licenze. Ogni software, anche quelli open source e free, viene lasciato sotto una particolare licenza. La licenza dice cosa è possibile fare con il software. Essa elenca e/o spiega i diritti e i doveri (molto spesso sconosciuti) che l'utente ha nei confronti del software.
Perchè non posso modificare il codice di un programma e renderlo disponibile a tutti se questo presenta dei difetti ed è possibile migliorarlo?
Questa è più o meno la domanda che Stallman si chiedeva quando l'industria dell'informatica iniziò a mettere gli occhi sui software. Fu allora che Stallman, nel 1985, rinunciando al suo lavoro, decise di iniziare il suo progetto GNU creando la licenza GPL. Più tardi, nel 1998, venne dato inizio al movimento open source (da Bruce Perens ed Eric Raymond). I principi di entrambi i movimenti sono stati già presentati, la lotta al software proprietario rivendica alcuni diritti negati agli utenti.
Il movimento open source, venendo dopo il progetto GNU avviato da Stallman, cercava e cerca tuttora di rimediare ad alcune questioni ancora irrisolte. La prima questione è stata già accennata e riguarda il doppio significato che la parola free assegna al software: libero o gratis? A tale proposito il movimento open source ha appunto suggerito un termine alternativo, ovvero quello di software open source.
La seconda questione coinvolge invece le licenze. Il software libero, così come definito dal progetto GNU di Stallman, viene lasciato con una licenza GNU GPL (GNU General Public License), oppure più semplicemente GPL. Stallman e Moglen scrissero questa licenza per distribuire i programmi appartenenti al progetto GNU. Nel 2007 è stata scritta la versione 3 della licenza.
Alle quattro libertà (di uso, di copia, di modifica e di distribuzione) definite dal software libero, nella licenza GPL si aggiunge un nuovo e importante vincolo: la licenza del prodotto software non va modificata. Di sicuro il pensiero di Stallman era rivolto alle case produttrici di software, che senza l'ultimo vincolo potevano allora appropriarsi del software e del lavoro di altre persone.
Esiste anche una versione meno restrittiva della GNU GPL, ovvero la GNU LGPL (GNU lesser General Public License) creata sempre dalla FSF per consentire l'uso di librerie. A differenza del GNU GPL la GNU LGPL non richiede che l'eventuale software usato dal programma sia rilasciato sotto la stessa licenza. Il movimento open source, invece, aggiorna un elenco delle licenze che rispondono ai requisiti e alla qualità prevista per il software open source. Le licenze GPL ed LGPL vengono riconosciute open source (altre licenze riconosciute sono quella BSD e MIT).
La particolarità delle licenze open source è che gli autori invece di vietare, permettono non solo di usare e copiare, ma anche di modificare, ampliare, elaborare, vendere e quant'altro. E tutto questo senza imporre obblighi per ricompensare economicamente gli autori [4].
Materiale consultato:
[1] Progetto GNU: http://www.gnu.org/philosophy/free-sw.it.html;
[2] Software freeware: http://it.wikipedia.org/wiki/Freeware;
[3] Movimento open source: http://www.opensource.org/;
[4] Licenze: http://it.wikipedia.org/wiki/Licenza open source;
[5] Breve storia del software libero e GNU Linux (il video qui sotto riportato)
Vi consiglio anche questo interessante documentario:
Non mi rimane che augurarvi una buona visione.
Nessun commento:
Posta un commento