Boot to Gecko è il sistema operativo open source sviluppato con tecnologie web da Mozilla Foundation, lo stesso sviluppatore dei noti Firefox, Thunderbird, Seamonkey e così via. L’intero sistema si basa su Gecko, il motore di rendering adottato da tutti i progetti Mozilla e non solo. Uno dei principali obiettivi di Boot to Gecko (o B2G) è di portare il web al centro dell’esperienza utente e far sì che tutto il sistema ruoti attorno ad esso, un po’ come in Chrome OS – e quale migliore modo per fare questo del creare l’intero sistema con tecnologie web?

Le somiglianze con Chrome OS si fermano, però, qui: i due progetti hanno scopi differenti e modi per raggiungere questi scopi ancor più differenti. Chrome OS funziona esclusivamente sui ChromeBook che altro non sono che PC dalle scarse risorse hardware che fungono solo da medium di accesso al browser, che è l’unico elemento del sistema. In B2G il browser scompare per lasciare posto ad una più diretta integrazione del Web all’interno del sistema e ad una sostituzione di certi aspetti tradizionalmente di esclusiva competenza del sistema operativo per sostituirli con elementi presi dal mondo della Rete.

Analizziamo le informazioni fin qui note sul sistema operativo di Mozilla.

Applicazioni

Boot to Gecko, come abbiamo già avuto modo di vedere, non differirà particolarmente dai sistemi operativi attualmente disponibili dal punto di vista estetico – anzi, ci sarà un certo calco dell’interfaccia proprio per aiutare l’utenza. Di contro, i cambiamenti saranno sotto il cofano: al posto di utilizzare quei linguaggi di alto livello finora da sempre utilizzati per programmare PC, smartphone, tablet e tutti i dispositivi programmabili – tra cui citiamo C, Java, C#, Objective C, C++, e così via – B2G si avvarrà di tecnologie che sono di esclusivo dominio del Web: HTML5, CSS3, JavaScript. La programmazione web è decisamente più semplice della programmazione che è richiesta per un dispositivo “standard”, ed offre innumerevoli vantaggi: è multipiattaforma, cross-browser, non necessita di particolari adattamenti alla dimensione dello schermo se fatta correttamente, e così via. È più ad alto livello dei linguaggi ad alto livello C-like, dunque è più semplice.

Diventa, tra l’altro, difficile in questo contesto definire le cose: sono onestamente in difficoltà nel definire i linguaggi di programmazione “C-like” rispetto ai linguaggi Web. Questi ultimi sono, come dice il nome stesso, linguaggi destinati al Web, ma non esiste una definizione simile per gli altri linguaggi che io conosca differente da “linguaggi nativi” (che potrebbe, però, essere improprio soprattutto con Java e C#). Chiamarli “linguaggi PC” non ha senso, visto il loro ampio uso su smartphone e tablet; cionondimeno è necessario dare una definizione che li distingua dai linguaggi destinati al Web per poterli referenziare facilmente. Ripeto che non conosco una definizione precisa di questo tipo, quindi userò per il resto dell’articolo la dicitura “linguaggi nativi” per quanto possa essere errata: la chiarezza e la semplicità della comunicazione vengono, in questo caso, prima della correttezza formale.

Uno dei vantaggi dei linguaggi web rispetto ai linguaggi nativi è il fatto che non è necessario conoscere la macchina sottostante e le sue specifiche hardware, poichè tutto è domandato allo strato intermedio che è il motore di rendering. Sarà questo programma a doversi occupare di effettuare correttamente il rendering dei contenuti e sarà cura dei creatori di tale motore andare a creare un oggetto in grado di operare correttamente sul dispositivo designato. In questo modo si scarica completamente la responsabilità della conoscenza dell’hardware sui creatori del sistema e si semplifica enormemente la vita dello sviluppatore di applicazioni, che deve concentrarsi solo sul contenuto e non sulle magagne legate alla compatibilità hardware.

Secondo quanto si sa ora, le applicazioni non seguiranno il paradigma finora espresso dagli attuali sistemi operativi: non ci sarà una vera installazione sul dispositivo, o almeno non nei termini in cui la pensiamo ora. Tutte le applicazioni web, infatti, saranno le applicazioni disponibili per B2G e sarà sufficiente aggiungere un “open web app manifest” all’applicazione per renderla “installabile” sul dispositivo. Le API non sono ancora complete e al momento non è possibile fare questo, ma non appena il progetto sarà completo Boot to Gecko potrà contare su migliaia di applicazioni web già sviluppate – sarà sufficiente aggiungere qualche riga di codice!

Se la preoccupazione circa l’utilizzo di tecnologie web per le applicazioni è relativa alla necessità di dover essere sempre online, si può star tranquilli: HTML5 è stato studiato appositamente per poter funzionare anche offline e per permettere la creazione di applicazioni complete che non necessitino della connessione costante.

Un “webOS”

La grafia non è casuale. webOS è un sistema operativo per smartphone sviluppato da Palm e successivamente portato avanti (ed abbandonato, sigh) da HP. Anche se le finalità erano differenti, anche webOS si appoggiava a tecnologie tipiche del web per le sue applicazioni: HTML5, JavaScript e CSS sono alla base di molte applicazioni disponibili per gli smartphone e tablet di Palm/HP. Da questo punto di vista Boot to Gecko raccoglie l’eredità di webOS e amplia il concetto verso nuovi confini.

Avendo recentemente acquistato un Palm Pre 2 e avendone potuto saggiare di persona le capacità e le possibilità, posso dire di essere rimasto stupito dalla velocità e dalla reattività del sistema e delle applicazioni. L’unico motivo per cui il sistema ha rallentato leggermente è la quantità di patch che ho installato per modificare il sistema.

L’unico rammarico è relativo all’interfaccia: mentre webOS ha portato un’interfaccia totalmente nuova con paradigmi innovativi e – da un certo punto di vista – rivoluzionari, per ora Boot to Gecko sembra essere una “brutta copia” di Android che non porta niente di realmente nuovo. Questo è davvero un peccato, soprattutto perchè non spinge la concorrenza su questo punto e, quindi, l’innovazione e le migliorie.

No, non è un browser

La domanda più spontanea è: ma allora si tratterà di un sistema operativo come Chrome OS, solo browser? No, perchè il punto non è l’accesso al web con un sistema operativo più o meno classico, ma la creazione di tutto il sistema (interfaccia grafica, applicazioni…) con tecnologie web. Un concetto ben diverso che potrebbe portare B2G ad avere successo laddove invece Chrome OS ha miseramente fallito. Il motivo, in realtà, è semplice: Chrome OS si propone come un sistema operativo “tradizionale” (a livello di costruzione e programmazione) con il solo accesso al web che rende impossibili molte azioni normali su PC, e lascia quindi l’amaro in bocca a chiunque voglia compiere azioni non all’interno del browser; possiamo dire che Chrome OS si propone come un sistema innovativo sia per gli sviluppatori che per gli utenti, mentre B2G si propone come un sistema operativo tradizionale per l’utente e innovativo per gli sviluppatori. Proprio il fatto che sia un sistema tradizionale per gli utenti può fare la differenza e lanciarlo verso il successo.

Speriamo di poter vedere presto implementazioni reali e prodotti sperando che Mozilla innovi completamente e non solo dal punto di vista della programmazione.