Il termine open source, codice aperto, indica software aperti, ovvero progettati da una comunità di persone esperte che mettono al centro del proprio lavoro il principio di utilità: sono programmi pensati per essere liberamente accessibili e ridistribuibili.
Nel tempo tale termine, oltre a indicare una tipologia di prodotti informatici aventi specifiche caratteristiche, è divenuto sinonimo di un movimento fondato sui principi della scienza aperta. Tale movimento, attorno al quale si è consolidata una comunità molto attiva che collabora e contribuisce alla realizzazione di vari progetti, promuove un metodo di sviluppo degli applicativi basato sul lavoro collettivo e condiviso, che sfrutta la potenza della “revisione aperta” e della trasparenza del processo, garantendo qualità superiore, migliore affidabilità, maggiore flessibilità, costi inferiori e la fine dei vincoli commerciali dei fornitori.
I programmi aperti
• possono essere modificati e personalizzati da chiunque e liberamente
• sono rivisti, aggiornati e perfezionati da un'ampia rete di persone esperte e di utenti che ne migliorano la funzionalità e il rendimento
• non hanno specifiche proprietarie
inoltre
• hanno release di aggiornamento continue
• bug e malfunzionamenti vengono individuati rapidamente e in maniera più semplice.
Al fine di rendere aperto un programma, chi detiene i diritti utilizza delle licenze d’uso specifiche per i software; un interessante quadro generale sulle licenze disponibili e le loro caratteristiche è pubblicato sul sito Il sistema operativo GNU.
Affinché un software possa rientrare tra gli open source, i termini di distribuzione, ovvero le licenze, devono rispettare i criteri indicati dalla Open Source Initiative nelle Open Source Definition (traduzione dalla pagina web).
1. Ridistribuzione gratuita. La licenza non può limitare la vendita o la cessione dell’applicativo come parte di una distribuzione contenente programmi provenienti da diverse fonti e non può richiedere percentuali o altri costi.
2. Codice sorgente. Il programma deve includere il codice sorgente e deve consentire la distribuzione sia in codice sorgente che in forma compilata; laddove una qualche forma di prodotto non sia distribuita con il codice sorgente, deve esserci un mezzo ben pubblicizzato per ottenerlo preferibilmente scaricandolo via Internet gratuitamente.
3. Opere derivate. La licenza deve consentire di apportare modifiche al codice sorgente e di ottenere opere derivate, garantendone la distribuzione alle stesse condizioni del software originale.
4. Integrità del codice sorgente dell'autore. La licenza deve consentire esplicitamente la distribuzione di un programma progettato a partire da un codice sorgente modificato; eventualmente può fare richiesta di nominare o numerare i lavori derivati diversamente dal programma originale.
5. Nessuna discriminazione contro persone o gruppi. La licenza non deve discriminare alcuna persona o gruppo di persone.
6. Nessuna discriminazione contro i campi di attività. La licenza non deve impedire di utilizzare il programma in uno specifico campo di attività.
7. Distribuzione della licenza. I diritti allegati al programma devono applicarsi a tutti coloro ai quali il programma viene ridistribuito senza la necessità di sottoscrivere una licenza aggiuntiva da parte di tali soggetti.
8. La licenza non deve essere specifica per un prodotto. I diritti allegati al programma non devono dipendere dalla distribuzione del software.
9. La licenza non deve limitare altri software. La licenza non deve imporre restrizioni su altri programmi distribuiti unitamente a quello concesso in licenza.
10. La licenza deve essere neutrale rispetto alla tecnologia. Nessuna disposizione inserita nella licenza può imporre alcuna tecnologia o stile di interfaccia individuale.
Il termine free software, software libero, indica un programma che può essere utilizzato, copiato, distribuito, studiato, modificato e migliorato liberamente dall’utenza. Il movimento Free Software fonda la sua filosofia sulla libertà e stabilisce quattro condizioni che devono essere soddisfatte affinché un programma possa essere definito libero.
• Libertà 0: eseguire il programma per qualunque scopo.
• Libertà 1: studiare come funziona il programma e adattarlo alle proprie necessità.
• Libertà 2: ridistribuire copie del programma per aiutare il prossimo.
• Libertà 3: distribuire ad altri le copie delle proprie versioni modificate in modo che l’intera comunità ne possa trarre vantaggio.
Le libertà essenziali 1 e 3 sono garantite solo se il codice sorgente del programma è accessibile.
Software libero non significa “non commerciale”, fraintendimento nato dal doppio significato della parola inglese free, libero e gratuito; il programma libero può essere commerciale in quanto è disponibile anche per tale uso, sviluppo e distribuzione.
Il termine generico freeware, prodotto gratuito, indica un programma proprietario diffuso con una licenza che ne concede l’uso e la ridistribuzione gratuita. Tra le categorie di programmi freeware è possibile ricordare i software di pubblico dominio, programmi il/la cui autore/autrice rinuncia a qualsiasi diritto in merito all’uso; gli abandonware, versioni obsolete di programmi commerciali; i freemium, programmi che permettono l’uso di alcune funzionalità solo nella versione a pagamento.
Per approfondire
The Journal of Open Source Software is a developer friendly, open access journal for research software packages.
Voce Open source, Wikipidia.
Glossario, Open data handbook.
Open Source Initiative.
The Open Source Way.
Free Software Foundation.