Filosofia Open Source e Software Libero

Tecnicamente vengono etichettati con il termine di Software Open Source quei programmi il cui codice sorgente è aperto, ossia viene reso di pubblico dominio. Il software open source esiste da sempre, basti pensare al codice sorgente degli innumerevoli programmi Unix, diffuso soprattutto a scopo formativo, specialmente in ambito universitario. Negli ultimi anni, però, si parla sempre più spesso di Software Libero. Bisogna però distinguere i due concetti.

L'Open Source è una metodologia di sviluppo; il Software Libero è un movimento di carattere sociale.

Il software, così come accade per le altre opere dell'ingegno umano quali i libri o la musica, è protetto dai diritti d'autore. Questo si rende necessario per evitare che una qualsiasi persona copi un programma da qualcun altro e lo utilizzi senza il permesso dell'autore oppure lo ridistribuisca a suo nome, appropriandosi ingiustamente di un marchio.

Si potrebbe pensare che il software Open-Source non abbia bisogno di queste protezioni, in quanto “open” e dunque accessibile a tutti (e in sostanza copiabile da tutti). In realtà proprio per il fatto di essere open, necessita di essere protetto, per impedire che qualcun altro se ne appropri e lo trasformari in un software proprietario.

Si rende così necessario che anche il software open abbia qualcuno che ne detenga i diritti anche se, allo stesso tempo, per la sua natura, esso dovrebbe appartenere a tutti. Qui entra dunque in gioco il concetto di “copyleft”, ossia la volontà da parte dell'autore di condividerlo con tutti e, allo stesso tempo, di impedire che qualcuno in futuro possa appropriasene o ripubblicarlo in forma un po' meno libera.

Solitamente ci si riferisce a questi software, protetti da licenze dette libere, indicandoli a loro volta come liberi (o “free”). Ma attenzione al seguente concetto: non tutto il software Open-Source è necessariamente Libero.

In modo più rigoroso, infatti, è possibile definire un software come “libero”, se la sua licenza consente a chiunque di prendere il codice sorgente, di modificarlo per i suoi scopi e di ridistribuirlo liberamente; se la licenza non lo consente esplicitamente, il software anche se open, non è “free”. Da notare che software libero ma non protetto da opportune licenze di copyleft potrebbe, un giorno, essere ripubblicato sotto licenze meno libere …

Esistono varie licenze, in base alle quali è possibile distribuire il codice sorgente di un software; le più note, sono la GNU-GPL (nelle sue varie versioni), la X11 e quelle di tipo BSD. Le differenze principali tra di esse riguardano la possibilità o meno di poter ridistribuire il software anche sotto licenze diverse, e di consentire ad altri di sfruttare il software a fini commerciali. In questo senso la GPL è abbastanza restrittiva e non permette al codice protetto da essa di essere riutilizzato in software con licenze diverse. Questo per poter proteggere il lavoro dei programmatori della comunità Open-Source e garantire che il software da loro sviluppato rimanga per sempre “libero”.

Ci sono dei settori nei quali appare decisamente importante che il software sia “open”. Ad esempio nel campo della crittografia; la ragione è ottimamente spiegata da Phil Zimmermann, l'autore del programma “pgp”, nel suo lavoro (vedi la bibliografia sotto). Sostanzialmente come è possibile conoscere la bontà o meno di un programma di crittografia se non possiamo verificare gli algoritmi che esso usa? In questo caso l'assicurazione della sua bontà da parte del suo produttore non può essere sufficiente, specialmente nel caso di dati veramente importanti (quali ad esempio segreti industriali, militari o di stato).

Un altro caso è il software usato nella Pubblica Amministrazione. I motivi principali sono più o meno gli stessi per cui anche l'utente comune dovrebbe preferire l'open-source, ossia:

  1. È gratis (e anche nel caso della pubblica amministrazione, pur se indirettamente, siamo sempre noi a risparmiare).

  2. La sicurezza non è certificata dal produttore (che ha evidentemente i propri interessi) ma dalla comunità che lo sviluppa e lo usa (e il cui principale interesse è migliorarlo).

  3. Se necessario e se ne si hanno le capacità, può risultare conveniente investire tempo e risorse per migliorare il software o adattarlo alle proprie esigenze. Nel caso di software proprietario, invece, gli aggiornamenti (anche quelli che riguardano la sicurezza) dipendono dalle scelte del produttore.

  4. Eventuali bachi, oltre ad essere scoperti più facilmente, vengono corretti in tempi ragionevoli, che dipendono sostanzialmente da quanta gente (e quanto brava) si dedica allo sviluppo di quel software, ma di solito, almeno nel caso dei programmi più diffusi, sono molto brevi. Nel caso del software closed-source solo il produttore può correggere l'errore, e può decidere di farlo come e quando gli pare.

  5. Risulta indubbiamente molto più semplice scovare l'eventuale presenza di “backdoor”. Chi mai si sognerebbe di mettere del codice maligno all'interno di software Open-Source? Il problema, casomai, consiste nell'assicurarsi che il software precompilato (ossia quello che solitamente si va a scaricare) provenga effettivamente dal codice da cui si afferma che derivi (ma possiamo anche decidere di prendere tutti i sorgenti e compilarceli da soli). Nel caso del software closed, non potendo il sorgente essere verificato da qualcuno esterno all'azienda, il dubbio sulla presenza di codice malevolo (nei nostri confronti) nascosto al suo interno, rimane sempre (qualche informazione può ancora essere ottenuta mediante operazioni di “reverse engineering”, comunque normalmente vietate dalle licenze).

  6. Con la diffusione del sorgente di un programma si spinge quella parte della gente che ne è interessata a studiarne il codice e si contribuisce perciò alla diffusione della conoscenza. Questo punto potrebbe sembrare banale, ma ci si dovrebbe ricordare che molti programmi del mondo Unix, ancora oggi molto usati, sono stati creati inizialmente nei dipartimenti di informatica di varie università per scopi prevalentemente didattici. Il codice doveva essere aperto proprio perchè il suo scopo primario era quello di “insegnare”. Lo stesso concetto di software libero deriva da questa tradizione di condivisione e diffusione del sapere.

  7. L'ampia diffusione di validi prodotti nel mondo del software open-source, inoltre, comporta indirettamente dei benefici anche a chi non li usa, infatti una sana concorrenza spinge i produttori di software proprietario a migliorare i propri programmi per offrire qualcosa in più dei concorrenti o comunque, in genere, ad abbassare i prezzi. Al contrario, in una situazione in cui sono poche case produttrici a farla da padrona, l'evoluzione del software è in genere più lenta e comunque decisa più da politiche aziendali che dalle reali esigenze degli utenti.

In maniera analoga, risulta conveniente per la Pubblica Amministrazione, ma non solo, la scelta di usare esclusivamente formati aperti (ossia di cui si conoscono le specifiche, in modo che sia possibile creare un proprio software per leggerli e/o modificarli).

In particolare, si possono evidenziare le seguenti motivazioni:

  1. Non si obbligano gli altri utenti a procurarsi software proprietario (e costoso) per leggere i nostri documenti.

  2. Portabilità (almeno teorica) su un maggior numero di sistemi.

  3. Abitualmente un documento in un formato aperto, non utilizzando arcani meccanismi per immagazzinare i dati (spesso solo per impedirne la lettura da parte di altri software), è molto più snello del suo analogo chiuso (vi siete mai chiesti, infatti, che cosa mai ci sia dentro un file “.doc” che occupa una considerevole quantità di spazio, ma in cui in realtà avete scritto solo poche righe?).

  4. Controllo dei dati realmente contenuti nel documento; col formato open gli autori, così come tutti gli altri utenti, possono andare a controllare tutte le informazioni realmente (fisicamente) presenti nel documento. Nel caso di formato di cui non si conoscono tutte le specifiche, possono capitare delle sorprese; ad esempio il formato “DOC”, consente di salvare al suo interno le modifiche fatte e poi annullate. Noi possiamo anche non accorgercene ma qualcun altro, con gli strumenti adatti a disposizione, potrebbe risalire alle vecchie versioni del documento e a dati che magari non volevamo rendere pubblici.

  5. L'accessibilità nel tempo; infatti se un software proprietario non dovesse più essere mantenuto, potrebbe costringerci a rimanere legati a vecchie piattaforme per leggere i documenti creati da quel programma, poiché magari capita che essi non siano leggibili con software più recenti o traducibili in altri formati. Nel caso di un formato aperto, anche se il relativo programma non dovesse più essere sviluppato, molto probabilmente, ricompilandolo opportunamente funzionerebbe anche su sistemi operativi diversi ed aggiornati, oppure qualcuno potrebbe sempre riprendere in mano il codice ed aggiornarlo o creare dei convertitori verso altri formati.

Tipici esempi di documenti in formato aperto sono i file HTML, PDF, Postscript, DVI, RTF, ODF; un tipico esempio di formato chiuso è invece il famigerato “.doc” di Word (l'editor di testi del pacchetto Microsoft-Office).

Per l'utente comune, spesso si presenta la scelta tra usare un programma libero ed uno proprietario sostanzialmente simili tra loro, dei quali però probabilmente andrebbe a sfruttare meno del 10% delle potenzialità. A volte conviene chiederci: di quali funzionalità ho veramente bisogno? Ed il software “free” me le offre?

Infine, un'ultima osservazione: non vi sembra assurdo scaricare illegalmente programmi proprietari quando esiste una valida alternativa “free”?

Anche per quanto riguarda i manuali e la documentazione che accompagna il software, è possibile scegliere tra varie licenze libere come le Creative-Commons e la GFDL (quella di Wikipedia, per intenderci).

Bibliografia

  • Eric S. Raymond, La cattedrale e il bazaar.

Links

  Contenuti soggetti a licenza d'uso Creative Commons Attribution - Non commercial - Share Alike 3.0 Unported. Questo sito non contiene informazioni aggiornate con cadenza periodica regolare, pertanto non può essere considerato una testata giornalistica, ai sensi dell'Art. 62/2001.