Legal disclaimer : oui, je sais, je reprends le thème du Paris Web de cette année, mais pourtant je parle de ce que j'ai vu lors du Capitole du Libre. Toute ressemblance avec le calendrier Maya, etc…

Il y a 6 années, j'avais écrit un pamphlet « La seconde guerre du web n'aura pas lieue ». J'imaginai un monde où MSIE avait tué tous les autres navigateurs.
Le week-end dernier, pour le Capitole Du Libre, j'ai passé une petite soirée avec un téléphone équipé du système d'exploitation Boot2Gecko, celui qui deviendra FirefoxOS. Une belle visite guidée grâce à l'ex-speakerine Paul Rouget.

1211-Boot2Gecko_de_dos_.jpg 1211-PaulRouget-1.jpg 1211-PaulRouget-2.jpg 1211-PaulRouget-3.jpg
Trilogie de Queue-De-Renard-Agile, samedi dernier à l'N7, accompagné de son téléphone magique

Ce téléphone est un work in progress. Les fonctions techniques seront théoriquement figées le 15 Janvier, après une année de développement intensive. L'interface n'est peut-être pas définitive. Entre nous, je ne publie pas de vidéos parce qu'il faut la voir en action. Parce que…
C'est juste bluffant. Toutes les fonctions d'un smartphone gérées par un navigateur, intégralement en HTML, CSS, événements DOM et Javascript. Bien au-delà des promesses du Windows Mobile sur le premier smartphone présenté par Microsoft il y a 10 ans. Accompagné d'applications qui sont elles aussi des pages web, complètement fonctionnelles en mode offline. De la gestion de tous les registres du SMS à la radio FM, de l'itinérance réseau au double appel en passant par la sonnerie. Encore plus dingue, tout ce système repose uniquement sur des spécifications ouvertes que n'importe quel autre navigateur peut reprendre librement dès aujourd'hui. Oui, le mobile devient ENFIN un système bricolable.
J'en suis encore sidéré.

Ce qui me sidère encore plus, c'est le nombre incrédulifiant d'interlocuteurs « de la profession » qui ne le voient pas. Ou alors, quand ils le voient, oups… Vous savez, le genre à se vanter à longueur de plaquettes qu'ils ont « le numérique dans leur ADN », et puis dans les faits, pfuiitt…
Ce billet est un memorandum de ce que je vois actuellement sur le sujet. Et si ça peut servir à d'autres…

Point 1 : Rester indépendant

Pour commencer, il faut rappeler ce qu'est la Mozilla Foundation. C'est une fondation, une association à but non-lucratif, qui ne vend pas un navigateur, et qui n'est pas affiliée à des intérêts industriels. Sa mission est et restera d'animer l'évolution du web. Tout ce qui est montré dans les API a d'abord été proposé comme standard auprès de la W3C et est en cours de finalisation. Oui, même Dild VibrationAPI.

L'autre mission de la MoFo, c'est l'ouverture. Là aussi, on est dans un domaine fondamental, celui du non-verrouillage d'un standard au profil d'un nombre restreint d'acteurs.

La question du financement ? Ré-écoutez le Supplément Week-End de samedi dernier, Clarista en parle à partir de 1:00:00.

Et cela donne parfois des collaborations spectaculaires :

Ça vous la coupe, hein ? Maintenant le corollaire :

Point 2 : Collaboration

Si Chrome est très fort sur les effets graphiques, Mozilla est bien plus en avance sur le Javascript. Vous ne pouvez pas savoir combien je bous intérieurement de ne pouvoir utiliser les structures de contrôle du Javascript 1.7 à cause du moteur de Chrome. Le site du projet mentionne bien « V8 implements ECMAScript as specified in ECMA-262, 5th edition », j'ai tenté son mode “1.7”, il se montre catastrophique. C'est encore plus agaçant parce que je travaille en NodeJS qui utilise V8.
Et côté CSS, ce n'est pas rendre service à l'équipe Webkit que d'abuser des propriété préfixées. À eux aussi cela pose un immense problème : l'adoption de ces brouillons leur demande de maintenir des notations totalement obsolètes pour quelques sites, au lieu d'aller de l'avant. De ce que j'ai pu échanger avec des collaborateurs de Webkit, eux aussi en ont un peu marre du comportement de certains fanboys. Méfiez-vous : une propriété css avec un préfixe veut dire totalement expérimental, sans aucune garantie que votre style fonctionnera encore dans 6 mois.

Revoyez la conférence/hommage faite à Sud-Web par Bruce Lawson d'Opera Software, « oh IE6 we loved you so much ». En entier.

Paul Rouget le dit à notre micro, il me l'a confirmé que les amabilités entre développeurs de navigateurs vont bien au-delà de l'échange de gâteaux et de pizzas : ils s'invitent régulièrement les uns les autres, ils discutent. Voire ils planchent ensemble sur des bouts de code. Et sont capable de calmer des conflits industriels, comme on l'a vu sur les emoji. Les développeurs de navigateurs n'ont aucun intérêt à se faire une concurrence acharnée quand il s'agit d'implémenter les standards. Car nous ne sommes gagnants que si tout le monde les implémente.

Point 3 : Performances

Photo « Ruby sur l'ongle » Par Franck Taillandier

Passer sur un environnement embarqué permanent, cela veut dire un travail monstrueux sur la performance, la frugalité et la stabilité. Votre application doit rester aussi réactive qu'à son lancement un mois auparavant. On est loin d'une page web qui va vivre moins de cinq minutes.

Mais le problème n'est pas uniquement côté navigateur. Le bagage minimum requis, technical gap, pour pouvoir développer une application sur FirefoxOS est largement plus bas qu'en Objective C, Java ou C♯, mais cette facilité est trompeuse. Elle exige un réel bond technique pour ceux qui font des pages web persistantes : Travailler sur les événements, sur les consommations mémoires, sur les optimisations et surtout sur les bonnes pratiques de développement. La réponse n'est pas uniquement dans le javascript, mais passe par un réel travail d'équipe dans la manière de construire un document html, une structure svg, et une feuille de style.
Des équipes expertes qui seront non seulement bien cadrées côté serveur. Et qui devront avoir une connaissance intime des standards et la façon dont travaille en interne un moteur de rendu. Empiler stupidement des bibliothèques déjà obsolètes vous mènera à a catastrophe.

Je pense très sincèrement que c'est maintenant que les équipes à très fortes compétences vont se monter. On verra d'une manière de plus en plus criante quelles sont les entreprises qui n'ont aucune volonté d'investir dans leurs moyens humains.
Oui, c'est de toi que je parle.

Point 4 : Mobilité

Le PC desktop n'est plus seul. En 5 ans, nous sommes passés au mobile, et le virage est définitif.

Il est même devenu moins cher d'acquérir une tablette qu'un pc. Et le petit gizmo commence à avoir les mêmes fonctionnalité que la tour énergivore qui est glissée sous votre bureau.

Et cette fois-ci, c'est pour de bon !

Point 5 : Indépendance

Je l'avais abordé plus haut, il faut absolument que les standards ne soient pas liés à des brevets logiciels. La mainmise d'un acteur unique sur une définition technologie bloque sa diffusion. Nous le voyons par la multitude incroyable de procès qui oppose les différents constructeurs de téléphones portables.

Seulement, certains ne pourront pas faire ce choix, car il est en contradiction totale avec la stratégie dictée par leurs dirigeants depuis toujours. Microsoft ne peut pas passer à WebGL. Renier ActiveX pour être compatible OpenGL, cela demandera un effort politique incommensurable à Redmond. Pourquoi ? Car les fantômes de Microsoft resteront là pour longtemps, au grand désespoir des plus motivés de leurs ingénieurs. “Heureusement” pour eux, on peut considérer que le support du WebGL sur appareils mobiles n'est pas encore vraiment ready-for-the-pocket. Sur les tests que j'ai pu mener, y'a encore une (très petite) marge de progression, et cette étape pourrait être définitivement sautée en moins d'une année. Quand l'obstacle ne sera que la part de marché de MSIE, là, cela va faire très mal, quels que soient les moyens financiers disponibles.

Encore une fois, c'est le problème de la standardisation.

Point 6 : Verrou matériel

L'autre souci, ce sont les plateformes matérielles qui sont redevenues des briques fermées : Apple refuse tout autre navigateur que Safari et tant pis pour leur retard pléthorique sur le javascript. Idem pour Microsoft et son Windows 8 mobile qui n'acceptera rien d'autre que MSIE avec en plus un soupçon d'impossibilité de mises à jours majeures.

En dessous, la couche matériel est protégée par une multitude de brevets, outre sur la gestuelle, ce qui est vraiment discutable, on y trouve des astuces de conception matérielles pour économiser de la ressource. Même les protocoles radios GSM, 3G, 4G et wi-fi sont protégés par des brevets. Impossible d'obtenir sur certains protocoles radios d'avoir un module du kernel en licence GPL. FirefoxOS tournera obligatoirement sur un kernel linux “teinté”, encombré de problèmes juridiques.

Apple et Samsung n'ont pas fini de s'entre-déchirer. Les autres non plus…

D'un autre côté, il est très difficile d'imposer des accélérations matérielles. L'ogg Theora est provisoirement mis de côté, Firefox passe partiellement au H.264 en louvoyant sur les droits exigés par la LA-MPEG. Nous sommes dans la situation miroir d'ActiveX. Oui, ça me fait mentir sur les codecs libres, mais bon…
Actuellement, le mobile est là où se trouve actuellement le point le plus segmentant : le verrouillage matériel, la gestion des DRM. Heureusement, c'est une politique qui ne peut fonctionner que pour l'acteur dominant. Mais le jour où les solutions plus ouvertes se montreront plus séduisantes…

Point 7 : Marketplace ouvert

C'est probablement ce qu'annonce ces nouvelles API : la fin des applications imposées et des stores propriétaires en position monopolistique. Cela va faire très mal pour certaines boites, mais “heureusement” pour elles, on y est pas encore.

En fait, ce que j'ai toujours admiré chez Apple, c'est outre l'excellence matérielle des premiers iPhone, l'absence d'ingérence des opérateurs mobiles dans l'interface. Rappelez-vous qu'il y a 5 ans, aucun Nokia, aucun Samsung, aucun Motorola ne pouvait être en vente dans un réseau de boutique de téléphonie mobile sans que l'opérateur qui en subventionne la vente ne le farcisse ad nauseum d'applications inutiles et d'une charte graphique absolument pas prévue pour l'embarquée.
Ah pardon, c'est toujours le cas.

Mozilla a créé son propre store d'application, l'opérateur pourra bien évidemment y mettre le sien (même s'il n'a pas compris quel est son cœur de métier). Mais comme le code source est disponible, il est plus que probable qu'à terme, les utilisateurs puissent installer des versions custom, voire standard, de FirefoxOS.

Point 8 : Sécurité

Qui dit application, dit ouverture plus grande des possibilités ouvertes par rapport au navigateur. Mais comme on est en téléphonie mobile, donc le terminal est lié à des services facturables, cela veut dire un accès au compte bancaire de l'utilisateur du téléphone, à son carnet d'adresse, à milles et unes choses qui se monnaient au marché noir. C'était mon sujet (improvisé) lors de la première CryptoParty au Tetalab, et comme je l'avais alors dit, le domaine est largement plus sensible que sur un ordinateur personnel. Il y a eu des efforts gigantesques faits depuis 8 ans, mais il va falloir encore aller plus loin.

Cela va demander une politique très draconienne de sécurité, mettre en place des stratégies et des politiques de restrictions d'accès parfaitement solides. Mais surtout compréhensibles par l'utilisateur. Cela passera forcément par l'éducation du public, qu'il comprenne qu'il est inutile pour un jeu d'avoir accès à son compte facebook ou d'envoyer des sms n'importe où.

Après le marché, le véritable test sera celui du hack malicieux. Et de la vitesse de réponse, de déploiement d'un patch OTA. Cela va là encore demander aux opérateurs téléphoniques de se passer de leurs “validations” de ROM.

Point 9 : La question non-posée : le “cloud”

Ou plus exactement : à qui confiez-vous votre vie privée ? Entre Apple, Google, Facebook, Twitter, Microsoft, Amazon… ? Méfiez-vous, et dites-vous bien que le sauveur européen ne sera jamais un grand FAI comme SFR ou Orange.

Vous vous souvenez de l'histoire du cloud qui fait pshhiiiit ?

J'ai encore touché le futur dans ma main

Eh oui, je sais, ce n'est pas la première fois...

Mais re-réfléchissez-y* : un système complet et viable sera dans une page web. Et qu'importe finalement le moteur de rendu puisque les différents navigateurs vont vers les mêmes standards.

Nous tendons de plus en plus vers une seule page web, qui fonctionnera aussi bien pour le desktop, la télé connectée, la tablette, le smartphone et l'avenir. Oui, car, qui peut prévoir comment nous surferons dans 5 ans ?

Un petit panda roux.


* : Si si ! Encore !