Grenouille, Par Lawrence Whittemore, Sous licence CC-BY-ND

Grenouille, par Lawrence Whittemore, utilisée sous licence CC-BY-ND

Imaginez une course de grenouilles organisée par des enfants un beau week-end de printemps… Elles progressent par bonds successifs. Un coup celle de gauche est en avance, un coup celle de droite, et puis celle du milieu, qui n'a pas encore bondi, rattrape tout le monde d'un coup alors qu'elle semblait très en retard.

C'est exactement ce qui est en train de se passer actuellement sur le marché des navigateurs. On a d'un côté Microsoft qui fait des bonds rares et pas toujours grands (ce qui fait qu'ils sont très en retard), on a Firefox qui fait des bonds plus fréquents, et puis on a un petit nouveau — Chrome — qui "challenge" le challenger Firefox. Ça redonne son intérêt à une "compétition" qui semblait bien gagnée par Firefox.

On notera qu'il y a des limites à la métaphore de la course de grenouilles, en particulier parce que la compétition des navigateurs est multi-dimensionnelle (performances JavaScript, ergonomie, rapidité de lancement, de chargement de pages, fonctionnalités, innovation de l'interface, innovation dans le domaine des standards, stabilité, sécurité, etc.). Mais l'idée générale persiste : chaque nouvelle version majeure d'un navigateur peut changer la donne en rattrapant les autres dans un domaine particulier.

Quel sont les prochains bonds pour la grenouille Firefox ? Stabilité et performance !

Firefox va franchir deux étapes dans les mois à venir.

D'abord, la version 3.6.4 qui va se focaliser sur la stabilité. Cette version semblera identique à la 3.6, sauf qu'elle exécutera les plug-ins[1] (comme Flash, QuickTime, Java & co) dans un processus séparé[2]. Aucun changement dans l'interface utilisateur, mais un progrès de taille en termes de stabilité (et accessoirement en terme de performance), car une proportion très significative des plantages apparents de Firefox sont en fait dus aux plug-ins[3], qui crashent et entraînent Firefox dans leur chute. Même si Firefox n'est pas responsable, l'utilisateur a l'impression que c'est Firefox qui plante… Avec la 3.6.4, les plantages des plug-ins n'entraîneront plus celui de Firefox ! On devrait voir arriver la version 3.6.4 courant juin 2010, c'est à dire très bientôt.

Ensuite, le gros morceau, Firefox 4, dont mon collègue Mike Beltzner, Director of Firefox présentait récemment : Firefox 4: fast, powerful, and empowering. J'ai mis les diapos de sa présentation en ligne, au format PDF (2,6Mo).

En gros, ce qu'on attend pour Firefox 4, c'est :

  • Beaucoup plus rapide
  • Plus puissant (au niveau des applications Web)
  • Donnant à l'utilisateur plus de contrôle (de ses données, de son usage du Web).

Comment va-t-on s'y prendre en terme de vitesse ? (Ceux qui ont des migraines en lisant des choses techniques peuvent sauter directement à la conclusion[4]…)

Les efforts portent sur plusieurs fronts :

  1. Nouveau parser HTML 5. Un parser vraiment écrit pour HTML 5. Je pense qu'on sera les premiers à disposer d'un tel parseur. Ce parseur sera dans un thread séparé pour avoir plus de réactivité de l'interface utilisateur.
  2. Nouvelle génération de moteur JavaScript, JaegerMonkey, qui sera la combinaison du "Method-based tracing" de Webkit et du "JIT-tracing" de TraceMonkey. Pour faire bonne mesure, nous allons améliorer le Garbage Collector.
  3. Utilisation du GPU pour l'affichage de la vidéo, les dessins, la typographie, etc. Ces ressources matérielles sont pour l'instant très largement sous-utilisées, et ça va changer avec Firefox 4.
  4. Une des principales causes de ralentissement de Firefox est lié à l'utilisation trop fréquente du disque dur. Comme les processeurs font de gros progrès, bien plus que les disques (surtout sur les ordinateurs portables), ça devient particulièrement sensible. Nous nous sommes donc attachés à cela, et nous devrions voir les accès disques réduits de 50% pour le thread principal avec Firefox 4.
  5. D'autres optimisations sont en cours, dont l'accélération du DOM et la réduction du temps de démarrage.

Voici donc comment Mozilla compte s'y prendre (ou plutôt, comment Mozilla est déjà au travail) pour deux aspects importants que sont la stabilité et la performance. Dans des billets à venir (mais pas tout de suite), je parlerai des progrès ergonomiques réalisés pour les utilisateurs, des nouvelles fonctionnalités ainsi que les changements concernant les développeurs Web (nouveaux standards et outils de développements). En attendant, n'hésitez pas à tester des pré-versions (Alpha et Bêta) :

Mise à jour : Firefox 4 sera bien plus qu'un Firefox plus rapide. La présentation de Mike Beltzner le démontre très bien. On aura l'occasion d'en reparler d'ici la sortie de la version 4. En attendant, je voulais parler des progrès déjà réalisés par Firefox dans deux domaines que sont la stabilité et les performances. Coté performances, il y a un sujet que j'ai trop rapidement abordé, c'est celui du démarrage de Firefox. J'encourage les anglophones à lire les rapports de mon collègue Dietrich Ayala sur ce sujet.

Notes

[1] à ne pas confondre avec les extensions !

[2] Mais seulement pour les version Linux et Windows pour l'instant. Le portage sur Mac reste à venir.

[3] C'est d'autant plus rageant que le code des plug-ins est presque toujours propriétaire, donc nous ne pouvons pas corriger leurs problèmes de fiabilité, et cela entache la réputation de Firefox…

[4] Bon, pour ceux qui ne comprennent rien à la technique, je résume : on se demandait si Firefox était un panda roux ou un renard de feu, et voilà qu'on apprend que c'est une grenouille ! ;-)