Open Source: cosa è, chi lo usa e perché - 1^ parte

Con questa prima parte (le altre 2 verranno pubblicate con cadenza di 3-4 giorni) inizia la pubblicazione di un interessante articolo del socio Paolo Giardini che introduce ai concetti che sono alla base della filosofia del software open source. Buona lettura!

Open source e software libero

I termini "open source" e "free software" vengono spesso usati in modo intercambiabile . In realtà inizialmente si parlava solo di Free Software, cosa che portava spesso a fraintendimenti in quanto la parola inglese "free" può essere tradotta sia "libero" che "gratuito".

La differenza fra "Open Source" e "Free Software" sta nel significato "etico" attribuito al termine "free" rispetto a quello "pratico" attribuito al termine "open" pur riferendosi in pratica allo stesso tipo di software.

Questa ambiguità ha causato alcuni fraintendimenti, per questo si preferisce l'acronimo "FLOSS" (Free Libre Open Source Software) che indica contemporaneamente sia il software libero che quello a sorgente aperto.

Ma cosa significa veramente "software libero"?

Un Software Libero è un software rilasciato con una licenza che permette a chiunque di utilizzarlo e che ne incoraggia lo studio, le modifiche e la redistribuzione; per le sue caratteristiche, si contrappone software proprietario.

Un software, per poter essere definito libero, deve garantire quattro "libertà fondamentali":

  1. Libertà di eseguire il programma per qualsiasi scopo (chiamata "libertà 0")
  2. Libertà di studiare il programma e modificarlo ("libertà 1")
  3. Libertà di copiare il programma in modo da aiutare il prossimo ("libertà 2")
  4. Libertà di migliorare il programma e di distribuirne pubblicamente i miglioramenti, in modo tale che tutta la comunità ne tragga beneficio ("libertà 3")

Si può notare che la numerazione parte da "0", dato che in informatica, lo zero è il primo numero utilizzato.

La storia del sw open source

Le origine dell'Open Source risalgono agli inizi dell'informatica quando i computer erano oggetto di ricerca all'interno delle Università ed il codice dei programmi veniva liberamente distribuito fra i ricercatori affinché venisse studiato e migliorato (anni '50).
Questo avveniva già prima che nascesse il cosiddetto "software proprietario", si può quindi dire che il software "open source" è nato prima del software proprietario.
Complici furono anche le aziende produttrici di hardware, in quanto, dato che un computer senza software è inutile, fornivano gratuitamente insieme all'hardware anche il software necessario per farlo funzionare (anni '60-'70).
In parte questo continuò anche in seguito, anche se in maniera molto più limitata. Ad esempio nei dischetti del DOS venivano distribuiti anche dei programmini in BASIC.

Con la diffusione dei computer nelle aziende e nel pubblico, ci si rese conto che uno stesso programma poteva essere utilizzato da soggetti diversi che avevano le medesime esigenze. Tutto ciò ha portato alla vendita di software con licenze restrittive, senza la disponibilità del codice sorgente, che rimaneva di proprietà della ditta produttrice.

Nei primi anni '80 si diffuse quindi la pratica di non rendere disponibili i codici sorgente dei programmi, obbligando i programmatori a firmare accordi di non divulgazione, cosa che impediva di fatto la possibilità di integrare nuove funzionalità.
Rifiutando questo tipo di filosofia, nel 1985 Richard Stallman fondò la Free Software Foundation, una organizzazione senza scopi di lucro per lo sviluppo e la diffusione del software libero.

La storia racconta di come l'idea sia nata "per colpa" di una stampante nuova che non disponeva di un software di controllo in grado di avvisare l'inceppamento della carta. Dato che questo software di controllo non era distribuito in formato sorgente, Stallman non poteva aggiungere questa funzionalità e decise quindi di scrivere appositamente un nuovo programma che distribuì gratuitamente così che questa funzionalità fosse a disposizione di tutti gli utenti di quella stampante.

La FSF cominciò lo sviluppo di un sistema operativo simile a Unix, chiamato GNU, un acronimo ricorsivo che significa "GNU is not Unix".

A proposito di GNU, la FSF dice: "L'obiettivo principale di GNU era essere software libero. Anche se GNU non avesse avuto alcun vantaggio tecnico su UNIX, avrebbe avuto sia un vantaggio sociale, permettendo agli utenti di cooperare, sia un vantaggio etico, rispettando la loro libertà. "

La diffusione dei PC e di Internet degli anni '90 favorì la diffusione dell'informatica al di fuori dei contesti classici universitari e aziendali. Quando Linus Torvarlds, studente di informatica di Helsinki, pubblicò su Internet la propria versione di un sistema operativo simile a Unix, subito si sviluppò un movimento di programmatori che riprese il progetto, lo migliorò, aggiunse nuove funzionalità: era nato il primo progetto Open Source, Linux.

Il significato "etico" del termine "open source" si ritrova anche nelle modalità di sviluppo del codice. Nel saggio "La cattedrale ed il bazaar" (1997), Eric Steven Raymond descrive questo nuovo modello di sviluppo del software, applicandolo per lo sviluppo di un software ancora oggi molto utilizzato (fetchmail) e descrivendone l'esperienza.


Nel modello a Cattedrale il programma viene realizzato da un numero limitato di "esperti" che provvedono a scrivere il codice in quasi totale isolamento. Il progetto ha una suddivisione gerarchica molto stretta e ogni sviluppatore si preoccupa della sua piccola parte di codice. Le revisioni si susseguono con relativa lentezza e gli sviluppatori cercano di rilasciare programmi il più possibile completi e senza bug.


Nel modello a Bazaar il codice sorgente della revisione in sviluppo è disponibile liberamente, gli utenti possono interagire con gli sviluppatori e se ne hanno le capacità possono modificare e integrare il codice. Lo sviluppo è decentralizzato e non esiste una rigida suddivisione dei compiti, un programmatore di buona volontà può modificare e integrare qualsiasi parte del codice. In sostanza lo sviluppo è molto più anarchico e libero, da qui il nome di modello a Bazaar.
Il Kernel Linux e molti programmi utilizzano questo nuovo modello di sviluppo associativo. Nel suo saggio Steven Raymond enuncia quella che lui chiama la "Legge di Linus": dato un numero sufficiente di occhi, tutti i bug vengono a galla. E' una esemplificazione del concetto secondo il quale il lavoro collaborativo ha numerosi vantaggi, certamente non ultimo quello della sicurezza del codice. Ad esempio, in un software open source non sarà mai possibile inserire delle backdoor o del codice maligno perchè tantissimi altri programmatori, in tutto il mondo, potranno esaminare il programma ed individuare eventuali magagne.

Fine prima parte