Con il termine free software2 o software libero viene indicata una categoria di software che chiunque può utilizzare, copiare, modificare e distribuire come meglio crede.
Il software libero garantisce i seguenti livelli di libertà
È evidente che per i livelli 1 e 3, è necessario che siano disponibili i sorgenti del software in questione, altrimenti non sarà possibile apportarvi modifiche. Si parla quindi di software libero soltanto se lo stesso è distribuito corredato dei relativi sorgenti, in modo che chi lo desidera possa eventualmente modificarlo per adattarlo alle proprie esigenze.
La distribuzione di un software corredata di sorgenti non è però condizione sufficiente per affermare che il software in questione sia software libero. È infatti possibile che i sorgenti siano forniti ma che la licenza non permetta la modifica né la redistribuzione. Si parla in tal caso di software open source3 indicando in questo modo che ne sono disponibili i sorgenti.
È bene sottolineare il fatto che software libero non significa necessariamente software gratuito. La libertà del software si riferisce soltanto alle garanzie di utilizzo dello stesso, precedentemetne elencato. Non viene fatto alcun riferimento al compenso corrisposto all’autore per la realizzazione del software stesso. Pertanto ci potrà essere sia del software libero fornito a pagamento e del software libero fornito gratuitamente.
Inoltre la redistribuzione del software, eventualmente modificato, non è obbligatoria, ma è a discrezione di chi ne ha ricevuta una copia, e può essere effettuata sia dietro pagamento che gratuitamente.
Il software libero nasce nel 1983, dall’idea di Richard M. Stallman, fondatore del progetto GNU e della Free Software Foundation, partendo dal presupposto che la gestione del software non può essere trattata alla stregua della gestione di un qualunque altro bene materiale, poiché il software non lo è. Cioè, quando una persona distribuisce un bene materiale, come ad esempio un tavolo, ad un’altra, il bene stesso (il tavolo) non è più fruibile da chi l’ha ceduto. Al contrario, il software può essere copiato (con un investimento irrisorio di tempo e denaro) ottenendo un prodotto identico all’originale, quindi una persona può distribuire ad semplicemente copie del suo lavoro, senza operare alcuno sforzo dopo averne prodotto l’originale. Sebbene tale modo di operare sia possibile anche con il software libero, il costo di sviluppo del prodotto software è generalmente ricompensato dal primo committente per il quale viene realizzato e cui viene distribuito.
Esistono licenze che, oltre a garantire i gradi di libertà precedentemente citati, impediscono che le redistribuzioni del software vengano effettuate con qualche restrizione alle libertà garantite dalla licenza originale. Questo meccanismo, che garantisce l’impossibilità di restrizione della libertà del software è detto copyleft, in analogia a quello che avviene con il copyright, che non permette di aumentare le libertà con le quali viene rilasciato un prodotto. Quindi, una licenza che garantisce il copyleft di un software, garantisce che lo stesso rimanga sempre software libero. Una licenza di questo tipo è ad esempio la GNU GPL (GNU General Public License).4
Siti come savannah.gnu.org, www.freshmeat.net, www.sourceforge.net, ospitano centinaia di progetti free software, in continua evoluzione.
Anche se a prima vista sembra essere una categoria di software che penalizza il produttore/fornitore dello stesso, ciò non lo è. La paura è quella che fa sorgere la domanda: E se il committente decidesse di rialsciare ad altri il software acquistato? Bisogna innanzi tutto analizzare i possibili scenari. Si supponga che un fornitore A distribuisca un software (libero, protetto da copyleft) ad un cliente B. Innanzi tutto, qual è il prezzo con il quale potrebbe essere ridistribuito il prodotto da B? Se il prezzo fosse più alto di quello proposto da A (produttore), il mercato tenderebbe comunque a portare i clienti verso A. Se il prezzo di redistribuzione richiesto da B fosse più basso di quello di A, sarebbe comunque B in grado di fornire un’assistenza adeguata per tale prodotto (visto che non l’ha effettivamente prodotto lui)? Inoltre, se il software fa parte del core business di B, sarà poco probabile che B voglia redistribuirlo ad altri, magari suoi concorrenti. E se anche B rilasciasse gratuitamente il software ad altri, sarebbero questi ultimi in grado di gestirlo in maniera autonoma, senza aver bisogno di assistenza per l’installazione, la configurazione e la personalizzazione dello stesso?
Il copyright rimane in ogni caso dell’autore, che il mercato potrà giudicare in base al lavoro svolto. Così saranno riconosciuti i meriti allo sviluppatore, in base alla qualità del software realizzato. Questo modo di concepire il software è quindi premiante per i bravi sviluppatori.