Mark Zuckerberg, fondateur bien connu de Facebook, s’est exprimé récemment au sujet de la puissance montante des smartphones. Il est intervenu en particulier sur la dernière révision de l’application Facebook pour iOS, en affirmant que le HTML5 était une erreur et que la mouture Android bénéficierait du même traitement.
« Nous avons gâché deux ans »
Une erreur : c’est ainsi que Zuckerberg a qualifié l’emploi du HTML5 pour créer les applications mobiles de Facebook. Et pourtant, c’est ce même HTML5 qui a permis de créer rapidement plusieurs moutures puisque le code composant le cœur de l’application ne changeait que très peu.
Mais pourquoi une telle différence entre le HTML5 et le natif ? Le HTML5 est un langage interprété. Cela signifie qu’avant que les opérations soient passées à la moulinette du processeur, le langage est d’abord traduit dans une forme exploitable. Dans le cas du HTML5, c’est le moteur de rendu qui se charge de sa lecture puis de son interprétation. Dans le cas du natif, cette étape est supprimée : le code est directement exécuté et la différence de performances est visible. On se rappelle d’ailleurs que Mozilla avait fini par abandonner son langage XUL pour Firefox sur Android, à cause là encore d’un souci de performances.
Conséquence à venir : l’abandon progressif du HTML5 pour l’ensemble des applications Facebook. Le fondateur de la firme l’a clairement indiqué : « La plus grande erreur que nous ayons faite en tant que société a été de trop parier sur le HTML5 en lieu et place du natif. Nous avons gâché deux ans » avant d’enchainer sur une confirmation : « c’est pourquoi nous avons décidé de passer au natif pour Android et iOS il y a deux mois ».
Attention toutefois à ne pas généraliser : les critiques de Zuckerberg concernent uniquement les applications. Les versions web du site, en particulier mobiles, continueront à utiliser le HTML5 qui garde toute la confiance de l'entreprise.
La version Android bénéficiera du même traitement
Ici, il est important de signaler que cela fait maintenant plusieurs mois que les employés de Facebook sont plus qu’encouragés à migrer leurs smartphones vers des modèles Android. La raison est simple : la direction de l’entreprise a jugé l’application tellement mauvaise sur cette plateforme que le seul moyen efficace d’obtenir des retours concrets est de forcer ses propres employés à goûter leur création quotidiennement.
Comme nous l’indiquions dans une précédente actualité, Facebook ne compte donc pas lancer un smartphone maison mais souhaite exploiter au mieux les plateformes existantes. Cela signifie évidemment davantage de travail pour les développeurs : dans la plupart des cas, le code ne pourra tout simplement pas être réutilisé. Ainsi, sous iOS, l’application est rédigée en Objective-C alors que sous Android, il s’agira de C++.
Les utilisateurs de smartphones Android pourront se rassurer : le même traitement arrive pour leur plateforme, avec des performances bien meilleurs à la clé. Cela étant, Zuckerberg n’a donné aucune indication sur la sortie de cette nouvelle version. En outre, pas d’informations non plus sur les autres plateformes telles que Windows Phone. Toutefois, les mois à venir pourraient être riches en annonces et sorties, Zuckerberg ayant indiqué que « la première moitié de l’année a été un peu lente en produits, mais pour les six prochains mois je m’attends à de nombreuses choses très sympas ».
Commentaires (69)
#1
sérieux ils en ont mis du temps…
Pour avoir dev en natif et en HTML5 (PhoneGap) pour mobile… la différence de perf est vriament flagrante
#2
Le problème n’est vraiment pas le HTML5, les performances des navigateurs et les performances des mobiles qui suffisent largement aux fonctionnalités offertes par l’application facebook.
Le problème c’est la manière dont ils ont conçu leur application et les problématiques liées au webview…
#3
La plus grande erreur que nous ayons faite en tant que société a été de trop parier sur le HTML5
La plus grande ? tu es bien sûr ? non parce que moi je dirais peut être la deuxième plus grande, au mieux " />" />
#4
#5
J’aimerais plus de précision s’il vous plait. Je me dirige droit vers le développement javascript pour activement contribuer au Mozilla OS (applications et portage). Est-ce que Mozilla aurait parié sur le mauvais filon ?
De plus, quel est le rapport entre l’HTML5 et la bourse ?
#6
ça me surprend toujours de voir que malgré la puissance dont disposent nos appareils actuels, une appli web “rame” autant, en tout cas qu’il y ait autant de différences avec une appli en langage natif. J’ai bien compris ce qu’était un langage interprété, mais ça ne reste après tout “que” du web.
#7
Donc l’époque du “HTML5 permettra de se passer de devoir coder une appli par plateforme” est révolue?
#8
Cela signifie évidemment davantage de travail pour les développeurs : dans la plupart des cas, le code ne pourra tout simplement pas être réutilisé. Ainsi, sous iOS, l’application est rédigée en Objective-C alors que sous Android, il s’agira de C++.
Faudrait arrêter de citer C++ à tout-va quand on parle juste de code natif. Sous Android le natif c’est du java et la version android de firefox est bien codée en java ->https://wiki.mozilla.org/Fennec/NativeUI/CodingStyle et pas en c++ comme indiqué dans la news précédente.
Je sais que l’auteur n’aime pas trop Java mais ça ne doit pas empêcher d’être précis pointu carré " />
#9
#10
#11
#12
#13
#14
#15
Ce qui m’étonne c’est qu’une boite ayant les ressources de facebook n’ai pas plusieurs équipes travaillant sur des approches différentes de leurs softs. Précisons que l’app facebook ne relève pas du grand art de la programmation et que perdre deux ans là dessus est représentatif de l’incompétence de certaines personnes responsables du développement et par extension de l’équipe dirigeante de cette société.
#16
#17
#18
#19
#20
#21
#22
#23
#24
#25
#26
#27
#28
#29
#30
Natif a plusieurs sens, mais là, on parle de code natif, pas d’application native, c’est pourtant simple de ne pas se tromper " />
#31
#32
#33
#34
#35
#36
#37
#38
#39
#40
#41
outre le débat sur le fait que java soit natif ou pas natif (par définition il ne l’est pas), ça me surprendrait qu’ils codent facebook en NDK, vu les emmerdes que c’est…
Les perfs sous java sont suffisantes pour ne pas avoir a faire des allez retour dans du JNI, pour le plaisir de dire “ on a codé en natif” ..
je ne parle bien sur pas des applications CPU intensives comme les lecteurs videos, ou les jeux, qui ont besoin du NDK, mais facebook, faut pas charier…
#42
#43
#44
Attention toutefois à ne pas généraliser : les critiques de Zuckerberg concernent uniquement les applications. Les versions web du site, en particulier mobiles, continueront à utiliser le HTML5 qui garde toute la confiance de l’entreprise.
Un truc que je comprend pas trop, Facebook a une version web (en HTML5) et une “application” (en HTML5 ?!), les deux accessibles sur mobile ? C’est pas un peu redondant ? (et je comprend pas trop la notion d’application en HTML5 non plus).
#45
#46
#47
#48
#49
#50
#51
#52
#53
#54
#55
Ils ont juste voulu aller trop vite. L’HTML5, c’est bien mais pas mature.
Comment comparer une technologie même pas standardisée avec des langages ultra éprouvés comme JAVA ou C ?
C’est tout faut encore attendre quelques années. On va voir déjà ce que fait Mozilla avec son Firefox OS.
Toujours est-il que l’HTML5 est suffisant pour de petites applis.
#56
#57
#58
Le HTML5 est un langage interprété (…) Dans le cas du natif, cette étape est supprimée : le code est directement exécuté et la différence de performances est visible.
Les problèmes de performances du HTML5 ne sont pas dus au fait que le langage soit interprété, il existe des tas de techniques pour exécuter du code dans une VM à un niveau de performance proche du natif. Il y a une vie en dehors du C/C++.
#59
#60
#61
#62
#63
#64
#65
Je suis curieux de savoir ce qui leur a posé le plus problème, ainsi que les obstacles qu’ils n’ont pas pu surmonter…
#66
Le HTML5 n’est (pour moi) qu’un langage de balises, son traitement est rapide sur n’importe quel moteur de rendu récent sur n’importe quel support (desktop/mobile).
Là où ça pêche vraiment au niveau des performances, c’est sur les traitements du DOM JavaScript.
C’est bien beau d’avoir des raccourcis d’écriture avec de belles librairies comme jQuery et autres qui provoquent des traitements massifs sur le DOM, mais sur un appareil mobile c’est beaucoup moins fun en terme de réactivité (sans même parler du temps de téléchargement de la librairie sur un réseau mobile).
Le plus consternant est d’utiliser du Javascript pour faire des animations qui sont faisables à 100% en CSS, et qui passe beaucoup mieux sur du mobile.
Enfin bref, accuser HTML5 c’est se tromper de cible.
#67
#68
#69