La vraie victoire de Chrome

Rédigé par antistress le 04 septembre 2011 - 16 commentaires

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 de 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).

16 commentaires

#1  - yoko a dit :

C'est une sacrée théorie du complot.

Mozilla ne semble pas tant délaisser que ça le contrôle des données par les utilisateurs avec par exemple l'arrivée de about:permissions.

Répondre
#2  - Prometee a dit :

Une petit erreur s'est glissée dans l'article :

"Problème : le langage Javascript (comme les langages Java ou Python) est un langage interprété"

Java n'est pas un langage interprété.

Répondre
#3  - Paul Rouget a dit :

Les gens qui bossent sur le moteur JS et les gens qui bossent sur les aspects de vie privée sont des personnes différentes.

On embauche aussi des gens a plein temps pour les problématiques de sécu et de vie privée.

Et quoi qu'il se passe, il faut accélérer le moteur JS parce que:
1) les sites web deviennent plus complexes
2) JS peut "consommer" des nouveaux types de données (scene graph pour la 3d, pixels pour canvas, typed array pour File API)
3) Firefox doit tourner sur des plateformes moins puissantes (mobile et tablettes)

Répondre
#4  - Evildead a dit :

La victoire de Google, c'est que les navigateurs font de mieux en mieux tourner les applications Google. Ça lui permet aussi de proposer des applications plus riches et plus complexes, ce qui n'est pas possible si les performances ne sont pas à la hauteur (certains sites sont méconnaissables entre FF3 et FF6).

Tout ça ne serait pas arrivé sans que Google vienne titiller les autres navigateurs sur ce créneau...

Répondre
#5  - antistress a dit :

@ Paul Rouget : cool, un « officiel » ;-)
Ça ne me plait pas de lire "sécurité" et "vie privée" dans la même catégorie car ce sont deux choses différentes : les progrès sur la sécurité ne sont pas forcément des progrès sur la vie privée et vice versa. C'est comme "Ministre de la Culture et de la Communication" : il y a toujours un parent pauvre dans le binôme. J'aimerais savoir combien travaillent sur la question essentielle de la vie privée : l'information est-elle publique ?

J'ai déjà lu l'argument "ce ne sont pas les mêmes qui bossent sur la performance et la vie privée". Il ne me convainc qu'à moitié : Mozilla a des ressources limitées (n'est pas Google/Apple/Microsoft qui veut) et les embauches qui se font d'un côté du développement ne se feront peut-être pas de l'autre côté.

Certes quoi qu'il se passe il faut accélérer le moteur JS, mais il faut ajouter que, quoi qu'il se passe, il faut tout autant (si ce n'est plus) régler le problème de protection de sa vie privée : cette fuite permanente et silencieuse de nos données pendant une session de surf (via les cookies tiers et autres) est un vrai problème. J'ai l'impression, à la lecture des blogs de moziliens, que cette question est passée au second voire troisième plan (après les performances et le design)

@ yoko : oui, vivement que ce soit intégré dans l'interface (Bug 588689 ?)

@ Prometee : je ne connais pas assez la matière pour saisir toutes les nuances. Wikipédia parle, pour Java comme pour Python, de langages semi-interprétés. Certainement du fait que la machine virtuelle est indispensable pour eux, alors que ce n'est qu'une optimisation de performance pour JavaScript ?

@ Evildead : oui, c'est la raison officielle, ou en tout cas celle couramment avancée. Mais peut être que Google ne dirait pas non à une jolie cerise sur le gâteau ?

Répondre
#6  - Lorfagil a dit :

Mozilla annonce de gros améliorations dans les prochaines versions de firefox. En particulier en gérant mieux la mémoire dès la version 7. On peut le tester dans les versions aurora.

Répondre
#7  - Denis a dit :

Je ne sais si Google a gagné la bataille. Je ne crois pas, en tout cas, qu'au final, il n'en restera qu'un ! ;+)

Mais, une choses est sûre. Microsoft Internet Explorer a été délogé de sa situation de position dominante. Alors, ce qui s'est passé pour Microsoft, peut aussi se produire pour Google.

Sur le fond, la question que vous posez me semble pertinente. Pour autant, Javascript est une technologie qui peut être remplacé par une autre. Cela fait tout de même plus de 15 ans qu'elle est là.

Répondre
#8  - Cronycs a dit :

@antistress : En simplifiant:
Le Java est tout d'abord compilé en bytecode (c'est à dire que lorsque j'ai fini mon code, je dois le compiler), qui est un code interprété par la machine virtuelle. Le python est compilé et interprété en bytecode à la volée par la machine virtuelle. Le Javascript est interprété par le navigateur Web.

Répondre
#9  - Paul Rouget a dit :

@antistress:
> cool, un « officiel » ;-)

Fallait pas jaser sur geckozone ;)

> Ça ne me plait pas de lire "sécurité" et "vie privée" dans la même catégorie

ça reste lié.

> J'ai déjà lu l'argument "ce ne sont pas les mêmes qui bossent sur la performance et la vie privée". Il ne me convainc qu'à moitié : Mozilla a des ressources limitées (n'est pas Google/Apple/Microsoft qui veut) et les embauches qui se font d'un côté du développement ne se feront peut-être pas de l'autre côté.

En général, ce qui limite l'embauche, c'est pas l'argent, c'est le petit nombres de gens qualifiés. Trouve nous un expert en vie-privé qui parle anglais, qui a un bon niveau technique et qui est ok pour bosser pour Mozilla, et on l'embauche :)

> Certes quoi qu'il se passe il faut accélérer le moteur JS, mais il faut ajouter que, quoi qu'il se passe, il faut tout autant (si ce n'est plus) régler le problème de protection de sa vie privée : cette fuite permanente et silencieuse de nos données pendant une session de surf (via les cookies tiers et autres) est un vrai problème. J'ai l'impression, à la lecture des blogs de moziliens, que cette question est passée au second voire troisième plan (après les performances et le design)

Je ne connais pas assez bien le probleme. J'aimerai savoir ce que nos ingénieurs en pensent. Je pense que si le probleme était aussi "évident", ce serait régler. Mais je sent que c'est plus compliqué que ça. Tu as un bug ouvert quelque part? Ou une discussion sur un ML?

Répondre
#10  - antistress a dit :

@ Paul Rouget : ben l'article de Jenny Boriss, cité en fin d'article et traduit sur Framablog, est un point de départ il me semble

>> Ça ne me plait pas de lire "sécurité" et "vie privée" dans la même catégorie
> ça reste lié.
Tous les logiciels ont des problèmes de sécurité. Le fait est que, dans le cas d'un navigateur, il y a des problèmes très spécifiques liés à la vie privée qui mériteraient une équipe dédiée à mon avis. C'est pour ce genre de choses que je compte sur Mozilla, ça m'est égal de ne pas avoir le n°1 en performances JavaScript personnellement, sinon j'utiliserais Chrome ou un autre.

Répondre
#11  - Djiock a dit :

Très bon article

Effectivement il faut reconnaître tous les apports concurrentiels dans le domaine des navigateurs, et il est certain que le très bon Chromium (voire webkit en général) tire Firefox vers le haut. Au final on a le choix et c'est une bonne chose.

Répondre
#12  - etenil a dit :

Je trouve que l'influence des affiches en 4m par 3m dans la rue avec un gros Google dessus et les gros boutons "installer chrome" sur Google jouent beaucoup, voire énormément dans la balance.

La plupart des utilisateurs se fichent du nom de leur navigateur. Tout ce qu'ils savent c'est que IE est naze, surtout que IE9 n'est pas dispo pour XP, donc ils installent ce qu'on leur propose. La pub aide.

Répondre
#13  - gilles klein a dit :

Je ne comprend pas la conclusion. En quoi améliorer les performances va à l'encontre de la politique de firefox sur les données personnelles ???

Répondre
#14  - Korly a dit :

La première guerre qu'à lancer Chrome était sur la vitesse, mais la nouvelle qui risque de se profiler est certainement celle des apps.

Pour le moment IE reste loin derrière ses concurrents .

Répondre
#15  - antistress a dit :

@ Korly : ça pourrait changer : "Windows 8 inaugurera vraisemblablement une nouvelle version
d'Internet Explorer. Cet IE10 pourrait embarquer un nouveau moteur de rendu tirant un trait sur l'héritage Trident" http://www.clubic.com/salon-informatique-tic/windows-build/actu/windows_8_qu_attendre_de_la_conference_microsoft_build-446048.html

Répondre
#16  - kiddo a dit :

Franchement, je trouve la paranoïa poussée un peu loin sur ce coup là!

Répondre

Fil RSS des commentaires de cet article

Écrire un commentaire

NB : en publiant votre commentaire, vous acceptez qu'il soit placé sous la licence CC BY-SA comme indiqué aux conditions d'utilisation du site

Quelle est le septième caractère du mot g8bfjrek ?