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