Cos’è il software open source?

Agli albori dell’era informatica il software era libero e gratuito, difatti le comunità di programmatori cooperavano e si scambiavano i programmi tra loro liberamente. Non esisteva ancora il concetto di copyright nel software e le informazioni si diffondevano all’interno della comunità informatica così come avveniva ed avviene tutt’ora all’interno della comunità scientifica. Le scoperte scientifiche difatti, vengono pubblicate su riviste autorevoli e divulgate in tutto il mondo. Questo spirito di cooperazione è stato lo spirito che ha animato (a parte la scintilla iniziale di carattere militare) da sempre la comunità di Internet. Internet è nata prima in ambito militare e poi si è diffusa immediatamente in ambito scientifico. Solo più tardi (anche grazie alla comparsa del web) si è diffusa in ambito commerciale. Tutto è andato bene sino a quando le società hanno cominciato a far pagare agli utilizzatori il software da loro prodotto. Qualcuno ha persino esagerato e ha creato situazioni di monopolio (vedi Microsoft). Tutto a discapito della qualità del software prodotto. nonostante ciò, più tardi iniziò a comparire nuovamente il concetto di software libero e gratuito. Questo grazie all’azione di migliaia di volontari e di organizzazioni sparse in tutto il mondo, collegate tra loro proprio grazie alla Rete, che da anni cooperano congiuntamente per raggiungere degli obiettivi comuni. Grazie a queste persone sono nati progetti grandiosi e meravigliosi, come l’organizzazione GNU, la Free Software Foundation, l’open source, l’organizzazione Mozilla, Linux e molti altri. I promotori e gli ideatori di questi progetti sono degli hacker famosi. Evidentemente gli hacker veri in realtà non sono cattivi come vogliono farci credere. Linus Torvalds ad esempio, è stato l’hacker ideatore del sistema operativo Linux. Richard Stallman è stato l’hacker ideatore del progetto GNU (un sistema operativo stile Unix ma gratuito). Questo solo per citare due dei personaggi più famosi. Stiamo parlando di studenti universitari particolarmente brillanti e di persone che hanno lavorato presso università prestigiose come il MIT (Massachusetts Institute of Technology). Così è nato l’open source, che significa letteralmente “sorgente aperto”. Già, ma cosa significa il termine “sorgente”?

Codice sorgente e codice eseguibile

Per capire meglio il significato di sorgente aperto occorre fornire una piccolissima spiegazione tecnica ai non addetti ai lavori. Occorre sapere infatti che il software esiste in 2 formati particolari: un formato detto sorgente ed uno detto eseguibile. La parte “sorgente” è il codice del programma scritto con un qualsiasi linguaggio di programmazione (come il C, il Java od il Cobol). La parte eseguibile invece è la traduzione di quel codice in un linguaggio comprensibile solo al calcolatore (incomprensibile cioè agli umani). Il sorgente in sostanza è una serie di comandi e di istruzioni impartite al calcolatore e scritte da un programmatore (in teoria può essere scritto come se fosse una lettera o un romanzo, usando ad esempio il programma Word). Questo sorgente può essere letto da tutti e chiunque, se è in grado di farlo, può apporre modifiche o migliorie: basta sapere dove mettere le mani. Le cose stanno diversamente con il formato “eseguibile” che è una traduzione, effettuata utilizzando un apposito programma chiamato compilatore, dal formato sorgente in formato eseguibile, un formato comprensibile esclusivamente dal calcolatore. Un programma in formato eseguibile è quindi impossibile da leggere per gli umani. Tutto questo perché il calcolatore non capisce il nostro linguaggio e noi umani non comprendiamo il suo. Il calcolatore non sa che farsene del programma scritto dal programmatore. Non lo capisce. Occorre pertanto una fase di traduzione da sorgente ad eseguibile, detta compilazione. Siamo arrivati al punto cruciale: Word od Internet Explorer (per fare un esempio), sono programmi che vengono distribuiti soltanto in formato eseguibile. Non vengono diffusi cioè i sorgenti di tali programmi. Perché? Semplice: se io che sono programmatore ho a disposizione il codice sorgente del programma Word, posso modificarlo ed apportare migliorie a mio piacimento. Posso addirittura eliminare (ma non è legale) le protezioni che impediscono a tale software di funzionare quando non lo si è pagato (operazione denominata “cracking del software”). In altre parole diventerebbe un programma open source (cosa ovviamente non voluta dalla casa produttrice). Al contrario, se non si diffondono i sorgenti di tale programma, io che sono programmatore non posso fare altro che pagare quel programma se voglio utilizzarlo, non essendo più in grado di modificarlo o di eliminare le protezioni.

Copyright, software proprietario e licenze

Il software quindi è composto di 2 parti, una parte sorgente ed una eseguibile. Ebene, quando di un software viene distribuita solo la parte eseguibile si parla di software proprietario (di proprietà cioè di una società produttrice di software), e per poterlo usare occorrono delle licenze. Licenze vendute dalla stessa casa produttrice. Queste licenze hanno un prezzo più o meno alto, ma hanno comunque un prezzo. Esiste cioè il concetto di copyright o diritto di copia, che più o meno significa che su ogni copia di software distribuita, la casa produttrice detiene dei diritti. Tali diritti costituiscono il prezzo del software. Quindi chi compra un programma, in realtà non compra il programma ma solo una copia di esso. Per tale motivo non è possibile copiare un programma di questo tipo e diffondere le copie ottenute (operazione illegale). Un po’ come avviene con i dischi ed i CD musicali (vedi il caso Napster con i file mp3). Al contrario, quando di un software si distribuisce anche la parte sorgente, parliamo di open source, ossia di sorgente aperto, cioè libero, leggibile e quindi modificabile da tutti. Attenzione però: il sorgente aperto non è ancora un software gratuito. Infatti un programma open source può essere distribuito gratuitamente o anche venduto. Si tratta solo di un software del quale sono disponibili i sorgenti. Questa sottile differenza tra software libero (free) e sorgente aperto (open source) viene discussa nelle pagine del sito che fa capo al progetto GNU: www.gnu.org. Comunque spesso vengono usati questi termini indistintamente per indicare la stessa cosa: software libero (libero da copyright) disponibile ed utilizzabile da tutti. Ecco che così viene a crearsi il concetto di copyleft (esatto contrario di copyright), ossia non più diritto sulle copie distribuite ma permesso di copia (ossia chiunque è libero di copiare e diffondere il programma). Infine un’ultima osservazione: il software freeware non è libero, perché può essere ridistribuito ed usato gratuitamente ma non si può modificare in quanto i sorgenti non sono disponibili.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *