Et si tous les navigateurs utilisaient le même moteur

Ajourd’hui, lorsque vous naviguez sur internet, vous ne vous en rendez peut être pas compte mais ce que vous voyez dans votre écran sur chaque site est un compromis entre ce qu’il est possible de faire actuellement et les contraintes imposées par certains navigateurs.

Et oui, même, si vous ne cessez d’entendre parler d’HTML5, de css3, de 3D dans votre navigateur… toutes ces technologies nécessite que votre navigateur les implémente.
Et c’est là que le bas blesse: chaque navigateur et plus exactement, chaque version de navigateur implémente d’une part les technologies actuellement définis et référencées, et de l’autre part certaines technologies* en cours de finalisation.

Quand je parle ici de technologie, je fais un raccourci, ce sont les spécifications qui sont actées ou en cours de finalisation, après, tout le travail se fait dans le developpement et l’évolution des moteurs de rendu des navigateurs.

Il existe actuellement 4 moteurs de rendu majeurs:

  • Webkit (open-source) utilisé par safari et chrome/chromium
  • Gecko utilisé par firefox
  • Trident utilisé par internet explorer
  • Presto utilisé jusqu’il y a peu par Opera

Opera a décidé en février dernier d’abandonner son propre moteur rendu au profit de webkit, justement c’est l’objet de cet article.

Le travail autour du moteur de rendu
Comme vous aurez pu le comprendre, la partie la plus lourdre a developper est le moteur de rendu, c’est de lui que va découler votre experience de navigation, c’est son niveau d’implémentation qui vous permet de bénéficier des avancées actuelles, et c’est encore lui qui va permettre ou au contraire freiner les developeurs webs dans leur créativité ;)

Pourquoi chaque navigateur continue a développer leur propre moteur de rendu ?
Avec le coup de projecteur dont ont bénéficié l’HTML5 et le CSS3 ces derniers temps (notamment avec la chasse au flash mené par Apple), chaque navigateur a investi du temps et de l’argent pour être toujours en tête concernant l’implémentation de ces nouveaux standards, qui je le rappelle ne sont toujours pas finalisé actuellememnt (RC pour le moment).

Ce moteur de rendu est donc un atout qu’il faut préserver, un avantage à mettre en avant. Un plus que mette en avant justement les navigateurs à travers des campagnes de pub, des tests comparatifs…

Un problème en partie lié à la fragmentation de version de navigateur
Si aujourd’hui les dernières versions des navigateurs offre une implémentation quasi similaire des dernières spécifications en cours de finalisation, ce n’est pas du tout le cas sur les précédentes versions qui sont les plus utilisées :(
Qui n’a jamais entendu les critiques proférés concernant ie6… si le problème concernait uniquement ie6 je n’aurait pas écrit cet article, le nouveau vilain petit canard c’est désormais ie7/8 voir 9 pour certaines fonctionnalités.

Le problème c’est qu’autant firefox et chrome se batte quasiment quotidiennement pour sortir une nouvelle version apportant son lot d’implémentation supplémentaire, autant Microsoft tarde à sortir ses versions de navigateurs, et ceci entraîne des véritable gouffre entre chaque moteur de rendu (concernant l’implémentation (HTML5/CSS2et3…)

Pour un developpeur, il doit donc faire un compromis entre ce qu’il pourrait faire (car faisant de la veille) et ce qu’il est contraint de faire au vue du navigateur le plus restreignant de sa cible (avant c’était ie6, désormais ie7)

Quel avantage y gagnerait les editeurs de navigateurs
L’avantage est vous l’aurez compris de bénéficier des efforts d’implémentation du moteur de rendu, c’est de mutualisé les efforts de developpent dans un seul moteur.
Les navigateurs seraient toujours à la pointe de l’implémentation et ceci en investissant beaucoup moins de temps et d’argent.

Et pour les developpeurs ?
Ce serait un cadeau de noël perpetuel : développer une fois, tester sur un navigateur sans se demander si le site s’affichera correctement sur un autre navigateur ;)
Pouvoir jouer avec ses jouets plus rapidement: vous ne pouvez pas imaginez la frustration d’un developpeur web passionné qui d’un coté lit un article/tutoriel sur une nouvelle fonctionnalité, la teste sur son poste en local et se voit répondre par son manager/responsable « c’est bien joli/interessant ton truc mais est-ce que ça marche sous ie7/8 ?? »
Et oui frustrations est bien le mot, heureusement, on peut toujours implémenter ces nouvelles fonctionnalités en interne où on peut souvent imposer un navigateur récent ;)

Et pour les internautes
Ce sont eux les gros gagnants: HTML5/CSS3 permettent aujourd’hui non seulement des fonctionnalités nouvelles, mais également des gains de performances et une amélioration de la navigation.
Par exemple l’équipe de jQuery propose depuis cette année deux branches pour sa célèbre librairie: l’une suportant les anciens navigateurs comme ie6/7 et l’autre supportant à partir de ie9
Ceci donne une librairie allégée des fonctionnalitées que jQuery doit simuler pour palier au retard de certains navigateurs.

Conclusion
Si vous travaillez avec des technologies web, vous avez surement du sourire en lisant ce billet utopique, mais avouons-le cela fait du bien de rêver un peu, non ?