Cerca nel blog

giovedì 21 febbraio 2013

Software libero e open source: differenze e somiglianze

return undefined (di nyuhuhuu - Flickr)
Articolo originale: Software gratuito, software libero: un approfondimento
Post precedente: I blog, il diritto d'autore e le licenze d'uso: tra miti e verità

Articolo aggiornato dopo la pubblicazione
Abbiamo chiarito cosa è il diritto d'autore e cosa si intende per pubblico dominio, vediamo cosa significano questi termini, nell'ambito del software. Iniziamo con la considerazione per la quale, affinché sia estinto il diritto commerciale d'autore, un autore deve essere morto da almeno 50 anni (negli Stati Uniti il limite di decadenza dei diritti d’autore è appunto 50 anni), possiamo quindi ragionevolmente supporre che non esistono, al 2013, software di pubblico dominio, nell'accezione qui data al termine, cioè per i quali siano estinti i diritti economici d’autore e per i quali soprattutto non occorra una licenza d’uso.

Come già detto, molti autori di software, hanno deciso di non avvalersi pienamente dei diritti d'autore, o di garantire parte di questi diritti al pubblico. Questi software vengono detti software libero, categoria che si contrappone a quella di software proprietario. Sebbene libero, essendo soggetto al diritto d’autore, il software libero necessita sempre di una licenza d’uso con la quale si forniscono agli utenti indicazioni su cosa possono e non possono fare con il software in questione. Spesso si usa per il software libero la dizione software di pubblico dominio che come abbiamo visto è una espressione errata.
Richard Matthew Stallman (Wikipedia)
Ci si potrebbe domandare perché questi autori rinuncino volontariamente ad alcuni diritti, possiamo trovare una risposta nella vicenda e nell'operato di Richard Stallman, programmatore e attivista statunitense, inventore dell’espressione software libero (e del termine copyleft che si contrappone a copyright) e fondatore della Free Software Foundation una organizzazione che si occupa di eliminare le restrizioni sulla copia, sulla redistribuzione, sulla comprensione e sulla modifica dei programmi per computer. L’idea di fondo da cui parte il concetto di software libero è la condivisione del sapere. Richard Stallman stava lavorando ad un interprete Lisp. La ditta Symbolics chiese di poter utilizzare l'interprete Lisp e Stallman accettò di fornire loro una versione di pubblico dominio della sua opera. Symbolics estese e migliorò l'interprete Lisp, ma quando Stallman volle accedere ai miglioramenti che Symbolics aveva apportato al suo interprete, Symbolics rifiutò. Così Stallman, nel 1984, iniziò a lavorare per sradicare questo tipo di comportamento, che chiamò "accaparramento del software" (in inglese software hoarding). Stallman inventa una licenza d’uso: la GNU General Public License (GNU GPL), questa licenza dà il permesso agli utenti di utilizzare, diffondere e modificare liberamente il programma, ma li obbliga, pena la decadenza dei permessi di prima, a ridistribuire il programma sotto la stessa licenza in modo da garantire gli stessi diritti in perpetuo. Stallman in seguito introdusse il concetto di copyleft. Con questo termine si individua una modalità di esercizio del diritto d'autore che sfrutta i principi di base del diritto d'autore non già per controllare la circolazione dell'opera bensì per stabilire un modello virtuoso di circolazione dell'opera e che si contrappone al modello detto proprietario (abbiamo già visto come il concetto di copyright sia nato per limitare la circolazione delle opere scritte e per tutelare l'editore non l'autore). Il copyleft non potrebbe dunque esistere al di fuori del complesso delle norme sul diritto d'autore. Una licenza basata sui principi del copyleft trasferisce a chiunque possegga una copia dell'opera alcuni dei diritti propri dell'autore. Inoltre consente la redistribuzione dell'opera stessa solo se tali diritti vengono trasferiti assieme ad essa. Fondamentalmente, questi diritti sono le quattro "libertà fondamentali" indicate da Stallman:
  1. Libertà di eseguire il programma per qualsiasi scopo
  2. Libertà di studiare il programma e modificarlo
  3. Libertà di ridistribuire copie del programma in modo da aiutare il prossimo
  4. Libertà di migliorare il programma e di distribuirne pubblicamente i miglioramenti, in modo tale che tutta la comunità ne tragga beneficio.
Quindi benché spesso usate una al posto dell’altra:
  • il termine software libero indica un programma per il quale la licenza d’uso garantisce le quattro libertà di cui sopra;
  • il termine copyleft indica una modalità di gestione dei diritti d’autore;
  • il termine GNU GPL invece è il nome di una licenza d’uso di tipo copyleft e non è la sola esistente.
Un software libero è anche gratuito per antonomasia? Assolutamente no! Fino ad ora non si è fatto riferimento al costo del software. Un programma distribuito sotto una licenza di tipo copyleft può tranquillamente essere venduto, la licenza garantisce soltanto le libertà di cui sopra non che sia anche gratuito. L’equivoco nasce dal fatto che in inglese gli aggettivi libero e gratuito sono sinonimi e si scrivono entrambi con il termine free; per questo motivo l’espressione free software può significare sia software libero che software gratuito. Stallman stesso ha più volte sottolineato come il termine free vada inteso come "libertà di parola” (free speach) e non come “birra gratis” (free beer)!

I software liberi sono migliori dei software proprietari? Secondo i suoi sostenitori il software libero presenta numerosi vantaggi rispetto al software proprietario. Per esempio essendo possibile modificare liberamente il software, è possibile personalizzarlo ed adattarlo alla proprie esigenze. Il codice sorgente è sottoposto ad una revisione da parte di moltissime persone, pertanto è più difficile che contenga bachi e malfunzionamenti, se viene scoperto un baco o una falla di sicurezza, la sua correzione di solito è molto rapida. Essendo il sorgente liberamente consultabile, è molto difficile inserire intenzionalmente nel software backdoor, cavalli di Troia o spyware senza che questi vengano prontamente scoperti ed eliminati, come invece è accaduto per alcune applicazioni commerciali. Non esistendo standard proprietari, le cui specifiche sono normalmente segrete, è molto più facile costruire software interoperabile. Il software libero si presta a creare nuove opportunità di business nel campo della formazione e del supporto, oltre che della eventuale personalizzazione del software. Collaborando con sviluppatori volontari e utilizzando il lavoro della comunità, anche le piccole e medie imprese sono in grado di sviluppare e vendere prodotti di alta qualità, senza dover ampliare il loro organico.

Dunque un software libero è un software per il quale l’autore ha rinunciato a parte dei propri diritti d’autore, ma è l’unico modo di definire un software libero? No.
Secondo Stallman e la sua Free Software Foundation un software è libero solo se usa una licenza di tipo copyleft, riconosciuta dalla FSF, che garantisce le quattro libertà di cui si è scritto e le perpetua nei programmi derivati. Citando Stallman:
“Queste libertà sono d'importanza vitale. Sono delle libertà essenziali, non soltanto per quanto riguarda l'utente in sé, ma perché queste libertà promuovono la solidarietà sociale, cioè lo scambio e la cooperazione. Diventano sempre più importanti man mano che la nostra cultura e le attività delle nostre vite sono sempre più legate al mondo digitale. In un mondo di suoni, immagini e parole digitali, il software libero diventa sempre più una cosa simile alla libertà in generale.”
Il software libero parte da considerazione sociali e per molti aspetti è una forma di filosofia. Le implicazioni sociali del software libero sono notevoli. La condivisione del sapere non permette a un gruppo ristretto di persone di sfruttare la conoscenza (in questo caso tecnologica) per acquisire una posizione di potere. Inoltre, è promossa la cooperazione delle persone, che tendono naturalmente ad organizzarsi in comunità, cioè in gruppi animati da un interesse comune.

Agli inizi degli anni novanta le sole licenze di software libero disponibili erano quelle create dalla FSF: la GNU GPL  e la GNU LGPL (una versione meno aggressiva della prima licenza che permette di collegare un software a librerie di software libero senza essere obbligati a ridistribuire sotto la stessa licenza il primo programma) entrambe erano ovviamente di tipo copyleft cosa che le faceva vedere con sospetto dalla comunità industriale a causa della "viralità" (ogni opera derivata doveva essere ridistribuita secondo la stessa licenza). Lo stesso fervore ideologico di Stallman era visto con sospetto. Un gruppo di programmatori decise di creare delle licenze di software libero meno restrittive di quelle della FSF spogliandole della componente ideologica e puntando di più sui vantaggi pratici per le aziende. Nasce la Open Source Initative (OSI). L'organizzazione è stata fondata nel febbraio 1998 da Bruce Perens e Eric S. Raymond, quando la Netscape Communications Corporation pubblica il codice sorgente del suo prodotto principale, Netscape Communicator, come software libero a causa della progressiva riduzione dei margini di profitto e della competizione con il programma Internet Explorer di Microsoft.

Un software è open source se segue la Open Source Definition:
  1. Ridistribuzione libera. La licenza non può impedire ad alcuna parte in causa la vendita o la cessione del software. Chiunque deve poter fare tutte le copie che vuole, venderle o cederle, e non deve pagare nessuno per poter fare ciò.
  2. Codice sorgente. Il programma deve includere il codice sorgente. Codice deliberatamente offuscato non è ammesso. Questo in quanto il codice sorgente è necessario per modificare o riparare un programma.
  3. Opere derivate. La licenza deve permettere modifiche e opere derivate e deve consentire la loro distribuzione sotto i medesimi termini della licenza del software originale, in quanto il software serve a poco se non si può modificare per fare la manutenzione ad esempio per la correzione di errori o il porting su altri sistemi operativi.
  4. Integrità del codice sorgente dell'autore. La licenza può proibire che il codice sorgente venga distribuito in forma modificata solo se la licenza permette la distribuzione di pezze ("patch file") con il codice sorgente allo scopo di migliorare il programma al momento della costruzione.
  5. Nessuna discriminazione contro persone o gruppi. La licenza deve essere applicabile per tutti, senza alcuna discriminazione per quanto nobile possa essere l'obiettivo della discriminazione. Ad esempio non si può negare la licenza d'uso neanche a forze di polizia di regimi dittatoriali.
  6. Nessuna discriminazione di settori. Analogamente alla condizione precedente, questa impedisce che si possa negare la licenza d'uso in determinati settori, per quanto questi possano essere deplorevoli. Non si può dunque impedire l'uso di tale software per produrre armi chimiche o altri strumenti di distruzione di massa.
  7. Distribuzione della licenza. I diritti relativi al programma devono applicarsi a tutti coloro ai quali il programma sia ridistribuito, senza necessità di esecuzione di una licenza aggiuntiva.
  8. La licenza non deve essere specifica a un prodotto. I diritti relativi a un programma non devono dipendere dall'essere il programma parte di una particolare distribuzione di software.
  9. La licenza non deve contaminare altro software. La licenza non deve porre restrizioni ad altro software che sia distribuito insieme a quello licenziato.
  10. La licenza deve essere tecnologicamente neutra. Nessuna clausola della licenza deve essere proclamata su alcuna singola tecnologia o stile di interfaccia.
La scelta a favore dell'Open Source da parte di alcune importanti imprese del settore come la Netscape, l'IBM, la Sun Microsystems e l'HP, facilitarono l'accettazione del movimento Open Source presso l'industria del software, facendo uscire l'idea della "condivisione del codice" dalla cerchia ristretta nella quale era rimasta relegata fino ad allora. Nonostante il nome che può essere tradotto con "sorgente aperto" il fatto che un programma dia la possibilità di accedere ai propri codici sorgenti non implica che sia open source, lo è solo se rispetta interamente la definizione di cui sopra. 

Se non notate particolari differenze tra i due modi di intendere il software libero della Free Software Foundation e della Open Source Initative, non sorprendetevi: non siete i soli! In pratica, le definizioni operative del software libero e del software open source sono quasi equivalenti. Le liste di licenze accettate e mantenute dalla FSF e dal OSI sono abbastanza simili, differendo in particolare solo in casi limite come la prima versione dell'Apple Public Source License e dell'Artistic License. I membri dei movimenti per il software libero e per l'open source di solito non hanno problemi a cooperare in progetti software comuni. Se siete curiosi potete comunque leggere un famoso scritto di Stallman che "mette i puntini sulle i" circa le differenze tra software libero e open source.

La OSI ha una lista di licenze open source. Perché una licenza vada in questa lista deve rispettare la Open Source Definition e deve seguire un processo di approvazione. La Free Software Foundation (FSF) ha a sua volta una lista di licenze ritenute libere (nella lista ci sono anche licenze ritenute da alcuni erroneamente libere e la spiegazione del perché non lo sono), per ognuna c'è scritto se è compatibile o no con la GNU General Public License. La lista delle licenze open source (secondo la definizione OSI) e la lista delle licenze libere (secondo la definizione della FSF) sono quasi coincidenti, ma ci sono alcune eccezioni.

Infine una particolarità parecchio importante: una licenza open source non è detto che rimanga tale per sempre perché è tale in quanto risponde alla definizione di Open Source, se la definizione cambiasse (e non ci sono limiti o garanzie in merito) una licenza che oggi è open source potrebbe non esserla domani e viceversa. Invece una licenza FSF rispondendo alle 4 libertà fondamentali lo resterà per sempre. 

Nessun commento:

Posta un commento

Non sono consentiti commenti anonimi; qualunque commento che reputerò maleducato, di spam o che non tiene alto il livello della discussione verrà cancellato. A mio insindacabile giudizio.

Related Posts Plugin for WordPress, Blogger...