Il y a quelque chose de magique dans Firefox OS !
Le système d’exploitation Firefox OS peut libérer nos smartphones et autres tablettes en apportant une alternative à Apple et Android, un peu comme l’a fait le navigateur Firefox avec le Web en son temps.
Nous vous proposons ci-dessous le témoignage passionné (et passionnant) d’un de ses développeurs.
Il y a quelque chose de magique dans Firefox OS
There is something magical about Firefox OS
Rob Hawkes – 12 septembre 2012 – Blog personnel
(Traduction : Un gros collectif de bénévoles nocturnes issus de Framalang, Identi.ca et Twiiter)
Dans ce billet, je parle du projet Firefox OS, ce qu’il signifie, ce que réserve le futur, et ce qu’il a d’un peu magique.
Au cours des quinze derniers mois, j’ai passé de plus en plus de temps à travailler sur le dernier projet de Mozilla : Firefox OS. Rapidement, je suis tombé amoureux de ce projet et de ses valeurs, à un point que je n’avais jamais connu pour une nouvelle plateforme.
Soyons clairs ; Firefox OS est le début de quelque chose d’énorme. C’est une révolution en marche. Une bouffée d’air frais. Un point culminant de la technologie. C’est magique, et ça va tout changer.
Qu’est-ce-que Firefox OS ?
Pour ceux qui seraient un peu perdus, voici l’essentiel en deux mots :
Firefox OS est un nouveau système d’exploitation pour mobile développé par le projet de Mozilla : Boot to Gecko (B2G). Il utilise un noyau Linux et boote sur un environnement basé sur Gecko, ce qui permet aux utilisateurs de lancer des applications entièrement développées en HTML, JavaScript, et d’autres API Web ouvertes.
En bref, Firefox OS consiste à récupérer les technologies dans les coulisses du Web, telles que JavaScript, et à les utiliser pour produire un système d’exploitation entier. Prenons quelques instants pour y réfléchir… un système d’exploitation pour mobile basé sur JavaScript !
Pour ce faire, une version légèrement modifiée de Gecko (le moteur derrière Firefox) a été créée dans le but d’y intégrer les différentes API JavaScript relatives à la téléphonie, comme WebTelephony pour faire des appels, WebSMS pour envoyer des messages, et la Vibration API pour… faire vibrer le téléphone.
Mais tout génial qu’il soit, Firefox OS représente plus qu’un ensemble de technologies Web dernier cris utilisées de façon démente. C’est aussi l’association de nombreux autres projets de Mozilla autour d’un concept unique — le Web en tant que plateforme. Certains de ces projets intègrent nos initiatives Open Web Apps et Persona, notre solution d’authentification sur le web (anciennement BrowserID). C’est absolument fascinant de voir tous ces différents projets de Mozilla s’unir de façon cohérente en partageant une seule et même vision.
Je n’irai pas plus loin dans la description du projet vu que le but de cet article n’est pas de le faire dans le détail, même si de plus amples informations peuvent être trouvées sur les pages de Firefox OS sur MDN. Je vous invite vivement à les lire.
Pourquoi Firefox OS ?
Vous pouvez vous dire « Ça a l’air bien, mais pourquoi utiliser JavaScript pour faire un téléphone ? » Et vous avez raison, c’est une question réellement importante. La bonne nouvelle est qu’il y a de nombreuses raisons à cela, autres que de faire la joie des développeurs Web.
Les deux principales raisons sont que Firefox OS répond à un manque dans le marché du téléphone, et qu’il constitue une alternative au paysage privativeur, restreint et contraignant du marché actuel.
Combler un manque dans le marché du téléphone
Ce n’est un secret pour personne : les smartphones sont ridiculement chers, même dans les régions du monde dont le niveau de vie est considéré comme élevé. Mais si vous les trouvez chers dans les pays qui ont les moyens de se les offrir, alors pensez un peu à ce que représente un iPhone 4S 16 Go qui vaut 615 £ dans un pays émergent comme le Brésil. C’est 100 £ plus cher que le même téléphone en Angleterre !
En fait, ces prix plus élevés au Brésil sont principalement dus aux fortes taxes d’importation. Apple semble vouloir éviter ceci dans le futur en construisant des usines dans le pays. Quoi qu’il en soit, cela montre bien que les appareils haut de gamme et hors de prix ne sont pas toujours une solution pour tous les pays. Laissons de côté le fait que dans certaines sociétés vous n’avez pas forcement l’envie d’exhiber publiquement un téléphone qui a le même prix qu’une petite voiture.
A l’heure actuelle, que faites-vous si vous souhaitez acheter un smartphone sans débourser une somme astronomique ? Vous pouvez vous tourner vers des terminaux Android d’entrée de gamme, mais ils sont souvent bien trop lents.
Heureusement, c’est là que Firefox OS intervient.
Le but de Firefox OS n’est pas de rivaliser avec des appareils haut de gamme mais d’offrir des smartphones milieu de gamme au prix de l’entrée de gamme. Ce n’est pas une plaisanterie.
Firefox OS répond parfaitement aux attentes du marché : il offre la même expérience d’utilisation sur un matériel d’entrée de gamme que le fait Android sur du matériel plus performant. Et ce n’est pas une blague.
Par exemple, je teste en ce moment même des jeux écrits en JavaScript sur un terminal fonctionnant sous Firefox OS et qui coûte une soixantaine d’euros (clairement, un appareil très bas de gamme). On pourrait donc s’attendre à ce qu’ils fonctionnent très mal, mais non seulement ils tournent bien plus rapidement que les mêmes jeux s’exécutant dans un navigateur internet Android (Firefox ou Chrome) sur le même appareil, mais ils tournent même aussi vite, si ce n’est plus, que les mêmes jeux sous un navigateur Android sur une machine bien plus performante qui coûte 4 ou 5 fois plus cher.
Pourquoi de telles améliorations de performance par rapport aux navigateurs sur Android pour des appareils identiques ? Grâce à l’absence de couche intermédiaire entre Gecko et le hardware, permettant à des choses comme le JavaScript de tourner à plein potentiel, et en finir avec le mythe du JavaScript lent !
De telles performances de JavaScript sur un matériel aussi abordable est une des raisons qui me font penser que Firefox OS annonce le début de quelque chose d’énorme.
Je dois cependant préciser que Mozilla n’est pas forcément sur le point de lancer un appareil à 60 € : il s’agit seulement d’un terminal en particulier que nous utilisons pour le développement et les tests.
Fournir une alternative : une plateforme ouverte
La seconde réponse à la question « Pourquoi Firefox OS ? » est qu’il s’agit non seulement de créer une plateforme mobile alternative et ouverte, mais également d’essayer d’agir pour influencer les grands acteurs du mobile à changer les choses.
La mission de Mozilla depuis ses débuts en 1998, d’abord en tant que projet autour d’un logiciel, puis en tant que fondation et entreprise, a consisté à fournir des technologies ouvertes capables de rivaliser avec les produits des entreprises dominantes.
Firefox a bouleversé le marché du navigateur et montré aux utilisateurs qu’il existe une alternative. Et c’est ce que Mozilla s’efforce de reproduire avec Firefox OS, en permettant à chacun de pouvoir choisir sa façon d’utiliser le Web.
Cette fois-ci, c’est le Web mobile qui est menacé. Pas par Microsoft, mais par Apple et Google, qui sont les plateformes dominantes pour smartphones. Avec leurs applications natives, leurs catalogues d’applications propriétaires, et leurs règles imposées aux développeurs, Apple et Google relèguent le Web à l’arrière-plan.
Sur les téléphones, le domaine qui nécessite le plus de travail est la portabilité des applications…
Avec l’excitation autour des applications mobiles, ils donnent l’impression d’être en retard sur un point : ils restreignent leurs utilisateurs à un système d’exploitation particulier, et aux appareils qui le supportent. Le Web, au contraire, a évolué de façon à ce que le contenu soit ressenti de la même façon, quel que soit le matériel. Mozilla, créateur du navigateur Web Firefox, est déterminé à rendre cela vrai également pour les smartphones.
Ce que Firefox OS cherche à faire, c’est utiliser l’omniprésence du Web pour créer une plateforme qui permet aux applications d’être utilisées aussi bien sur un téléphone portable, un ordinateur, une tablette, ou depuis n’importe quel appareil possédant un navigateur. Ne serait-ce pas génial de pouvoir reprendre sur votre ordinateur la partie d’Angry Birds à laquelle vous étiez en train de jouer sur votre téléphone ? Moi, j’adorerais !
Un rêve à portée de bidouille pour les développeurs
Une dernière raison pour laquelle Firefox OS est nécessaire, c’est que nous n’avons pour le moment aucune plateforme mobile aussi bidouillable (NdT hackable) (il est plus ou moins possible de personnaliser Android, mais ce n’est pas si facile).
Comme Firefox OS est construit avec HTML, JavaScript et CSS, vous n’avez besoin que de connaissances élémentaires en développement Web pour changer complètement l’expérience offerte par l’appareil. En éditant une simple ligne de CSS, vous pouvez totalement modifier l’apparence des icônes de l’écran d’accueil ; ou encore, vous pouvez ré-écrire les fichiers internes JavaScript qui gèrent les appels téléphoniques.
Il s’agit réellement d’une plateforme pour les développeurs et je suis impatient de voir jusqu’à quel point elle sera amenée au-delà de la vision de Mozilla.
Un timing parfait
S’il y a quelque chose dont je suis conscient depuis mon arrivée chez Mozilla il y a un an et demi, c’est à quel point je suis chanceux d’être ici pour le démarrage du projet Firefox OS. Si je me souviens bien, le projet a été annoncé (sous le nom Boot to Gecko) pendant mes premières semaines de travail.
C’était déjà passionnant à l’époque, mais ça l’est encore plus aujourd’hui. Firefox OS est littéralement la chose numéro 1 sur laquelle je travaille actuellement et honnêtement j’adore ça. En réalité, je me sens privilégié d’y participer.
Je me suis demandé de nombreuses fois ce que l’on pouvait ressentir en travaillant chez Mozilla durant le lancement initial de Firefox : l’excitation, la passion, la nervosité, l’incapacité d’expliquer à quel point c’est impressionnant et à quel point on devrait s’en préoccuper.
Pour être honnête, je ne pense pas que beaucoup de monde comprenne réellement ce qui se passe avec Firefox OS, ni à quel point son lancement est important. Un peu comme pour Firefox, j’imagine. Pour le moment, je suis heureux d’être chez Mozilla à un instant clef de son histoire.
À couper le souffle
Les personnes qui le comprennent sont les développeurs qui ont essayé le terminal de démonstration qui est montré occasionnellement, lors d’événements avec des Mozilliens. Il n’y a rien que j’apprécie d’avantage que de voir les différentes phases de leurs émotions lorsqu’ils jouent avec les appareils :
- D’abord, il y a une légère confusion, quelque chose comme « Pourquoi tu me passes un téléphone Android ? » ;
- La confusion est suivie par la réalisation soudaine qu’il ne s’agit pas d’Android mais d’un système en JavaScript ;
- Après un court moment, l’excitation leur fait lancer des « oh putain ! » ;
- Un instant plus tard, les voilà absorbés à explorer tous les recoins de l’appareil en posant plein de questions ;
- Le moment où je leur demande de me rendre l’appareil est accompagné d’une légère réticence et finalement d’un « C’était pas mal du tout, je suis impressionné ! ».
Vous devez penser que j’ai tendance à enjoliver les choses, mais je peux vous assurer que c’est réellement le genre de réaction qu’ont pu avoir les gens auxquels j’ai présenté l’appareil. C’est réellement jouissif.
Ce dont j’ai commencé à me rendre compte, c’est que plus je regarde d’autres personnes s’amuser avec un appareil sous Firefox OS, plus je suis convaincu de sa capacité à changer la donne. C’est comme s’ils s’éclataient avec, sans que j’aie besoin d’intervenir.
Des défis à relever
Il ne serait pas juste de parler de la grandeur de Firefox OS et des points sur lesquels je travaille sans détailler les principaux défis que nous devons relever.
Il y a bien sûr les problèmes classiques : comment gérer un écosystème d’applications qui est libre et sans restrictions ; ou anticiper les problèmes d’interopérabilité des appareils, comme ceux que peut connaître Android.. Ces problèmes sont importants, mais ne m’intéressent pas.
Ce qui m’intéresse le plus, c’est le défi de développer des jeux en HTML5 ; tant pour les performances apparentes que pour les véritables, sur lesquelles les développeurs se plaignent. C’est indéniablement l’un des défis spécifiques à Firefox OS (Android et iOS sont aussi mauvais l’un que l’autre), mais pour le moment, je suis entièrement consacré à Firefox OS et les façons d’améliorer ces points.
Aujourd’hui, la majorité des jeux HTML5 préexistants sur téléphone tournent soit de manière saccadée (0 à 20 images par seconde), ou tout juste fluide (20 à 30 images par secondes). La plupart du temps, ces jeux ne tournent pas à un rythme d’images stable, ce qui rend l’expérience peu plaisante.
Ce qui est intéressant, c’est qu’une grande partie de ces soucis ne semblent pas venir du terminal ou de JavaScript. Il y a quelques jeux intenses, comme Biolab Disaster, qui tournent de manière incroyable, même sur le terminal bas de gamme avec lequel j’effectue les tests (nous parlons ici d’un taux d’images par seconde entre 40 et 60FPS).
Pour moi, il est clair que si les mobiles et les plateformes sont parfois à blames (pas aussi souvent que certains le voudraient), il y a cependant beaucoup de choses que nous apprenons des jeux qui fonctionnent convenablement sur des terminaux bas de gamme, pour voir quelles techniques ils utilisent et comment éduquer au mieux les autres développeurs souhaitant utiliser HTML5 sur téléphone mobile.
Je crois vraiment que des jeux HTML5 gourmands peuvent très bien tourner sur des appareils mobiles, même sur ceux bon marché. Pourquoi suis-je si confiant à propos de ça ? Parce que les gens font déjà des jeux comme ça. Il y a deux choses dans ma vie que je crois sans douter… mes yeux.
Nous en sommes là.
Au-delà du téléphone mobile
Ce qui m’excite le plus à propos de Firefox OS n’a rien à voir avec l’appareil mobile que nous sortons l’année prochaine mais plutôt avec le futur qui nous tend les bras. J’ai abordé ce point auparavant lorsque j’ai parlé de Firefox OS comme un rêve de bidouilleurs, et comment les autres pourraient le récupérer et le développer au delà de la vision qu’en a Mozilla.
La bonne nouvelle est que c’est déjà prêt aujourd’hui. Nous avons déjà un port de Firefox OS sur le Raspberry Pi, ainsi que pour la Pandaboard. Ils ne sont pas parfaits, mais ce qui est génial c’est qu’ils existaient déjà bien avant que Firefox OS voie sa première version sortir.
Vous avez aussi la possibilité de lancer Firefox OS depuis un ordinateur sous Mac, Windows et Linux. Alors qu’il n’est pas possible d’acceder au même matériel qu’avec un appareil mobile, la version pour PC vous permet de bénéficier des autres fonctionnalités (telles que les applications qui tournent dans des processus séparés). En plus, c’est vraiment simple à mettre en place.
Je peux imaginer un futur proche où l’API Gamepad aura été implémentée dans Gecko et pourra être accessible à travers le client PC Firefox OS. Qu’y a t-il d’extraordinaire ? Il y a qu’il n’est pas difficile d’imaginer voir ce client PC être lancé depuis un appareil connecté à un téléviseur, avec un système d’exploitation personnalisé pour utiliser un gamepad plutôt qu’une souris ou un touchpad (ce n’est que du JavaScript).
Ce que vous aurez ici sera le début des consoles de jeux vidéo HTML5, et c’est en fait une chose que je suis impatient d’explorer durant mon temps libre en dehors de Mozilla.
Ce que je veux dire, c’est que nous arrivons à un moment de l’histoire où les ordinateurs peuvent à présent fonctionner avec les technologies que l’on utilise pour créer des sites Web. Que pourrions-nous faire dans un monde rempli de terminaux fonctionnant avec ces technologies, qui pourront tous communiquer en se connectant via les mêmes API ?
J’ai hâte de voir à quoi ce monde ressemblera !
Crédit photo : Rob Hawkes (Creative Commons By-Sa)