24 gennaio 2015

mozilla "firefox os" recensione - re/open the web!


Ciao ragazzi, come va?

In questi giorni ho smanazzato parecchio con il flame (recensione), il dispositivo di riferimento di mozilla per il mondo Firefox OS.

Per questo motivo oggi volevo parlavi proprio del cuore di quel device, volevo parlarvi della incarnazione mobile della volpetta infuocata.

Firefox OS è il sistema operativo open-source di mozilla.
La sua ultima incarnazione completata è la 2.0, in attesa di essere distribuita sui device compatibili proprio in questo periodo.

Ma andiamo con ordine...
Il viaggio è iniziato nel 2011, quando in mozilla si cominciava a intravedere un nuovo pericolo per il web.


Mozilla è una comunità dedita al free software e sicuramente più famosa per il suo browser web: Firefox.

Per chi non lo sapesse ha una storia molto lunga alle sue spalle, e tale comunità è supportata istituzionalmente dalla Fondazione Mozilla, ente no-profit, ma anche dalla sua filiale, questa volta for-profit, Mozilla Corporation i cui guadagni sono tutti reinvestiti nella fondazione e nei progetti seguiti dalla community.

Mozilla, infatti, non è solo Firefox: segue molti progetti in puro stile open e free, e anche tante attività collaborative. Ogni decisione e sviluppo sono intrapresi in modo trasparente ed in completo supporto con la community di sviluppatori, dei quali solo alcuni sono dipendenti della Corporation, mentre molti sono volontari da tutto il mondo.


Ed ora un po' di storia :D


Negli anni '90, Netscape Navigator/Communicator era il browser web (a pagamento) più diffuso sul mercato. Ma, con l'arrivo di Internet Explorer (gratuito ed integrato all'interno di Windows), i numeri, della allora ancora controllata da AOL Netscape, diminuirono drasticamente.
Così come il supporto stesso dall'azienda madre.

Nel 1998 era nato un progetto in Netscape, denominato Mozilla Organization -dalla fusione di Mosaic, il nome di uno dei primi browser web della storia il cui team di sviluppo era entrato da poco proprio in Netscsape- ed il mostro Godzilla.


Tale gruppo doveva seguire lo sviluppo della versione open source del browser Communicator. Ma il taglio di investimenti da parte di AOL portò nel 2003 alla nascita della Fondazione Mozilla (per assicurare un futuro a tale progetto), e più tardi nel 2005 alla creazione della Corporation (per gestirne le entrate).

Nel 2003 il gruppo mozilla fece una delle cose che per i tempi poteva sembrare azzardata: rilasciò al mondo i sorgenti di tutto il software che essa stessa stava realizzando e che muovevano il neonato browser web Firefox.


Il corso degli anni ci ha insegnato che la scelta fu azzeccata: Firefox ha creato una frattura incolmabile nello strapotere di Internet Explorer, il quale era maturato grazie alla forzata coesistenza all'interno di Windows.

Ma, ancor di più, l'ampia diffusione di Firefox prima e di tutti gli altri browser web che sono nati negli anni successivi, ha permesso alla fondazione di portare avanti lo scopo stesso della sua esistenza: diffondere l'Open Web, contrastare cioè tutte quelle tecnologie proprietarie e chiuse che dagli anni novanta fino al primo decennio del nuovo secolo stavano bloccando l'evoluzione di Internet.

Con la diffusione del mobile e l'arrivo dell'ubiquità, il focus si è spostato dai personal computer ai dispositivi mobili, ed in molti paesi del mondo le persone stanno conoscendo Internet direttamente dagli smart-phone!

Tutti i sistemi operativi costruiti per questi nuovi dispositivi sono silos che difficilmente parlano tra loro. Molto spesso, infatti, gli sviluppatori di applicazioni devono creare versioni apposite dei loro programmi per ognuna delle piattaforme che vogliono supportare.

La sfida di mozilla si è quindi spostata verso questi device, per affrontare un nuovo obiettivo: liberare anch'essi dalle chiusure imposte dagli ecosistemi, al fine di portarvi le tecnologie open e standard del web. Una sfida non così assurda se si pensa alla recente mossa di Whatsapp...



Nel 2011 nacque il progetto Boot 2 Gecko, dove gecko è l'engine che muove il browser Firefox, così da perseguire lo shift dagli ecosistemi proprietari per lo sviluppo di apps alla possibilità di far interagire direttamente il web stesso con il dispositivo.

Il lavoro di mozilla, infatti, non è tanto quello di portare un ennesimo nuovo OS in mano ai consumatori di tutto il mondo; quanto, più, quello di sviluppare delle nuove API che possano far dialogare direttamente le applicazioni scritte in HTML5 con le periferiche hardware del telefonino.

Ed il sistema che in quegli anni stava nascendo era solo parte di un più ampio disegno: anche il browser Firefox stesso, installabile su Android (e presto altre piattaforme), ad esempio, fa parte del progetto e fornisce qualche funzione in più -anche se non così profonda come può sull'OS della volpetta rossa-.
Anche lo store di applicazioni web, Mozilla Marketplace, le cui app sono costruite proprio attorno alle nuove WebAPI (che si spera diventino standard e seguite da ogni altro sistema operativo) è parte integrante della visione dell'ente (ed a fine 2014 contava circa 5500 apps).


Come vi ho già raccontato nella recensione del flame, il resto è storia recente: nel 2012, al MWC di Barcellona, mozilla annunciava ufficialmente il suo sistema operativo open-source per dispositivi mobili sotto il nome di Firefox OS.

E dal 2012 ad oggi diverse versioni si sono susseguite: 1.0, 1.0.1, 1.1.0, 1.1.1, 1.2.0, 1.3.0, 1.4.0 e 2.0.0. Con la 2.1.0 in ultimazione e la 2.2.0 già in ampia fase di sviluppo (nightly).


Nel corso del tempo comunque il cuore del sistema è rimasto sempre lo stesso.
Firefox OS nello specifico è formato da 3 componenti principali: Gonk, Gecko e Gaia.


Gonk non è altro che una mini distribuzione Linux super semplificata: è formato dal kernel linux, dai driver e modem firmware dei vari OEM per le componenti presenti, e da un layer di astrazione dall'hardware (HAL) completamente open source.
Alcune parti, come le librerie per il GPS, la camera, etc, sono condivise con il progetto Android, ed infatti Firefox OS 1.3 ad esempio era allineato al ramo Jelly Bean, mentre con il ramo 2.x si è passati a KitKat.

Questo fa si che per comunicare da PC con il device si utilizzino gli stessi identici strumenti scritti per Android: adb e fastboot.

Purtroppo ad oggi sembra che l'unico modo per poter ottenere i driver binari compatibili con il kernel linux per le componenti prodotte dai vari produttori hardware (in pratica l'unica parte closed di tutto Firefox OS), sia indispensabile montare lo stesso kernel utilizzato da Android.
Anche gli altri OS linux based soffrono dello stesso problema (Sailfish OS, ad esempio).

Mozilla ha però sfruttato la cosa utilizzando le tante librerie condivise con il progetto di Mountain View, accelerando -sicuramente- di gran lunga gli sviluppi.


La seconda componente principale di Firefox OS è Gecko, il motore che permette allo strato superiore (l'interfaccia grafica e le applicazioni) di dialogare con Gonk e che interpreta ed esegue tutte le applicazioni di sistema.
Esse sono scritte con gli standard aperti di HTML5, CSS e JavaScript, esattamente come i siti web, quindi lo stesso motore che interpreta Internet (il motore di Firefox) può farlo anche per le app mobili.

Gecko, inoltre, comprende lo stack di rete, quello grafico, il motore per i layout, la virtual machine per il JavaScript, si occupa della sicurezza, degli aggiornamenti ed anche di altri servizi core.


Infine abbiamo Gaia, il layer di interfaccia -chiaramente scritto nei linguaggi web- che comprende tutta una serie di API esposte che permettono al codice delle applicazioni di interagire con l'hardware e con le funzionalità offerte da gecko.

Gaia si occupa di controllare tutto ciò che viene mostrato sullo schermo, e racchiude anche tutte le app di sistema che si utilizzano quotidianamente (telefono, contatti, calendario, orologio, ...).


La condivisione di librerie e kernel (rimane sempre il problema dei driver) con il mondo Android permette a Firefox OS di essere portato con relativa semplicità anche su dispositivi nati con il robottino verde. Ed esistono alcune versioni realizzate proprio da mozilla per alcuni dispositivi Nexus.
Ma ci sono anche tantissimi porting non ufficiali per altri device realizzati dalla community.



Nel video che ho pubblicato sul mio canale YouTube, ed inserito in calce all'articolo, potete trovare anche una panoramica della interfaccia utente (UI) alla versione 2.0.0 di Firefox OS, nonché qualche esempio della user experience (UX).

Il seguente video, invece, spiega nel dettaglio l'architettura di Firefox OS:



Un buon punto per capire, invece, come sono strutturate le applicazioni compatibili con Firefox OS (ed il suo ottimo supporto all'HTML5) è la seguente mini-guida divisa in due puntate: parte 1 e parte 2.



Ad oggi Firefox OS è un sistema ancora molto giovane.
I primi dispositivi sono arrivati sul mercato solo nella seconda metà del 2013, quindi poco più di un anno e mezzo fa. E sebbene ci siano funzioni anche avanzate che su altre piattaforme sono arrivate dopo anni di sviluppi (penso al controllo da remoto del device, alle notifiche centralizzate, al menu di sharing, oppure alla gestione avanzata dei permessi per le app), il sistema di Mozilla rimane ancora acerbo.

Se a questo si aggiunge che la maggior parte dei dispositivi che montano tale OS ricade nella fascia bassa del mercato, quindi tutti con componenti fisiche non ricercate, è facile capire che lo stato dell'arte è ben lontano da quello raggiunto in altri lidi.


Mozilla, però, si sta anche muovendo oltre gli smart-phone.
La versione per tablet è già in stato avanzato di lavorazione e Firefox OS sta arrivando anche su TV: al CES2015 è stato annunciato un accordo con Panasonic (qui un hands-on) per la realizzazioni di televisori smart di ultima generazione (4K UHD).

E vi ricordavate di Matchstick, il competitor del chromecast?

Non mancano, poi, voci per quel che riguarda il mercato wearable e per l'IoT. Ed indiscrezioni su possibili cooperazioni con Nokia.


Insomma, la strada, quindi, è delineata: lo sviluppo collaborativo portato avanti da Mozilla favorisce e favorirà l'evoluzione dell'ecosistema a velocità maggiori rispetto a quelle di altri competitor. Ma, soprattutto, lo scopo non sarà quello di convincere in blocco gli utenti di tutto il mondo ad utilizzare il nuovo OS, quanto più portare avanti gli scopi della stessa Fondazione: la diffusione delle tecnologie open e libere anche in ambito mobile.


A questo punto non mi resta che lasciarvi al video che ho registrato:



Un saluto a tutti, a presto!