La société Sencha, qui est à l'origine du framework Sencha Touch pour développer des applications mobiles en HTML5 et JavaScript, commente les mythes sur les mauvaises performances des applications web mobiles. Sencha détaille en particulier les points suivants :
- Les performances JavaScript sont le problème majeur des applications web mobiles
- Les améliorations des performances JavaScript sont uniquement dues aux améliorations matérielles
- Les améliorations matérielles à venir n'auront plus d'effet sur la vitesse des applications web
- Le ramasse-miette (garbage collector) JavaScript tue les performances
- Les navigateurs mobiles ont atteint leurs limites en ce qui concerne l'optimisation
Pour faire mentir ces croyances, Sencha propose différents benchmarks réunis au cours de ces dernières années. Ils ont été réalisés sur plusieurs versions d'Android et d'iOS et pour un large éventail de générations de matériel.
Sencha n'a jamais été réellement limité par le JavaScript durant le développement de Sencha Touch. Bien que les terminaux mobiles soient vraiment plus lents que les ordinateurs, les performances JavaScript ne sont pas un problème majeur des applications mobiles puisqu'elles ne font normalement pas de calculs consommateurs.
Ceci dit, l'évolution des benchmarks au fil du temps montre que les performances JavaScript se sont clairement améliorées. Différentes mesures prises avec SunSpider sur un même matériel mais pour des versions différentes d'OS montrent que les montées de version (iOS 3 à 6) apportent une réelle amélioration des performances qui peut atteindre un facteur 4 pour le cas décrit ici. Cette tendance n'est d'ailleurs pas limitée à iOS mais touche aussi les terminaux Android. Des mesures pour une même version de système mais pour de nouvelles générations de matériel montrent également des améliorations grâce aux avancées technologiques du matériel.
Au-delà de la simple analyse de benchmarks, Sencha apporte aussi un aperçu intéressant sur les performances du DOM, des SVG et autres éléments graphiques, qui sont selon eux plus importants pour les performances des applications mobiles que le JavaScript lui-même.
Les mesures sur la manipulation et les traversées du DOM affichent la même tendance que celle du Javascrpt : les améliorations sont visibles aussi bien grâce au matériel que grâce au logiciel. L'amélioration du matériel, principalement l'accélération graphique, est d'ailleurs à l'origine d'une bonne part du gain de performance en ce qui concerne les images et les SVG.
Étant donné que Windows RT dépasse même les performances des ordinateurs grâce à l'accélération GPU, on devrait pouvoir trouver le même potentiel pour les plateformes Android et iOS car les développeurs de navigateurs déportent de plus en plus de traitement sur le GPU.
Sencha considère aussi que la nature dynamique du JavaScript et le coût du ramasse-miette sont des problèmes généraux. Le framework Sencha gère cela en introduisant une couche supplémentaire au-dessus du navigateur qui s'occupe de la création et la destruction d'objets. Selon eux, sans cette couche, on peut rencontrer des problèmes de performances.
Puisque les navigateurs des différents OS sont meilleurs que leur voisin dans tel ou tel domaine comme le JavaScript, le DOM ou les images, il n'y a aucune raison de croire que les optimisations des navigateurs ont atteint leurs limites. Clairement, tous les navigateurs ont encore une marge considérable de progression possible en termes de vitesse, ce qui entrainera aussi de meilleures performances pour le mobile.