lunedì 14 giugno 2010

Una storia di licenze...

Una cosa che noto sempre piu' spesso, ahimé, è come si tenda a confondere il software OpenSource con il Free Software e con Linux, quasi sempre chiamato Gnu/Linux per enfatizzarne la libertà (mah!). A volte anche io abuso del termine e mi riferisco a Gnu/Linux, anche se cerco di evitare, come cerco di essere tollerante nei confronti di chi mi riferisce aneddoti su Gnu/Linux, dopotutto ognuno ha il diritto ad avere le proprie idee.
Partiamo da un assunto fondamentale: il termine Gnu/Linux è per me sbagliato, come pure sembra sbagliato per l'inventore del kernel stesso, Linus Torvalds. Perché per me è sbagliato? Per una considerazione molto semplice, che è il significato della parola GNU, che rispettivamente potrebbe essere:
  • il nome di un'azienda, come nel caso di Microsoft Windows, ma tutti sanno che questo non è il caso, quindi in questo senso anteporre il termine GNU al termine Linux è sbagliato;
  • il nome di un ente o associazione che ha composto una specifica distribuzione Linux, come nel caso di Red Hat Linux. Questo è uno schema dei nomi per me lecito, quindi se GNU produce una sua distribuzione Linux allora ha (per me) tutto il diritto di chiamarla Gnu/Linux;
  • il nome della licenza con la quale è rilasciato il software, che è il caso concreto. E se è vero che la FSF voglia esplicitamente acquisire popolarità con il nome di Linux, è altrettanto vero che non trovo riscontri analoghi in altri progetti simili. Avete mai sentito parlare di "Gnu MySQL" o di "Gnu KDE" o di "BSD PostgreSQL" o "CDDL OpenSolaris", per non parlare del quasi palindromo "BSD FreeBSD"? Io non li ho mai sentiti, quindi mettere il nome della licenza davanti al nome del prodotto non appare la priorità della FSF, che invece nel caso di Linux ci tiene ad aprire la sua coda di pavone in tutto il suo splendore.
  • l'ente o la fondazione che ha dettato le linee guida per la definizione del progetto stesso. Questo è il caso per esempio di Apache Tomcat (Apache è il nome della fondazione che guida il progetto, e per certi versi anche il nome della licenza), ma non è sicuramente il caso di Linux. Sicuramente Linux non sarebbe il sistema completo che è oggi senza l'aiuto di Gnu e dei suoi prodotti, ma da qui a dire che tutto il sistema è Gnu si esagera. Anche perché se così fosse, dovremmo citare ogni singolo partner che ha contribuito alla creazione di Linux così come è oggi, quindi probabilmente avremmo nomi di distribuzioni che suonano piu' o meno come Canonical-IBM-Apache-Gnu-Linux e chi piu' ne ha piu' ne metta.
Perché è importante comprendere il posto (assente) e il peso (importante) della parola Gnu associata alla parola Linux? Perché troppo spesso si considera che Free Software e Open Source siano la stessa cosa, e troppo spesso si uniscono le due sotto al cappello di Gnu, considerando tutto il resto come "maligno" e non degno di nota, anche se di fatto possa essere sviluppato come prodotto Open Source. Il FreeSoftware è software scritto secondo le linee guida della Free Software Foundation, mentre l'OpenSource è semplicemente una cultura piu' semplice che richiede solo di poter fornire i sorgenti a chi ne faccia richiesta, e che ovviamente chi disponga dei sorgenti possa produrre versioni modificate del prodotto.
Di fatto nel tempo mi sono convinto che la licenza GNU, che comunque continuo ad utilizzare per alcuni miei piccoli progetti, non sia nemmeo quella corretta da usare per promuovere l'OpenSource. Oggi penso che BSD sia la licenza migliore, invecchiando potrei anche cambiare idea e riconsiderare la GPL (o passare addirittura alla MIT). Perché la BSD è così buona? Dopotutto un prodotto OpenSource rilasciato con licenza BSD può essere fatto proprio da una azienda che poi lo rivende come prodotto proprietario, e magari non piu' OpenSource. E quindi? Che problema c'è? Supponiamo di avere un buon prodotto OpenSource con licenza BSD, ed essendo io del "partito", consideriamo PostgreSQL. Diciamo anche che un'azienda si appropria dei sorgenti di PostgreSQL per creare un prodotto proprietario e non OpenSource chiamato GodDB. Cosa potrebbe succedere? Penso a solo tre casi possibili:
  • GodDB è realmente innovativo, aggiunge funzionalità e performance che la versione community PostgreSQL non puo' neanche lontanamente immaginare e che non sa come fare a implementare. In questo caso è giusto che gli sforzi e gli investimenti dell'azienda siano ripagati, e quindi pagati tramite la licenza dell'azienda stessa.
  • GodDB non ha nulla di innovativo rispetto a PostgreSQL, e quindi non ha senso pagare delle licenze quando si può avere lo stesso motore database gratuitamente. In questo caso l'azienda che ha sviluppato il database faticherà a non fallire.
  • GodDB viene rilasciato OpenSource, e quindi tutte le funzionalità eventualmente innovative possono essere migrate dalla versione a pagamento a quella community. Ne consegue che l'azienda deve differenziarsi ad esempio sui servizi accessori o le consulenze.
Al di là di come finisca l'ipotetica storia di GodDB, la vera essenza della storia è che l'uso di una licenza BSD-like spinge verso una forte competitività: la comunità dovrà dimostrare di tenere il passo delle aziende, e queste ultime di tenere il passo (o andare piu' veloci) di volontari ed esperti di tutto il mondo. E in tutto questo la BSD ha anche favorito la nascita dell'azienda dietro a GodDB senza vincolarla o forzarla a rilasciare i propri progetti come di pubblico dominio, quindi permettendogli di entrare nel business piu' agevolmente. Ne consegue che io personalmente non sono spaventato da prodotti con licenza BSD o simile, anzi li vedo come progetti molto coraggiosi e sicuri delle proprie capacità di riuscita anche contro aziende con poteri economici sicuramente superiori. GNU invece tende ad imporre modelli e schemi di condotta, rilascio e business; ma questa è una scelta forzata e come tutte le cose forzate non va bene.
E ne consegue anche che ritengo piu' importante l'OpenSource del Free Software: se si sviluppa OpenSource la libertà è solo una conseguenza, non una imposizione!

Infine una considerazione doverosa dopo aver letto un'articolo di Nuccio Cantelmi su come "Linux puo' uccidere Gnu Linux". L'articolo si potrebbe riassumere così: Linux è una piattaforma libera, ma il cloud-computing spinto in particolare da Google trasforma Linux in una piattaforma che usa solo applicazioni che scambiano dati con applicazioni non libere (es. GMail). 
E quindi? Trovo questo ragionamento abbastanza contorto e tendenzioso. Nel Web 2.0 l'importante non sono le applicazioni, ma i dati. Se anche le applicazioni di Google fossero tutte Free Software (visto che l'articolo cita la GPL), chi avrebbe la potenza di calcolo di eseguire tali applicazioni (run the software è una delle quattro libertà della GPL)? E soprattutto a me interessa il fatto che sul tuo computer/mainframe/rack/cluster girino applicazioni non Free Software? Eticamente mi potrebbe dispiacere, ma fino a quando mi eroghi il servizio che ti richiedo e io posso accedere al servizio con protocolli e software liberi io sono in pace con me stesso. L'importante è che io possa accedere ai dati secondo le modalità pattuite. Altrimenti cosa facciamo, non accettiamo le e-mail che non sono spedite da Sendmail o Postfix perché non sono inviate tramite software libero? Le applicazioni sono e resteranno sempre importanti, ma quello che conta oggi sono i dati, e se i cultori del Free Software non cominceranno a concentrarsi anche su quelli rimaranno sempre una generazione indietro rispetto al mondo IT.

Nessun commento: