Nous annoncions dernièrement l’abandon de HTML5 par Facebook au détriment du développement natif pour des raisons de lenteur. Mais qu’en est-il si l’on regarde l’éco-conception ? L’adaptation aux plateformes matérielles permettent aux langages natifs d’offrir plus de performance et généralement une consommation énergétique moindre. Cependant, les technologies plus abstraites par rapport au matériel comme HTML5 permettent de développer des applications plus portables et donc qui pourront durer plus longtemps.
Analysons précisément les raisons de l’abandon (Pour le moment) de HTML5 par Facebook suite à leur post à destination du W3C.
Une des premières raison est le manque d’outil pour analyser le comportement de l’application web. Facebook explique en effet qu’il leur ait difficile de connaître les capacités du matériel. Plus particulièrement pour la mémoire, html5 (comme d’autres technologies du même genre) ne permettent pas d’identifier les limites du matériel en termes de taille mémoire, de buffer GPU… Dans ces cas, difficile d’adapter le comportement de l’application comme par exemple la limitation des images en mémoire.
Quelle analyse devons-nous faire de cette première limitation remontée par Facebook ?
Facebook propose des API pour connaître les capacités du matériel comme par exemple la remontée des données FPS (frame per second) afin d’adapter le comportement (par exemple un pattern de scrolling infini ou alors un pattern de pagination)
Un des plus gros problème de performance subit par Facebook était le scrolling. L’implémentation en JavaScript donnait de plus des performances non égales en fonction des plateformes (et donc de l’implémentation JS sur les plateformes).
Facebook lève au final le problème des GPU qui sont des boites noires pour les développeurs. Facebook ne pense pas que la gestion des GPU est plus particulièrement des fonctions d’accélération matérielle ne pourront pas être gérées à moyen terme par les navigateurs.
En conclusion, natif ou non, il n’y a pas de solution miracle en terme d’éco-conception. Les langages natifs (en tout cas pour les applications mobiles) sont pour le moment plus optimisées et prennent en compte le mieux le matériel. Encore faut-il que les développeurs ou les frameworks prennent en compte les spécificités de chaque plateformes, OS et navigateurs.
Quant aux technologies non natives comme le HTML5, il reste encore du travail pour obtenir une efficacité optimale.
Cette efficacité viendra avec l’amélioration des environnements d’exécutions comme les OS et navigateurs (par la prise en compte du matériel, l’optimisation) et/ou la fourniture d’API pour les applications donnant des informations sur le matériel pour l’optimisation.
Dans tous les cas, ces évolutions ne seront pas la (seule) solution pour obtenir des applications efficientes. En effet, l’éco-conception n’est pas une chose native dans les logiciels et les optimisations futures du HTML5 risquent que de n’être qu’un patch en attendant des plateformes toujours plus performantes.
Commentaires
Poster un nouveau commentaire