Sommario– Le licenze di software libero sono una
scelta naturale negli ambienti di ricerca
. Scopo di questo articolo
� sostenere quest'affermazione con ragionamenti ed esempi, cercando nel
contempo di analizzare le interazioni pi� significative fra software
libero e ricerca. In appendice un elenco di
termini comuni utilizzati quando si parla di software libero, corredati
di spiegazioni, e suggerimenti sulla scelta di una licenza libera per il
software.
Termini di ricerca: software libero; ricerca; accademia; licenze
software.
Le radici del software libero affondano nelle idee di libert� di parola e di libero scambio di informazioni, un concetto quest'ultimo tenuto in alta considerazione negli ambienti scientifici. � diffusa l'opinione che la facilit� e la libert� di diffusione della conoscenza siano state una delle spinte principali dietro l'eccezionale crescita del sapere scientifico negli ultimi tre secoli.
Tuttavia, la libert� di scambio delle idee non � solo una questione pratica: essa � alla base dei concetti di libert� di pensiero e libert� di espressione. Al pari delle idee, il software � immateriale, e pu� essere facilmente riprodotto e trasmesso. Al pari delle idee, la libera diffusione ne stimola la crescita e e l'evoluzione. E proprio come le idee, ogni giorno di pi� il software interagisce con la societ�, producendo effetti etici, economici, politici e in senso generale culturali.
Durante gli anni Ottanta, Richard Stallman formalizz� per la prima volta il concetto di software libero. La definizione di Stallman � generalmente assunta come definizione canonica di software libero. Essa � composta di quattro regole, le quattro libert�:
Le libert� 1 e 3 richiedono accesso al codice sorgente. Un programma che sia distribuito con una licenza software che conceda le quattro libert� � detto software libero[1].
Una licenza software � un documento legale a corredo di un programma. Senza una licenza di copyright, cos� come stabilito dalla convenzione di Berna sul diritto d'autore, un programma non pu� essere copiato o modificato senza l'esplicito consenso degli autori. Al contrario, un licenza software libera permette lo studio, la copia, la modifica e la redistribuzione del programma modificato.
La gran parte delle licenze software pi� diffuse sono proprietarie, cio� non garantiscono le quattro libert�. Di solito non permettono la libera copia e modifica, spesso non permettono neanche di mantenere una copia sul proprio portatile e una su un computer fisso, n� di fare una copia di prova sulla macchina di un collega o di tenere un'installazione di riserva pronta ad essere usata in caso di guasti. I programmi proprietari, essendo solitamente distribuiti senza codice sorgente, non permettono di studiare il modo in cui funzionano, n� di modificarli o adattarli alle proprie esigenze.
Le licenze libere, invece, garantiscono le quattro libert�. Si distinguono licenze libere con e senza permesso d'autore.
Una licenza con permesso d'autore (copyleft) � una licenza libera che usa le norme sul diritto d'autore per uno scopo opposto a quello tipico delle licenze proprietarie. Mentre queste impediscono la copia o la modifica di un programma, una licenza libera con permesso d'autore utilizza le leggi sul diritto d'autore per mantenere il programma libero. Si pu� dire che la licenza � persistente: se ottengo un programma con permesso d'autore e lo redistribuisco, tale e quale o modificato, devo concedere a chi lo riceve gli stessi diritti che ho acquisito quando ho ottenuto il programma; a tal fine devo distribuire il programma completo di codice sorgente. La licenza libera con permesso d'autore pi� diffusa � la GNU GPL.
Una licenza senza permesso d'autore (non-copyleft) � una licenza libera non persistente. Se ottengo un programma senza permesso d'autore e lo voglio redistribuire, tale e quale o modificato, non sono tenuto a concedere a chi lo riceve gli stessi diritti che ho acquisito quando ho ricevuto il programma. Le comuni licenze libere senza permesso d'autore permettono di creare versioni proprietarie del programma, o anche di redistribuire il programma immodificato corredato di una diversa licenza, anche proprietaria. La licenza libera senza permesso d'autore pi� diffusa � la licenza BSD.
Nonostante la loro ampia diffusione, i termini software libero e open source sono frequentemente usati in modo scorretto, causando cos� numerose false convinzioni, e questo anche sulla stampa specializzata e presso tecnici ed esperti. In questo paragrafo cercheremo di evidenziarne e sfatarne alcune.
Dal punto di vista pratico, open source
e software
libero
sono esattamente la stessa cosa. In effetti, a parte
alcuni casi di secondaria importanza, le licenze open source
identificate dalla definizione di
Open Source
sono le stesse licenze libere identificate
dalla definizione di
Software Libero.
La differenza sta tutta nei principi che hanno dato origine alle due
definizioni; mentre il software libero � definito a partire da ragioni
etiche e politiche, l'open source � definito a partire da ragioni
pratiche e di convenienza. In questo documento, open source
e
software libero
sono usati indifferentemente, ma preferiamo il
secondo perch� la sua definizione � pi� chiara e concreta.
A rigor di termini, l'open source � un modello di licenza, non un
modello di sviluppo. Molti sostenitori dell'open source sostengono che
le due cose sono connesse, tuttavia questa argomentazione � discutibile
[Bez99]. Il famoso saggio di Eric Raymond The
cathedral and the bazaar
(La cattedrale e
il bazar
) traccia un discrimine netto fra metodo di sviluppo
centralizzato e distribuito. Il primo � quello usato per lo sviluppo di
Emacs, l'editor del progetto GNU, mentre il secondo � usato per lo
sviluppo del kernel Linux. Raymond afferma che il modello di sviluppo
distribuito � intrinsecamente superiore per quanto riguarda grossi
progetti, e che lo sviluppo distribuito di un progetto di grandi
dimensioni richiede una licenza open source.
A fronte di queste affermazioni, va messo in rilievo che la licenza e il modello di sviluppo adottato per un progetto sono questioni in massima parte indipendenti e ben distinte. Bench� sia vero che metodi di sviluppo distribuiti possano essere applicati in maniera naturale a progetti open source, essi sono anche applicati da grosse aziende software per lo sviluppo di programmi proprietari. D'altra parte lo sviluppo centralizzato, essendo generalmente pi� semplice da gestire, � ampiamente usato per progetti open source, ed � la norma per i programmi proprietari.
Entrambe le affermazioni sono false, in generale; non c'� alcuna
relazione a priori fra la licenza utilizzata e la qualit� del software.
Il software libero � potenzialmente pi� affidabile perch� chiunque ne
pu� studiare il codice sorgente, e tutti gli errori sono evidenti
davanti ad un milione di occhi
, ma queste potenzialit� non
necessariamente si realizzano. L'unico caso di superiorit� tecnica
accertata del software libero � quello relativo alla sicurezza, il che �
significativo per i programmi usati per la crittografia o per la firma
elettronica.
In generale nessuna di queste affermazioni � vera, perch� nella maggior parte dei casi la licenza � solo uno degli elementi che contribuiscono al costo del software. L'installazione, l'istruzione del personale, la manutenzione, l'aggiornamento e la personalizzazione costituiscono tipicamente la fetta pi� grossa dei costi del software, e non c'� relazione diretta fra la licenza utilizzata ed i costi. Sarebbe facile fare esempi in cui il costo del software libero � molto superiore o molto inferiore a quello di una analoga soluzione proprietaria.
Queste affermazioni sono entrambe false. Il software libero deve essere distribuito con una licenza, il cui scopo � rimuovere alcune delle restrizioni standard previste dalle leggi sul diritto d'autore, cio� quelle stabilite dalla convenzione internazionale di Berna sul diritto d'autore. Una licenza con permesso d'autore � un tipo di licenza libera, e si fonda sul diritto d'autore.
Nessuna licenza libera pone quest'obbligo. Chi scrive software libero per un numero ristretto di clienti non � obbligato a cederlo ad altri, n� i clienti sono obbligati a farlo, n� tale e quale n� modificato. Tuttavia essi hanno il diritto di redistribuirlo, se desiderano.
Creare una comunit� attorno ad un programma richiede ben pi� che pubblicarlo come software libero. Da una parte chi pubblica un programma non ha alcun obbligo di gestire una comunit�; dall'altra, se � una comunit� che si vuol creare, bisogna costruirla e curarla: un compito difficile e impegnativo, ma che pu� valere lo sforzo. � anche possibile costruire una comunit� attorno ad un programma proprietario, me � generalmente molto pi� difficile.
La scienza moderna � connaturata al libero scambio di informazioni. Tutta la ricerca scientifica attuale conta su un libero ed efficiente flusso di informazioni, in tutte le forme possibili: congressi, conferenze, riviste, siti web, inviti di studiosi, seminari, cooperazioni a distanza o faccia a faccia, progetti comuni di ricerca, tutte queste sono considerate attivit� essenziali per un moderno ambiente di ricerca. Esse rendono possibili scambi fruttuosi di idee, favoriscono l'apertura mentale dei ricercatori, contribuiscono in maniera significativa alla nascita di nuovi concetti e costituiscono le fondamenta del processo di crescita incrementale dei risultati. Queste attivit� creano inoltre una rete di controllo reciproco che rende l'avanzamento della conoscenza eccezionalmente affidabile e tuttavia efficiente, quando confrontato con altri processi di grande complessit� creati dalla civilizzazione umana.
Il software libero � un prodotto naturale in un ambiente di ricerca [Kel01]. La nascita e il processo di sviluppo del software ha molto in comune con quello delle idee scientifiche. Come queste, il software migliora grazie a ci� che si apprende dai risultati degli altri, un processo che � molto pi� efficiente se si pu� accedere al codice sorgente, analogamente alla possibilit� di accedere ai trovati scientifici.
La crescita per accumulazione di risultati � comune alla ricerca scientifica e al software. Isaac Newton disse che se aveva visto pi� lontano, era stando sulle spalle di giganti. Lo sviluppo del software funziona in maniera simile: la gran parte dei programmi di successo crescono nel tempo, evolvono e migliorano in modo incrementale. Sia nel campo della ricerca che in quello del software, l'apertura delle conoscenze favorisce grandemente questo processo, che � possibile solo se � permessa la modifica.
La scienza � credibile perch� in linea di principio chiunque ne pu� verificare i risultati. Per rendere questo principio applicabile, i ricercatori sono incoraggiati a pubblicare i propri risultati in una forma che consenta un esame indipendente accurato e completo, solitamente quella di un articolo scientifico che esponga in dettaglio tutti i punti rilevanti. Questo processo � analogo a quello con cui il software libero acquista credibilit�: rendendo cio� il codice sorgente disponibile, e aprendosi cos� all'esame da parte di chiunque.
Credibilit� ed affidabilit� sono sorelle. I risultati scientifici sono affidabili perch� sono indipendentemente riproducibili. Un buon articolo scientifico rende possibile riprodurre i risultati di un esperimento, che sia fisico o concettuale, fornendo dettagli sufficienti a che altri ricercatori possano indipendentemente riprodurlo e verificarne i risultati. Qualcosa di simile avviene per il software quando l'affidabilit� di un programma pu� essere verificata rendendo il codice sorgente disponibile per l'ispezione e la ricompilazione su macchine e architetture diverse.
Nella ricerca scientifica, la cooperazione � essenziale. La ricerca langue senza cooperazione: � un abito mentale per i ricercatori, che dovrebbero considerare, e generalmente considerano, una cosa naturale scambiarsi idee e risultati. Un ambiente cooperativo � fertile per il software cos� come lo � per la ricerca: gli sviluppatori trovano facile e naturale scambiarsi parti di codice e idee, e possono avvantaggiarsi del lavoro altrui.
La produzione di software libero pu� risultare vantaggiosa per gli ambienti accademici o in generale di ricerca, sia dal punto di vista della pura produzione scientifica in termini di articoli pubblicati, sia da un punto di vista di immagine, sia per quanto riguarda lo sviluppo di applicazioni commerciali.
I lavori scientifici che riguardano o includono implementazioni di software libero sono intrinsecamente adatte alla pubblicazione, perch�:
Poter esibire un corpus di software libero sviluppato e pubblicato in loco � conveniente per un'istituzione di ricerca:
� un luogo comune che, per ottenere ritorni economici, la strada pi� sicura � il software proprietario. Tuttavia, il software libero offre molti vantaggi per quanto riguarda le relazioni fra accademia e affari:
Noi sosteniamo che le istituzioni di ricerca dovrebbero incoraggiare i ricercatori ad usare licenze libere quando cedono o pubblicano software prodotto nella propria attivit� di ricerca.
In particolare, la ricerca finanziata pubblicamente dovrebbe, come regola generale, disseminare i risultati prodotti in forma di software pubblicandoli con una licenza libera, in maniera che possano essere liberamente studiati, copiati e modificati. Una tale politica avrebbe un effetto positivo su alcuni degli obiettivi primari della ricerca pubblicamente finanziata perch�:
Ci sono diversi modi per incoraggiare la produzione di software libero in un'istituzione di ricerca scientifica.
Innanzitutto, ogni finanziamento ad un'attivit� di ricerca dovrebbe normalmente esigere che i risultati della ricerca siano pubblicati con una licenza di software libero. Se non � possibile imporre condizioni, l'istituzione che eroga il finanziamento dovrebbe chiaramente indicare che lo scopo del progetto � l'avanzamento della conoscenza pubblica, e che di conseguenza l'uso di licenze libere � incoraggiato.
Oltre alle istituzioni che erogano finanziamenti, tutte le istituzioni scientifiche dovrebbero avere una politica che imponga l'uso di licenze libere per il software prodotto con denaro pubblico. Se la licenza debba essere persistente o meno (copyleft o no) � questione da valutare. In generale, il vantaggio di una licenza senza permesso d'autore � di non impedire l'incorporazione del software in un programma proprietario, il che rende le cose pi� semplici per l'industria. Il vantaggio di una licenza con permesso d'autore � di obbligare all'uso di una licenza libera per la cessione degli aggiornamenti e miglioramenti, allargando cos� la base di software libero disponibile.
Le istituzione di ricerca che finanziano ed incoraggiano gli spinoff dovrebbero favorire quelli che si basano su software libero rispetto agli altri, perch� le attivit� economiche basate su software libero creano un ambiente economico sano e promuovono la crescita di competenze locali.
Da un punto di vista puramente accademico, scrivere e pubblicare software libero dovrebbe essere visto come un risultato scientifico di per s�, analogo a pubblicare un lavoro scientifico per mezzo di un articolo su rivista. Perch� ci� diventi possibile, sarebbe necessaria una rete di revisori di software, analogamente a quella esistente per la pubblicazione degli articoli scientifici. Noi sosteniamo la necessit� di creare una simile rete, e sosteniamo la necessit� di revisionare il software libero pubblicato alla stessa maniera in cui si revisionano gli articoli scientifici, perch� sia similmente considerato un risultato di ricerca.
Cos� come diffondere i propri risultati � ritenuto meritevole nella comunit� dei ricercatori, cos� dev'essere ritenuta meritevole la diffusione di software. Le istituzioni di ricerca dovrebbero incoraggiare questo processo culturale dichiarando pubblicamente che pubblicare software libero � altrettanto importante che pubblicare altri risultati di ricerca, e organizzando adeguati processi interni di valutazione.
Cos� come gli autori e i lettori riconoscono il grande valore della pubblicazione dei precisi dettagli delle procedure descritte in un articolo scientifico, cos� devono riconoscere la necessit� di poter leggere e modificare il sorgente dei programmi descritti negli articoli. Questa necessit� dovrebbe essere presa in considerazione da editori, redattori e revisori di riviste scientifiche ogni volta che valutano un contributo per la pubblicazione.
Ringrazio il Prof. Piero Maestrini per il suo supporto e le sue idee circa la revisione del software. Ringrazio anche l'Associazione software libero, per le discussioni e l'incoraggiamento.
[Bez99] Open source development as a special type of academic research (critique of vulgar Raymondism), Nikolai Bezroukov, ottobre 1999, First Monday, vol. 4, n. 10.
[Kel01] Free software/free science, Christopher M. Kelty, novembre 2001, First Monday, vol. 6, n. 12.
Copyright � 2004-2005 Francesco Potort�
La pi� recente versione ipertestuale, completa di puntatori web,
� disponibile ad <http://fly.isti.cnr.it/sl/sl-e-ricerca>
assieme ad una versione in PDF
ed una in Postscript.
La copia letterale e integrale di questo articolo � permessa con ogni mezzo, a condizione che questa nota sia riprodotta.
Ultimo aggiornamento: 2005-02-24