C'è un equivoco che va tolto subito: open source non significa "gratis". Significa che hai il permesso di leggere, modificare e ridistribuire il software. Il prezzo è una domanda separata, e a volte la risposta è esattamente la stessa.
La domanda giusta è un'altra: chi decide cosa succede quando qualcosa va storto? Nel software proprietario la risposta ce l'ha il fornitore. In quello libero la risposta ce l'hai tu, perché puoi leggerlo.
Le quattro libertà
La definizione non è mia, è di Richard Stallman, e sta scritta dal 1986. Il software è libero se ti garantisce quattro cose:
- Libertà 0: eseguire il programma per qualsiasi scopo.
- Libertà 1: studiarne il funzionamento e modificarlo per adattarlo.
- Libertà 2: ridistribuire copie.
- Libertà 3: distribuire le modifiche, così altri ne possano giovare.
La numerazione non è decorativa: la libertà 0 indica l'esecuzione, e le successive dipendono da questa nell'ordine in cui le definì Stallman. È il motivo per cui il copyleft è legato alla libertà 3 e non a un'altra.
La quarta è quella che cambia tutto. Non è "gratis per sempre": è che se qualcuno migliora il codice, il miglioramento torna a tutti. È l'unica cosa che rende possibile la collaborazione su scala di cui abbiamo parlato in Perché la sicurezza IT: la collaborazione favorisce maggiore sicurezza ed efficienza.
Il meccanismo che rende la quarta libertà efficace è il copyleft, e va spiegato bene perché è la parte che viene capita al contrario più spesso. Il copyleft non vieta di vendere: vieta di vendere senza restituire. Puoi prendere un software libero, commercializzarlo, farci un sacco di soldi, purché chi lo compra riceva anche le tue modifiche. È l'opposto di una licenza "tutti i diritti riservati".
Come è nato: 1983, una stampante e un progetto assurdo
La storia ufficiale ha una data e un'ora precise: 27 settembre 1983, mezzanotte e un quarto. Richard Stallman, che all'epoca lavorava all'AI Lab del MIT, pubblica su Usenet un annuncio per costruire un sistema operativo libero chiamato GNU, acronimo di GNU's Not Unix. Annuncia anche che avrebbe lasciato il MIT, perché gli avevano proposto un lavoro in un laboratorio che usava software proprietario e lui non voleva essere pagato per contribuire a renderlo obbligatorio.
Il motivo scatenante è più piccolo e più concreto della teoria. Stallman voleva una stampante del laboratorio, condivisa con altri utenti. Ogni stampa finiva in coda, il lavoro si arenava, e quando chiese ai tecnici perché succedesse la risposta fu che il programma di gestione era proprietario e non potevano modificarlo. Non poteva nemmeno vedere il codice. Da lì la frase che riassume tutto: non puoi correggere quello che non puoi leggere.
Quello stesso anno si era rotto anche il sistema operativo del laboratorio, l'ITS, e con lui l'ecosistema di programmazione che gli dava sostanza. Il progetto GNU nasce dalla perdita di due cose insieme: un sistema con cui lavorare e la libertà di modificarlo.
Nel 1985 Stallman pubblica il GNU Manifesto, che è un documento programmatico, non tecnico, e fonda la Free Software Foundation per dare al progetto una struttura legale. Nel 1986 esce la Definizione del software libero, quella che ho citato sopra.
1998: la scissione, e perché è importante
Nel frattempo il mondo era cambiato. Il software libero era diventato redditizio, e la comunità open source — Unix, Apache, Perl, Python — cresceva per motivi molto diversi da quelli di Stallman.
Il 3 febbraio 1998, a un incontro a Palo Alto, viene coniata l'etichetta "open source". Due settimane dopo nasce la Open Source Initiative, fondata da Eric Raymond e Bruce Perens. La OSI deriva la sua Open Source Definition dalle Debian Free Software Guidelines, che Perens aveva scritto l'anno prima.
Il punto non è lessico. È che "free" e "open source" non dicono la stessa cosa, e lo stesso autore lo scrive esplicitamente. Stallman considera "open source" un termine di mercato, pensato per vendere meglio l'ideale delle quattro libertà. Per lui la libertà è una questione etica, non un vantaggio competitivo.
Vale la pena conoscerla, perché la differenza è la stessa che passa fra "software che puoi modificare" e "software che è gratis". Sono due cose reali, ma non coincidono: esistono programmi gratis e chiusi, e programmi liberi che costano.
Perché conviene: cinque ragioni tecniche
1. Il codice è la documentazione definitiva. Quando un server non parte e il manuale non basta, in un progetto aperto cerchi. Qualcuno ha già incontrato il tuo errore, e spesso ha lasciato un commento. Nel software chiuso puoi solo aspettare il supporto e sperare che qualcuno capisca.
2. Nessun vendor lock-in. Il lock-in non è un prezzo, è una dipendenza. Se l'unico modo di fare backup è un tool del fornitore, se l'unico modo di aggiornare è la sua procedura, se l'unico modo di diagnosticare è aprire un ticket: non stai usando il software, lo stai noleggiando. Con il codice aperto la migrazione è lavoro, non un|tradimento.
3. Il software invecchia male in astratto. Un progetto di vent'anni fa su cui nessuno guadagna non viene più mantenuto, e con lui ogni patch di sicurezza. Chi guadagna lo mantiene: e se smette, non lo fa per capriccio ma perché gli conviene smettere. Questo è un problema reale e va detto, insieme al resto.
4. Le falle si contano in pubblico. Quando un progetto è discusso da migliaia di persone, una vulnerabilità discussa in una issue pubblica viene corretta in fretta. Non è che il codice aperto sia immune ai bug: è che non puoi nasconderli.
5. Costa meno, ma non è quello il motivo. Il risparmio sulle licenze è reale ed è spesso finora la voce principale del conto. Ma la voce che pesa di più è l'ultima dell'elenco: la manutenzione la fai tu, con le tue competenze, e tra due persone che chiamano per lo stesso bug di notte l'economia cambia completamente.
Il rovescio della medaglia, detto chiaramente
L'open source non è sempre la scelta migliore, e chi lo sostiene dovrebbe dirlo.
Il supporto costa. Nessuno ti garantisce un intervento entro un'ora. Con un prodotto a pagamento paghi per quello, e lo scopri prima.
Le interfacce cambiano. Una major release può spostare cose che funzionavano. Con un prodotto proprietario paghi per la stabilità.
Serve competenza. Amministrare Linux e i suoi servizi richiede competenze che Windows e .NET mettono a disposizione a pagamento. Il tempo risparmiato in licenza lo spendi in formazione. Se non hai le persone per farlo, il bilancio torna negativo.
Non è gratis davvero. Qualcuno deve mantenere il progetto. Il modello funziona quando esiste un'azienda che ci fa business: Red Hat, Canonical, SUSE, GitLab. Sono sostenitori, non filantropi.
La regola che usiamo noi
Il ragionamento che facciamo in CYBER ONIONS è semplice, e non è "gratis è meglio". È questo:
Se puoi leggere il codice di una cosa di cui dipendi, quella cosa non è tua. Se non puoi, è un favore che ti fanno — e i favori hanno condizioni.
Da qui la scelta di PHP, Linux, MySQL, SQLite e strumenti da riga di comando. Non per ideologia, ma perché un'infrastruttura chiusa tra dieci anni è un problema anche se oggi funziona benissimo. Una aperta è un insieme di strumenti che conosciamo, che possiamo ancora usare anche se sono cambiati, e che possiamo cambiare noi.
Il costo iniziale è qualche ora in più di configurazione. Il risparmio è di non ricominciare da zero — e, se le cose vanno male, di poter guardare dentro.