Negli ultimi anni, grazie soprattutto alla capillare diffusione del sistema GNU/Linux nonchè alla tecnologia di internet che ne ha reso possibile l'accessibilità per chiunque, si sente sempre più parlare di opensource e software libero.
Nelle poche righe che seguono cercherò di introdurre il lettore ai concetti base di questa vera e propria filosofia, lasciando gli approfondimenti alla notevole mole di documentazione facilmente reperibile in rete.
Nella lingua italiana libero e gratis hanno significati diversi quindi dovrebbe capirsi meglio il concetto. Non è così semplice in inglese, dove per entrambi si usa il termine free.
Nella pratica però siamo portati ad associare ad un software libero il fatto che sia anche gratuito. Questo è vero per la maggior parte dei casi ma non per tutti. Il termine libero riguarda la libertà di duplicare, modificare e ridistribuire il sw, non il fatto che ci si faccia pagare per il lavoro svolto o meno.
In un periodo in cui si cercano di istituire per legge i Brevetti sul software, non bisogna fare confusione tra i due termini:
Opensource: software di cui sono disponibili i sorgenti e si è liberi di modificarlo e redistribuirlo nel rispetto dei Copyrights iniziali.
Freeware: software gratuito liberamente disponibile generalmente solo in formato binario. Esistono varie forme di freeware, alcune anche con i codici sorgenti, nella maggior parte dei casi comunque sono piccole utility.
Public domain: il sw di pubblico dominio consiste in programmi senza copyright, chiunque può farne una versione modificata proprietaria.
Shareware e derivati: si tratta di una abitudine diffusasi ampiamente qualche anno fa con la notevole crescita di internet. Tale tipo di sw prevede la possibilità di utilizzare una copia "di valutazione" del prodotto, limitata nel tempo e spesso anche nelle funzionalità. Lo scopo è e resta puramente commerciale, semplicemente si cerca di invogliare l'utente all'acquisto mostrandogli il prodotto in prova per convincerlo della bontà del medesimo.
La General Public License, meglio nota come GPL è probabilmente la più diffusa e conosciuta licenza opensource, sotto la quale sono rilasciati migliaia di software, particolarmente nel mondo linux.
Si tratta di una licenza che ha lo scopo di regolare la distribuzione, la copia e la modifica dei programmi ai quali è applicata, tutti gli altri aspetti inerenti ai programmi non sono contemplati da essa.
Una caratteristica importante della licenza è la sua trasmissibilità: chiunque modifichi un programma licenziato in GPL è tenuto a rilasciare il medesimo riprendendo tutti i diritti che aveva all'origine (licenza compresa). In pratica creare un proprio programma che incorpora un sw GPL oppure modificare un sw GPL significa anche rilasciarlo con la stessa licenza.
La licenza prevede inoltre la diffusione del codice sorgente del programma, per favorire la cooperazione nello sviluppo, unitamente al programma stesso, di fornire le necessarie indicazioni per reperirlo oppure di renderlo disponibile su richiesta senza alcun costo aggiuntivo che non sia un semplice rimborso delle spese di spedizione e dei supporti.
L'ultima versione disponibile della licenza è la 2 (risalente al giugno 1991) ma è prassi tra gli sviluppatori utilizzare una clausola che sottomette il programma all'ultima versione disponibile della licenza GPL.
Si tratta di una licenza usata anche per X-window e apache, molto meno restrittiva della GPL.
Tutti i sistemi derivati da BSD ne mantengono anche la licenza: completa libertà di duplicazione e modifica dei sorgenti purchè venga riprodotto il copyright iniziale del programma. E' inoltre permesso redistribuire anche solo una versione binaria del programma, mantenendo così private e closedsource le modifiche applicate.
Se si sta pensando a questa licenza per distribuire, ad esempio, una libreria che possa poi essere linkata con sw proprietari, consiglio di dare prima una occhiata allla LGPL: una versione modificata apposta per questo scopo della GPL.