BT

Diffuser les Connaissances et l'Innovation dans le Développement Logiciel d'Entreprise

Contribuez

Sujets

Sélectionner votre région

Accueil InfoQ Actualités Facebook: “Parier sur HTML5 était une erreur” – Raisons techniques et réactions

Facebook: “Parier sur HTML5 était une erreur” – Raisons techniques et réactions

Facebook a décidé d'opter pour le natif pour son contenu mobile plutôt que de continuer avec le HTML5 comme ils l'avaient prévu et le faisait depuis quelques années. Cet article contient des détails techniques derrière ce positionnement de Facebook, ainsi que des réactions de Xamarin et Mozilla.

Mark Zuckerberg, le CEO de Facebook, a récemment déclaré dans une interview pour TechCrunch que “la plus grosse erreur qu'ils aient fait en tant que société avait été de parier trop sur le HTML5 au lieu du natif car c'était encore trop tôt,” et que “le flux des publications avait doublé depuis qu'ils avaient réalisé leur application pour iOS natif.”

Zuckerberg n'a pas annoncé clairement quel avait été leur soucis avec HTML5, mais il a suggéré que la qualité des produits n'était pas à la hauteur: “Il y a actuellement des expériences utilisateurs mobiles tellement bonnes, que ... nous nous devons d'avoir la plus haute qualité, et la seule solution est de choisir la voie native.”

Tobie Langel, un ingénieur logiciel de Facebook et un représentant du W3C, a détaillé dans un article les problèmes de performances rencontrés par Facebook pendant la création de leur application web mobile basée sur HTML5. Le premier problème que Langel soulève étant le manque d'outils de debug :

Le manque d'outillage des navigateurs web mobile rend la détection et la résolution des problèmes vraiment difficile… Les plus gros soucis que nous ayons rencontrés sont liés à des problèmes de mémoire. Etant donné la taille de notre contenu, ce n'est pas rare que notre application épuise les possibilités permises par le terminal mobile, provoquant alors un crash de l'application. Malheureusement, c'est difficile pour nous de comprendre exactement d'où provient le problème. Epuisement du buffer GPU ? Atteinte du plafond de ressources ? Quelque chose d'autre ? Difficile à dire.

Langel voudrait pouvoir connaitre l'utilisation de la mémoire pour la pile, les objets, la mémoire tampon du GPU, et pouvoir avoir des informations sur les cycles de GC, FPS, et des autres ressources limitées.

Selon Langel, un autre problème avec HTML5 est la performance du scroll, souvent réalisé en Javascript car “les autres possibilités ne sont pas assez rapides”; il note :

Fréquence des frames irregulière, lag du thread UI (saccades). Epuisement du tampon GPU à cause de la taille des contenus et de la quantité d'images. Comportement du scroll natif variable d'un système à l'autre. Les implémentations Javascript ciblent généralement un OS et donnent un ressenti bizarre sur les autres (vallée dérangeante). Problème de performances avec les évènements tactiles sur les terminaux Android (latences, pas assez d'évènements) rendant les implémentations du scroll Javascript plus fragiles.

D'autres problèmes mentionnés par Langel étaient : le GPU, qui est une boite noire, un meilleur support pour le tactile continu sur Android, des animations plus fluides, et une meilleure gestion du cache. Certains de ces problèmes ont déjà été soumis au W3C Web Performance WG.

Dans un commentaire pour infoQ, Nat Friedman, le CEO de Xamarin, créateur d'outils de build cross-platform d'applications natives, a félicité la décision de Facebook: “Ce passage vers l'acceptation de l'exprience native est une bonne chose pour l'ensemble de l'écosystème mobile - les fabricants de terminaux, les éditeurs d'applications et surtout les consommateurs.” Il a également fait remarquer qu'il était trop tôt pour que des standards mobiles émergent :

L'innovation mobile progresse toujours à la vitesse de l'éclair, dépassant de loin la vitesse qu'une "norme" ne pourra jamais atteindre.  Historiquement, lorsqu'un OS arrive sur le marché, ses capacités sont si nouvelles que la seule possibilité pour les exploiter est de le faire au niveau de l'OS.  Les meilleures applications et les innovations les plus révolutionnaires à ce stade se passent très près de l'OS.  Cette dynamique est particulièrement vraie dans le monde mobile.  La course aux parts de marché est le moteur d'une énorme quantité de changements et d'innovtions au niveau du système d'exploitation.  Dans les quelques années à venir, ces systèmes d'exploitations vont se stabiliser et l'innovation ralentira à ce niveau, ce qui rendra l'émergence de standards plus facile.  Mais cela prendra plusieurs années.

Brendan Eich, le CTO de Mozilla, une organisation qui parie sur les technologies web, a une analyse différente de l'échec de Facebook avec HTML5, selon ZDNet:

Si vous lisez entre les lignes, ce qu'il [Mark Zuckerberg] semble avoir dit est qu'ils ont essayé de créer un hybride entre du natif et du HTML, et qu'en faisant cela, il y a toujours une couture entre les systèmes. Un de mes amis, Joe Hewitt, était chez Facebook et il a participé à la première application hybride qui fut une très belle intégration. Mais il est depuis parti et les compétences requises pour préserver cette jonction entre les systèmes — et probablement une partie du support apporté par Apple — n'ont pas été présents dans les versions suivantes.

Eich est convaincu que le web finira par gagner:

Je ne pense pas que le web puisse perdre. C'est juste une question de pragmatisme et de tendance que vous avez avec ce genre de choses. … Des sociétés comme Facebook ont les moyens de s'offrir une [application] native, particulièrement sur iOS. Mais sur le long terme, les développeurs choisiront et seront satisfaits par le web. Si le web peut évolué pour inclure les API manquantes et améliorer ses performances, [les développeurs] n'auront pas besoin d'aller chercher au delà.… J'ai le sentiment que le web va être sacrément bon [d'ici 10 ans], et qu'on aura plus cette tension entre natif et web autour de laquelle on débat perpétuellement ces temps-ci.

Matt Asay, un éditeur pour The Register, cite un responsable ingéniérie anonyme de Facebook sur la controverse natif vs HTML5:

Actuellement, Facebook va plus vite en écrivant du code natif. Ca ne veut pas dire qu'HTML5 ne sera pas à la hauteur un jour, mais qu'à ce jour la loi de Moore et les moteurs web ont encore du chemin à faire. Donc nous avons fait un choix pragmatique. Et si finalemenet HTML5 nous permet d'aller plus vite, vous pouvez vous attendre à nous voir y revenir. Nous allons utiliser la stack technique qui nous donne un travail de qualité accompagné d'une vitesse rapide de production.

Mark Zuckerberg pense aussi qu'HTML5 est prometteur sur le long terme:

Et ce n'est pas qu'HTML5 est mauvais. Je suis d'ailleurs, sur le long terme, vraiment enthousiate. Une des choses intéressantes est d'ailleurs que nous avons plus de personnes par jour qui utilisent la version web sur mobile de Facebook que d'utilisateurs sur les applications iOS et Android cumulées. Donc le web mobile reste un sujet important pour nous.

Facebook a publié une application native iOS en août et ils travaillent sur une version similaire pour Andoird qui devrait sortir sur le Google Play store d'ici peu.

Evaluer cet article

Pertinence
Style

Contenu Éducatif

BT