VisionMobile, azienda esperta di analisi di mercato, ha stilato un interessante e dettagliato rapporto del mondo aperto del codice sorgente dei software, cogliendo pregi e difetti di quel sistema spesso confuso dagli utenti come un paladino delle proprie libertà. L’analisi si basa su una classificazione dei sistemi aperti più noti (e di successo). Il sistema open più chiuso sapete qual è? Android! Il software di Google ha un coefficiente di appena il 23% di apertura, con l’accesso agli sviluppatori limitato al minimo. Insomma un sistema praticamente chiuso, identico al 77% a quello dei concorrenti. Vediamo quindi le ragioni che di fatto mettono Android allo stesso livello di chiusura di iOS e di Windows Phone.
Oggi l’utilizzo nel settore mobile di software open source sta diventando una regola di moda, quasi questo sia un fattore discriminante tra ciò che è giusto e dalla parte degli utenti e tutto il resto, ovvero i ricchi (e ignobili) guadagni del mercato digitale privato.
Eppure, rileva VisionMobile, in questa allegra visione manca un aspetto importantissimo per determinare se un software è libero e veramente open source, determinando così il suo grado di apertura con un sistema ineccepibile: l’accesso diretto al codice sorgente. Sembra scontato vero? Può sembrare banale, ma non è affatto così scontato che un sistema classificato “open” sia davvero accessibile alle modifiche di chiunque. Questo grado di apertura va ben oltre i termini delle licenze (un sistema open con licenze?!?) e viene definito dalla “governance”.
Se le licenze determinano il diritto di utilizzare, copiare e modificare un software, la governance definisce invece il diritto di ottenere “visibilità”, influenzare e creare i derivati di quel progetto, in tutti i modi possibili (e quindi non definiti dalla licenza stessa).
La governance pone quindi domande strutturali del tipo:
- chi decide i tempi e i modi di sviluppo di un progetto?
- quali e quanto trasparenti (ovvero di accesso) sono i processi decisionali?
- come e dove avvengono i dibattiti della comunità di sviluppo?
- è possibile per chiunque accedere a tutto e creare o modificare quello che si vuole?
- chi decide i requisiti per creare i derivati e le applicazioni?
La governance determina quindi chi ha l’influenza e il controllo del progetto e dell’intera piattaforma open, al di là di quello che prevede e controlla la licenza stessa. La governance riassume l’apertura reale di un sistema, quella effettivamente vera. E’ proprio il governo di quel progetto che fa la differenza tra un programma aperto e uno chiuso.
VisionMobile ha sottoposto ad attenta analisi otto grandi progetti open source mobili: Android, MeeGo, Linux, Qt, WebKit, Mozilla, Eclipse e Symbian: da quello di grande successo (Android) a quello fallimentare (Symbian).
Quantificare la governance di un progetto comprende 13 parametri in 4 aree più generali:
- Accesso: la disponibilità del codice sorgente più recente, i suoi meccanismi di supporto agli sviluppatori e la trasparenza del processo decisionale
- Sviluppo: la capacità di un qualsiasi sviluppatore di influenzare il contenuto stesso e determinare la direzione dello sviluppo
- Derivati: la possibilità per gli sviluppatori di creare e distribuire i derivati di quel codice sorgente in prodotti hardware e software
- Community: la struttura della comunità di sviluppo
L’indice di apertura della governance quantifica quindi la vera apertura di un progetto in termini di trasparenza, di processo decisionale e di struttura della community. Anche l’equo trattamento degli sviluppatori e la meritocrazia degli stessi ha la sua importanza.
L’indice di apertura non garantisce affatto il successo o meno di un progetto. E questo è al quanto evidente. Secondo VisionMobile le piattaforme più aperte sono destinate al maggior successo nel lungo periodo.
Android è quindi il sistema meno aperto, chiuso al 77%, eppure quello di maggior successo. L’apertura della governance è quindi ininfluente nel successo di un software.
Android non sarebbe mai arrivato al successo odierno se non avesse avuto la spinta e la potenza di Google, dei suoi miliardi e quindi dei team di sviluppatori messi a disposizione da Mountain View. Android è stato quindi reso disponibile a costi nulli, proprio per facilitarne la diffusione e permettere a Google di guadagnare con la pubblicità (il vero business). Android non sarebbe mai cresciuto senza i miliardi stessi degli operatori concorrenti di Apple. Ecco quindi il senso della frase del CEO di Nokia, Stephen Elop, che a giugno ha detto: “Apple ha creato le condizioni necessarie al successo di Android”.
Il software open source (OSS) è comparso fin dall’esordio dei primi Pc, ma la sua vera proliferazione c’è stata con il nuovo millennio. Già nel 1976 il giovanissimo Bill Gates dichiarava in proposito: “La maggior parte degli utenti privati dovrebbe essere consapevole quando ruba un software, e bisogna impedire quindi che un buon software venga scritto”. Ovvero i programmatori di allora utilizzavano Altair Basic di Microsoft senza pagarne la licenza, e Gates riteneva ciò un vero danno per gli sviluppatori “ufficiali”, cioè quelli che creavano il vero software di altissima qualità.
Sono passati quasi 40 anni da allora, e gli esperti stimano che per sviluppare un kernel di Linux servirebbe a una grande azienda un investimento di 1.4 miliardi di dollari, 10.8 miliardi di dollari per sviluppare Fedora 9, e “solo” 89 milioni di dollari per creare il motore del browser WebKit. Insomma OSS dimostra pienamente al mondo dell’industria informatica la sua vera potenza.
Il movimento del “software libero” fu creato nel 1989 da Richard Stallman, che è anche il fondatore della Free Software Foundation (FSF) e di una ricca libreria di codice per i sistemi GNU. Stallman è fortemente convinto che il software debba essere libero, ovvero in grado di permettere a tutti gli utenti di apportare modifiche e quindi miglioramenti a qualsiasi livello. Le regole basilari di Stallman sono:
- libertà assoluta di eseguire un programma per qualsiasi scopo
- libertà di studiare il funzionamento del programma e adattarlo alle proprie necessità
- libertà di distribuire il programma per aiutare la comunità
- libertà di distribuzione del programma modificato secondo le proprie necessità
Per Stalmann quindi le esigenze pure del business e la possibilità di creare reddito (altrui) sono secondarie alla filosofia del software libero ad ogni costo.
Poi a dire il vero non si capisce bene come mai Stallman vada in giro per il mondo a ripetere le stesse cose da più di 20 anni, con noiose conferenze-fotocopia (il 50% delle parole che pronuncia è “free”) o per rilasciare le solite interviste (rigorosamente a pagamento). Insomma se i soldi li guadagnano altri non va bene, ma se li pretende per se stesso (tanti dollari facili) van benissimo… (e va beh, lasciamo stare e proseguiamo, però era giusto segnalarlo).
I vantaggi di rilasciare i codici sorgenti di un programma sono stati descritti da Eric Raymond nel suo libro “The Cathedral and the Bazaar” (1997). Raymond mette in contrasto il software proprietario (la cattedrale) e quello senza segreti (il bazaar). L’osservazione è nata proprio seguendo la nascita e lo sviluppo di Linux, con la constatazione che se più persone partecipano allo sviluppo di un progetto, più questo avrà la forza delle tante idee e prima sarà completato nella sua versione finale senza i classici problemi di un programma (come i tanti bug sempre presenti). Questa è di sicuro la prima vera forza di un software FSF.
Nel 1998 Raymond e Bruce Perens hanno fondato la “Open Source Initiative” (OSI) che ha il compito di promuovere l’uso del software aperto ad usi commerciali. Ad oggi l’OSI gestisce più di 10 punti della definizione di open source e una serie di 70 licenze in conformità alle regole del software libero stesso. Le licenze di un software libero sembrano essere un contro senso, eppure sono necessarie per garantire a chiunque il libero accesso ad un qualsiasi derivato di quel software medesimo, senza nessuna discriminante o restrizione di ogni tipo. La licenza è quindi una garanzia di base per il mantenimento delle peculiarità di un software libero.
L’open source deve intendersi anche come una metodologia di sviluppo. In un contesto commerciale quindi questa metodologia di sviluppo deve essere estesa e collaborativa. Altrimenti non si tratta di open source.
L’intero processo di sviluppo di Android avviene a porte chiuse, e quelle porte rimangono chiuse anche a processo terminato. Infatti ad essere aperte sono solo alcune finestre, e per entrare in quella casa si deve quindi entrare dalla finestra socchiusa. Allora perché tutti continuano a definire Android open? Di sicuro l’immagine di “libero” crea un ritorno di immagine “benevola” che sta dalla parte giusta e quindi degli utenti. Una reputazione costruita sulle buone intenzioni, che raccoglie le simpatie di tutti. Dicesi in parole semplici: un grande lavoro del “reparto-marketing” di Mountain View. Lo stesso Honeycomb è ufficialmente un prodotto non open. Lo diventerà. Forse lo è già diventato. Forse no. Forse sì. Forse chissà cosa c’entra proprio l’open source? Boh !
E non può essere definito un sistema open solo perché qualche utente smanettone è in grado di personalizzare le schermate. Se questo è possibile lo è solamente in seguito alla scelta univoca del proprietario del software.
L’open source al contrario di quanto si possa pensare non è affatto gratuito. Non è un caso se per ogni apparecchio venduto con sistema Android ci sia da pagare qualche decina di dollari niente meno che alla Microsoft. E tanto meno si capisce quando dopo tanti meriti tra open e free, i costi del prodotto finale siano pressoché identici a quelli dei sistemi ufficialmente chiusi.
Un progetto open source è composto da una o più applicazioni, come ad esempio Mozilla col suo browser Firefox. Il kernel Linux, progetto open source per eccellenza, è inserito invece in un contesto di una distribuzione software comprendente molte librerie di ogni genere. Una distribuzione non è mai completa al 100% perché progettata proprio per essere completata da libere personalizzazioni a qualsiasi livello e da parte di chiunque.
Android e Symbian sono delle piattaforme open source, ovvero pacchetti completi di software che includono tutte le applicazioni necessarie al funzionamento, librerie comprese.
Android comprende 185 componenti diversi, molti dei quali sono progetti separati fra di loro, come lo sono il kernel Linux e WebKit.
Nessun evento del mondo open source mobile può essere ritenuto più importante dell’arrivo di Android. Nel novembre 2007 Google decide insieme alla Open Handset Alliance, un consorzio di 79 fornitori hardware e software, l’ingresso nel campo della telefonia mobile computerizzata. Nel 2008 è stato rilasciato l’SDK e Google ha offerto 10 milioni di dollari per cominciare ad attirare gli sviluppatori sul proprio sistema. Il G1 della HTC è stato il primo cellulare con sistema Android, messo sul mercato americano nell’autunno del 2008. Il resto è storia recente, con Google che riferisce di 500 mila apparecchi Android in attivazione giornaliera. Un valore che determina la prima posizione mondiale, ma che comprende telefoni anche di fascia bassa (e quindi non paragonabili all’iPhone).
Sulle licenze dell’open source si conosce tutto, ma si parla poco dei modelli di governance dell’open source stesso. Se le licenze determinano i diritti di utilizzo, di copia e di modifica di un prodotto, la governance determina il diritto alla visibilità, all’influenza e ai derivati di quel prodotto. E così mentre la licenza si applica al codice sorgente, la governance si applica al progetto o alla piattaforma. Il modello di governance descrive i punti di controllo di un progetto come Android e WebKit, ed è un fattore determinante nel successo della piattaforma medesima. La governance determina quindi chi ha influenza e controllo sull’intero progetto, ben al di là di ciò che legalmente descrive la licenza open source di quel progetto.
E’ quindi il modello di “governo” che fa la differenza fra un sistema aperto e uno chiuso.
VisionMobile, nella stesura del documento di analisi del mondo open source, ha analizzato un periodo di 6 mesi nei quali sono stati compresi i contatti con le varie community di sviluppo, coi rappresentanti dei progetti e con studiosi e accademici del mondo open.
Il modello di governance risponde ai seguenti quesiti (Accesso, Sviluppo, Derivati e Community):
- il codice sorgente è liberamente accessibile e disponibile a tutti gli sviluppatori e nello stesso tempo?
- il codice sorgente è disponibile in una licenza approvata dal modello OSI?
- agli sviluppatori sono disponibili tutti gli strumenti di sviluppo necessari? (mailing list, forum, database, bug tracking, codice, documentazione).
- il progetto intero è pubblico?
- i meccanismi di decisione sono trasparenti? Esistono i verbali pubblici delle riunioni? E’ quindi possibile capire come vengono prese le decisioni di sviluppo?
- il sistema di accettazione dei contributi e del codice è un processo chiaro e pubblico?
- è possibile identificare la provenienza dei contributi e dei codici sorgente?
- per diventare dei “committer” ufficiali, il processo è pubblico? Con quali regole? E’ identico per tutti gli sviluppatori?
- si possono identificare tutti i “committer” ufficiali ?
- il contributo alla licenza richiede una assegnazione dei diritti d’autore, una licenza di copyright o la concessione di un brevetto?
- ci sono controlli di aziende con marchio registrato che decidono come e dove la piattaforma verrà utilizzata e la sua conformità prima della distribuzione?
- ci sono dei canali di mercato che limitano l’approvazione e la distribuzione del progetto?
- la struttura della community di sviluppo è gerarchica e su più livelli ? Cambia in funzione del profilo di appartenenza?
Queste domande delineano caratteristiche precise e molto chiare del prodotto open source di Google.
Android è stato quindi lanciato nel mercato in pompa magna nel 2007, imponendosi nel mercato senza il peso del copyright. Nessuna licenza da pagare quindi. Tutto gratis, tutto aperto. Tutto. Ma è davvero così? No.
Nel 2008 Google ha rilasciato il codice sorgente del progetto G1 della HTC. Nel 2010 i modelli di telefonini con Android erano 60, costruiti da ben 20 aziende diverse. Nel 2011 Gartner ha previsto la vendita di 300 milioni di telefoni (di tutte le fasce) col sistema Android, un successo che appena 3 anni fa nessuno a Mountain View avrebbe mai sperato.
Il sistema di Accesso di Android.
Android comprende componenti specifici (la piattaforma) che sono per la maggior parte rilasciati sotto la licenza Apache 2.0 . Sono inclusi il kernel Linux e WebKit, che sono sotto la licenza GNU GPL, con varie componenti minori protette dal copyright. La licenza Apache 2.0 è molto permissiva, permettendo la distribuzione di versioni modificate del codice senza nessun obbligo di comunicare questi cambiamenti alla community relativa. Oltre la licenza pubblica APL2, Google mantiene un ramo privato di codice. Questo ramo è in fase di sviluppo molti mesi prima che venga rilasciato il codice pubblico. Il codice privato è disponibile solo a due OEM (scelti arbitrariamente), che lavorano entrambi in stretto contatto con Google stessa.
Google offre agli sviluppatori l’accesso alla propria mailing list e alla suite completa di strumenti. Ma la visibilità della tabella di marcia e di sviluppo è limitata, perché non esiste una visuale pubblica dell’intero progetto. Solo Google conosce questi aspetti fondamentali, non a caso nel marzo scorso ha reso noto che non fornirà l’accesso pubblico al codice sorgente dell’ultima versione di Android, Honeycomb (“We have more work to do before we can deliver [Android] them to other device types including phones. Until then, we’ve decided not to release Honeycomb to open source”).
Ma non dovrebbe essere il contrario?
Lo Sviluppo di Android.
Tutti i contributi al codice base di Android sono “incoraggiati” da Google. In altre parole passano prima per l’ufficio “Approvazioni e bocciature”. Google richiede a chi contribuisce di accettare i termini di una licenza individuale, che comporta i diritti di copia (classici) in favore di Android (…). Ogni individuo che vuole accedere e contribuire allo sviluppo di Android, deve essere valutato, gestito e approvato dal relativo reparto “Approvazioni”, rigorosamente privato e assoluto nelle decisioni, formato esclusivamente da impiegati di Mountain View. Esattamente come avviene in Apple, Microsoft e tutti gli altri.
Non si conoscono le statistiche riguardanti quanti sono i progetti non Google, quanti quelli Google, di quale provenienza ecc. Insomma è tutto tenuto in gran segreto. Non si conoscono nemmeno i tempi eventuali di una approvazione di un codice esterno. Il processo è quindi completamente controllato, tenuto rigorosamente privato e con un metodo arbitrario. Tutto chiuso e blindato, forse oltre la stessa concorrenza.
I Derivati di Android.
Google ha il controllo totale della piattaforma Android e di tutti i suoi derivati. I produttori dei dispositivi devono per forza passare tutte le definizioni di compatibilità (CDD) e di test (CTS) per poter essere ammessi all’uso del marchio Android, del Market, di Gmail, GTalk e GMaps.
Il CDD elenca l’insieme minimo delle funzionalità che un dispositivo Android deve contenere al fine di poter utilizzare il sistema operativo di Google. I dispositivi che funzionano con Android ma non passano il test CTS, come oPhone e Archos, non possono essere dispositivi Android. Quei dispositivi che passano il CTS possono invece aspirare ad accedere alla fase successiva, sperando nell’approvazione “politica” ed essere quindi autorizzati all’uso del marchio Android. Insomma di libero c’è ben poco, esattamente come tutta la concorrenza.
In una email del 6 agosto 2010, Dan Morril scriveva: “Stiamo utilizzando il test di compatibilità per obbligare i costruttori a fare le cose che vogliamo noi“.
La struttura della Community di Android.
La Open Handset Alliance era nata con lo scopo di offrire un servizio pubblico. Oggi è invece ridimensionata a gestire i membri della stessa OHA, senza avere forma di persona giuridica, senza alcun processo di comunicazione tra i membri stessi e senza l’organizzazione di almeno un meeting annuale, nemmeno per il brindisi natalizio!
In conclusione possiamo affermare che Android è il progetto più chiuso di tutti i progetti open source. La struttura di Android è la medesima di quella in un qualunque concorrente, con i pregi e i difetti di un sistema privato che ha nel business il suo unico scopo esistenziale. L’affermazione di una piattaforma software non dipende affatto dal suo grado di apertura o di chiusura, ma dalla validità del prodotto. E se Google ha costruito il sistema più diffuso al mondo significa che quella è l’offerta migliore per l’intero mercato. Senza derivare però nessun merito dalla filosofia del software libero, di cui Google è a tutti gli effetti un avversario, proprio come Microsoft o Apple.
Per il momento di open source veramente open c’è solo Linux. Con tutti i pregi e i difetti che conosciamo benissimo. Tutti gli altri sono più o meno dei tarocchi, paladini a parole dell’open source chiusa.
Et voilà l’ossimoro!
La relazione completa è disponibile al seguente link.