Cos’è il software open source?
Definire un software open source significa indicare che gli autori del software, e quindi detentori di diritto di autore e copyright, rendono disponibile il codice sorgente, favorendone lo studio e permettendo ad altri programmatori di apportarvi modifiche ed estensioni.
Il software open source può essere sviluppato quindi in maniera collaborativa da più attori indipendenti, per diversi scopi.
Le possibilità di manipolazione del software sono regolate attraverso l’uso di una licenza, che stabilisce i termini all’interno dei quali è consentito operare.
Il movimento legato al software libero e all’opensource deriva dalla cultura hacker degli anni ’70 e si formalizza con il manifesto GNU di Richard Stallman nel 1983.
Per approfondimenti potete consultare la Storia del software liberosu Wikipedia.
Le principali licenze open source
Esistono numerose licenze che ricadono nell’ambito del software libero e dell’open source.
Le principali sono:
- GNU General Public License (GPL)
- GNU Lesser General Public License (LGPL)
- GNU Affero Generale Public License (AGPL)
- BSD License
- Mozilla Public License (MPL)
- MIT License
- Apache License
- Eclipse Public License
La scelta della licenza è una cosa da valutare attentamente dato che regolano le libertà fondamentali del software, che sono definite come:
- Libertà 0: libertà di eseguire il software per ogni scopo
- Libertà 1: libertà di studiare come funzioni il software e modificarlo a piacimento
- Libertà 2: libertà di ridistribuire copie del software
- Libertà 3: libertà di migliorare il programma e rilasciare le migliorie al pubblico, in modo che l’intera community ne benefici.
Open source nella Pubblica Amministrazione e Codice Amministrazione Digitale (CAD)
Fin dal 2003, attraverso la Commissione Meo o “Commissione per il software a codice sorgente aperto nella Pubblica Amministrazione”, la Pubblica Amministrazione Italiana stabilisce come le soluzioni a codice aperto siano esattamente comparabili a soluzioni proprietarie e che il principio di base sul quale ragione sia il rapporto qualità – prezzo.
Dal lavoro della commissione deriva la Direttiva Stanca “Sviluppo e utilizzazione dei programmi informatici da parte delle Pubbliche Amministrazioni” che stabilisce una serie di principi fondamentali nella valutazione:
- Analisi comparativa delle soluzioni: la PA deve acquisire programmi informatici sulla base di una valutazione comparativa tecnica ed economica, tenendo conto della rispondenza alle proprie esigenze.
- Criteri tecnici di comparazione: la PA deve privilegiare soluzioni che assicurino interoperabilità e cooperazione applicativa tra diversi sistemi informatici.
- Rendere i sistemi informatici non dipendenti da un unico fornitore o tecnologia proprietaria.
- Garantire la disponibilità del codice sorgente per ispezioni e la tracciabilità da parte della PA.
- Esportare dati e documenti in più formati, di cui almeno uno di tipo aperto.
La direttiva Stanca si è riversata nel Codice di Amministrazione Digitale, che nel 2012 è stato oggetto di revisione nel suo articolo 68.
Il primo comma dell’articolo 68 privilegia l’impiego di software libero all’intero della Pubblica Amministrazione:
“1. Le pubbliche amministrazioni acquisiscono programmi informatici o parti di essi a seguito di una valutazione comparativa di tipo tecnico ed economico tra le seguenti soluzioni disponibili sul mercato: a) software sviluppato per conto della pubblica amministrazione; b) riutilizzo di software o parti di esso sviluppati per conto della pubblica amministrazione; c) software libero o a codice sorgente aperto; d) software combinazione delle precedenti soluzioni. Solo quando la valutazione comparativa di tipo tecnico ed economico dimostri l’impossibilita’ di accedere a soluzioni open source o già sviluppate all’interno della pubblica amministrazione ad un prezzo inferiore, e’ consentita l’acquisizione di programmi informatici di tipo proprietario mediante ricorso a licenza d’uso. La valutazione di cui al presente comma e’ effettuata secondo le modalità e i criteri definiti dall’Agenzia per l’Italia Digitale, che, a richiesta di soggetti interessati, esprime altresì parere circa il loro rispetto” .
La Pubblica Amministrazione è quindi tenuta ad utilizzare soluzioni open source o in riuso nel caso queste siano disponibili.
Vantaggi dell’Open Source.
Ora conoscete il software open source. Ma quali sono i vantaggi del software libero rispetto agli altri tipi di software?
Qualità del Software e del Codice Sorgente
La principale differenza tra i software a sorgente aperto e quello proprietario è lo sviluppo condiviso. Ciò significa che molti programmatori possono verificare il codice sorgente e apportare modifiche e migliorie durante tutto il ciclo di vita di un progetto.
Molti più occhi potranno quindi rilevare potenziali bug nel software e correggerli velocemente. Il mondo open source ci ha infatti abituati a vedere segnalazioni di errori con allegato il codice sorgente per correggerli. La qualità globale del software aumenta quindi con le contribuzioni e nel caso la modifica proposta non sia adeguata è sempre possibile rifiutare la contribuzione nell’albero del codice sorgente o richiedere o apportare le modifiche adeguate.
Lo sviluppo condiviso facilita inoltre il rewriting del codice ed un suo refactoring, dato che le parti ingarbugliate possono essere riscritte da programmatori più esperti rispetto agli autori originali.
Software di caratura sartoriale
Un pacchetto software commerciale viene definito sulla base del marketing e su un potenziale target di mercato. Nel modello di sviluppo open source sono le necessità della community a costruire il software e ne definiscono quindi le caratteristiche ed il percorso evolutivo. Ne risulta che le applicazione open source sono molto specifiche e basate sulla risoluzione di uno specifico problema, segnalato dagli stessi ideatori del programma.
Il software open source può essere inoltre adattato alle specifiche esigenze dell’utilizzatore direttamente dal proprio CED o attraverso la consulenza di professionisti o aziende specializzate. I costi dell’operazione saranno inferiori rispetto alla personalizzazione di un pacchetto commerciale, solitamente molto onerosa, e i risultati possono essere rilasciati liberamente alla community consentendo ad altri di beneficiare del proprio investimento.
Un’altra strategia per la personalizzazione del software o per l’implementazione di una nuova funzionalità è una donazione agli sviluppatori del progetto opensource, che potranno lavorare alle funzionalità richieste grazie ai vostri fondi.
Supporto dalla community di utilizzatori
Abbiamo visto che il software libero è sviluppato in maniera collaborativa e questo sviluppo è generalmente contornato da grandi community di utenti che si riuniscono in forum, mailing list o canali IRC per condividere opinioni ed esperienze, ma anche per aiutare i nuovi arrivati o chi ha un problema con il progetto.
Una grande community significa quindi poter ottenere supporto e aiuto in maniera completamente volontaria e gratuita. Ricordiamo tuttavia che non è possibile pretendere un aiuto tempestivo e corretto dalla community a titolo gratuito. Fortunatamente esistono aziende specializzate nel software Open Source che possono fornire un supporto professionale e che spesso fanno proprio parte della community. A queste aziende ci si può rivolgere per un supporto tempestivo e ulteriori sviluppi.
Indipendenza del fornitore e libertà d’impiego
Software libero significa libertà. L’utente è libero di utilizzare e personalizzare il software come ritiene più opportuno. Non sono previsti numeri di utenti prefissati o installazioni e quindi non sono previsti costi aggiuntivi per aggiornamenti e supporto obbligatorio.
Maggiore libertà significa inoltre essere protetti da eventuali chiusure o acquisizioni delle aziende dietro lo sviluppo del software.
Open source significa che l’utilizzatore può rivolgersi a chi ritiene più opportuno per la fornitura del software. Sono infatti molte le aziende che sviluppano software open source offrendo supporto commerciale non obbligatorio. Rivolgersi a tali aziende per un’aiuto iniziale spesso significa salvaguardare i propri investimenti.