La vraie victoire de Chrome

Tour de magie

La guerre des navigateurs a connu trois périodes.

Rappel des batailles précédentes

La première bataille laisse Microsoft sans véritable concurrent et le Web, au point mort

Comme vous le savez, Microsoft avait décidé de se reposer sur ses lauriers après avoir remporté la première bataille des navigateurs contre Nestcape. Microsoft avait, en effet, abusivement utilisé sa position dominante sur le marché des systèmes d'exploitation pour l'étendre sur le marché des navigateurs en intégrant Internet Explorer à Windows. Ayant étouffé toute concurrence, Microsoft décida de dissoudre l'équipe de développement d'Internet Explorer après le lancement de la version 6 en 2001, de sorte qu'Internet Explorer ne connut aucune mise à jour pendant cinq ans. Jusqu'à ce que la venue d'un petit nouveau, Firefox, développé par une association à but non lucratif (Mozilla), commence à inquiéter le géant de Redmond.

La deuxième bataille relance la concurrence et le Web

Le succès de Firefox a permis de redynamiser le marché des navigateurs en réintroduisant une saine concurrence, et ainsi de relancer le Web. Les parts de marché gagnées par le navigateur de Mozilla obligèrent les développeurs Web à arrêter de développer exclusivement pour Internet Explorer 6 et à respecter les standards du Web tels que définis par le W3C et promus par Firefox. Ce qui permit l'émergence d'une nouvelle concurrence à côté de Firefox (Safari, Chrome...) et certainement de conforter Opera. Ce fut la deuxième bataille et, contrairement à la première, le Web sortit grandi de celle-ci : un consensus se forma entre les acteurs pour développer des standards communs tandis que la concurrence profitait à l’utilisateur.

La sortie de Google Chrome, il y a trois ans, allait cependant déclencher la troisième bataille et rebattre les cartes.

La troisième bataille : la performance comme unique credo

Le terrain choisi par Google pour mener celle-ci allait être la rapidité : Google établissait alors un record de performance avec son moteur JavaScript, sobrement intitulé V8.

Petit rappel : le code JavaScript est aujourd’hui massivement utilisé dans les sites proposant des applications en ligne (Google Gmail, NetVibes, Facebook, etc.). Problème : le langage Javascript (comme les langages Java ou Python) est un langage interprété, ce qui s'avère plus lent à l'exécution que les langages compilés. Les ingénieurs ont alors eu l'idée de compiler le code au fur et à mesure de son exécution pour accroitre les performances (le code source est traduit en langage machine à la volée).

Sous la pression Google Chrome et de son moteur JavaScript diablement efficace, les moteurs JavaScript concurrents allaient connaître de nombreuses améliorations.

C'est ainsi que SpiderMonkey, le moteur JavaScript de Firefox, a intégré successivement deux compilateurs à la volée : TraceMonkey (depuis la version 3.5 de Firefox) et JägerMonkey (depuis la version 4).

Ces deux compilateurs sont conçus pour agir alternativement :

  • TraceMonkey va repérer les calculs complexes et répétés et enregistrer le résultat pour réutilisation ultérieure, d'où un gain de temps maximum dans les cas où il peut être utilisé.
  • Dans les autres cas, c'est JägerMonkey, un compilateur à la volée basique et efficace, qui sera utilisé.

Alors que les écarts entre les différents moteurs JavaScript se resserraient enfin, Google annonçait fin décembre 2010 une nouvelle itération de son moteur JavaScript V8 nommée Crankshaft. Si celui-ci reprend certaines des avancées introduites par TraceMonkey, il place la barre encore plus haut et impose un nouveau record de performance.

Heureusement Mozilla ne reste pas les bras croisés : Firefox 9 verra une hausse sensible des performances JavaScript suite à une optimisation importante de JägerMonkey, et, plus tard, un troisième compilateur à la volée sera intégré (IonMonkey) qui devrait contribuer à stabiliser l'infrastructure de SpiderMonkey de par sa conception suffisamment propre et flexible pour permettre de nombreuses optimisations/expérimentations futures. Des développeurs ont été engagés à plein temps pour travailler sur ce projet (pour en apprendre plus à ce sujet, lire le blogue de David Mandelin).

Et si Google avait déjà remporté la partie ?

Toute cette énergie dépensée sur les performances du moteur JavaScript...

Et si c'était ça, la vraie victoire de Chrome, au final : obliger Mozilla à se concentrer sur la performance pour détourner ses ressources de son ambition de rendre à l'utilisateur le contrôle de ses informations personnelles ? Ce qui, au final, serait la seule menace pour Google dont le business ne dépend pas directement des parts de marché de Chrome, mais de l'exploitation qu'il peut faire des donnés personnelles des internautes, que ceux-ci utilisent ses services ou non... (même chose pour Facebook).

Vus : 1881
Publié par antistress : 174