Le web change, les navigateurs aussi !

07 juin 2013

navigateurs-2012Ces dernières semaines plusieurs annonces clés se sont succédées dans l’univers des navigateurs internet. Opera migrant sur Chromium, Chromium migrant sur Blink, Mozilla s’alliant avec Samsung pour le développement de Servo et révélant FirefoxOs.

Tous ces changements ne sont pas anodins et sont révélateurs des changements profonds qu’a subît le web et les appareils servant à le consulter ces dernières années.

Un peu de contexte

Cette partie à pour but de donner les éléments nécessaires à la bonne compréhension de ces changements aux lecteurs n’étant pas forcément familier avec le web et le fonctionnement des navigateurs actuels.--6025

Un peu d’histoire du web

Dans les années 90 a eu lieu ce qu’on a tendance à appeler la première guerre des navigateurs.

A l’époque le web n’est pas réellement standardisé et était très basique : pas d’images, pas de styles css, pas de JavaScript, pas de plugins externes.

Les fabricants de navigateurs se livrent alors à une course à la fonctionnalité qui va façonner le web tel que nous le connaissons aujourd’hui. Dans la foulée, le W3C sera créé et standardisera progressivement tout ça.

Le résultat de cette bataille est la victoire sans contexte d’Internet Explorer 6 qui règnera en maître pendant de (trop) nombreuses années et surtout l’arrêt brutal de l’évolution du web.

internet_explorerCertes des concurrents continuent d’exister, Opera, Mozilla puis Firefox, Safari, etc. Mais leurs parts de marché sont alors marginales.

L’explosion des smartphones, et la montée en puissance du HTML5 qui l’accompagne, va chambouler tout ça une nouvelle fois et démarrer une deuxième bataille acharnée qui se déroule encore en ce moment.

Chrome, Firefox et les navigateurs mobiles ont mis à mal la suprématie d’Internet Explorer et ont forcé Microsoft à réagir avec le lancement de IE10.

Le point important pour la suite est que les deux axes principaux de cette nouvelle guerre sont les nouvelles fonctionnalités, standardisées ou non, mais aussi et surtout les performances.

Un écosystème qui change

Si l’on sort du monde du web quelques minutes, il est intéressant de s’attarder un peu sur un autre changement majeur dans le monde de l’informatique : le passage d’une architecture processeur principalement monocore à une architecture multicore.

Il y a quelques années les concepteurs de processeurs se sont heurtés à un mur dans la course aux Ghz et ont remplacé les processeurs contenant un seul cœur très rapide par des processeurs contenant plusieurs cœurs moins rapides et travaillant en parallèle.

cpu_diagramLe principal problème de cette approche est que la plus part des logiciels sont conçus pour ne fonctionner que sur un seul thread et ne tirent que rarement pleinement parti des nouveaux processeurs.

Le même type d’architecture multicore se retrouvant aujourd’hui également au cœur des smartphones et tablettes.

Comment marche un navigateur

Pour faire simple, un navigateur est composé :

  • D’un moteur de rendu qui sera chargé de transformer le HTML et les CSS en quelque chose de visuel affiché à l’utilisateur
  • D’un moteur JavaScript qui interprète et exécute les scripts.
  • De l’interface utilisateur qui permet de saisir l’url, gérer ses favoris, ses onglets, les plugins, etc…

Le principal problème dans tout ça est que, en général, le moteur de rendu et le moteur JavaScript sont mono-thread et donc n’utilisent qu’une faible partie de la puissance des architectures modernes que j’évoquais dans la partie précédente.

État des lieux avant les dernières annonces

Si nous nous concentrons sur les moteurs de rendu HTML, il y avait jusqu’à présent quatre acteurs majeurs :

  • Trident : le moteur qui équipe Internet Explorer et les produits Microsoft en général
  • Gecko : le moteur de la fondation Mozilla, présent sur leurs produits et notamment sur Firefox et Thunderbird
  • Presto : le moteur d’Opera, surtout utilisé sur mobile mais également sur les consoles Nintendo par exemple
  • Webkit : le moteur open source le plus répandu, il est présent dans Safari, Chrome et de nombreux navigateurs moins connus. Mais surtout, il est quasi omniprésent dans le monde mobile : Android, iOs, BlackBerry, Bada et Tizen l’utilisent

Tous périphériques confondus, les parts de marché s’étaient relativement équilibrées, tous ayant leur domaine de prédilection. Cependant ces dernières années, Webkit a nettement pris l’ascendant sur ses concurrents grâce à la montée en puissance rapide de Chrome et surtout des smartphones.

Les bouleversements

Maintenant que vous en savez plus sur le contexte qui prédominait jusqu’à ce début d’année il est temps de parler enfin des grands chamboulements qui ont lieux en ce moment.

Opera jette l’éponge

Opera-icon-low-resLa première annonce surprise a été celle d’Opera qui a décidé d’abandonner son moteur de rendu et son moteur Javascript au profit de ceux de Chromium (la base technique et open source de Chrome).

Cette annonce a surpris pour plusieurs raisons. La première est que, bien que peu connu du grand public, Opera possède de grandes qualités au niveau technique. Il a été pendant longtemps le fer de lance de la course à l’optimisation et est toujours resté un challenger de poids dans ce domaine, s’immisçant sur de nombreuses plateformes avec peu de puissance de calcul.

Le deuxième choc a été de niveau plus global, en utilisant la technologie Chromium, Opera basculait de facto une grosse partie de ses parts de marché sur Webkit, donnant à celui-ci un quasi monopole sur les périphériques autres que les ordinateurs classiques.

Or nous l’avons vu lors du règne d’IE6, un monopole peut être une catastrophe pour l’évolution du web et pour l’innovation en général. De nombreuses voix se sont ainsi levées pour exprimer leur déception et surtout leurs craintes.

Cependant cette décision est assez facile à comprendre si l’on se place du point de vue d’Opera. Malgré les qualités techniques du navigateur, ce qui à toujours fait leur force est l’innovation ergonomique.

La plus plus part des choses qui nous semblent logiques aujourd’hui sont arrivées en premier dans Opera : onglets, speed dial, barre d’url intelligente, debogueur html de qualité intégré, etc…

C’est également ce qui a fait leur force sur le mobile avant que les smartphones n’arrivent, mais également sur les consoles de jeu, tv et autres équipements connectés.

Finalement, plutôt que de dépenser une énergie considérable dans la course à la performance et à l’implémentation des spécifications du W3C, il est bien plus raisonnable, pour une entreprise aussi petite, de se concentrer sur la seule chose qui permette vraiment de se distinguer auprès de l’utilisateur final : l’ergonomie.

Google lance son propre moteur de rendu : Blink

Google-Chrome-Chromium-iconDeuxième événement marquant de ce début d’année, l’annonce par Google de l’abandon de Webkit au profit d’un nouveau moteur de rendu nommé Blink.

Ils ne sont bien évidemment pas reparti de zéro puisque Blink est un fork non compatible de Webkit. Cela signifie qu’ils sont repartis du code actuel de Webkit mais le feront évoluer de manière si drastique qu’il sera impossible de répercuter des changements de l’un vers l’autre d’ici peu.

Ce changement a été aussi soudain qu’inattendu, surtout quelques semaines après l’annonce d’Opera évoquée juste avant.

De là à penser que Opéra était au courant de ce projet, il n’y a qu’un pas. Surtout que, Blink étant open source, les ingénieurs d’Opera participeront également à son développement. Dans tous cas, prévenu ou non, opéra n’a plus d’autre choix que de suivre Google dans cette aventure vu qu’ils utilisent leur base technologique.

La question qui se pose est : pourquoi ce choix de s’éloigner de Webkit ?

La réponse est principalement technique. Webkit est basé sur KHTML, le moteur de rendu HTML utilisé par KDE et conçu en 2001. Il commence à accuser son age. D’autant plus que ce qui fait sa force est également sa principale faiblesse.

En effet, Webkit est utilisé par de très nombreux navigateurs et applications qui sont très différents et surtout dont les éditeurs ont des intérêts et des objectifs divergents.

Au fil des ans les systèmes de build se sont multipliés et complexifiés, permettant d’activer des milliers de fonctionnalités en fonction des besoin du logiciel utilisant le moteur. D’un simple moteur HTML de quelques milliers de lignes nous sommes passés à un monstre tentaculaire et titanesque.

Une des première action des équipes de Google a été de supprimer des milliers de fichiers et plusieurs millions de lignes de code qui ne leur servent à rien.

Rompre la compatibilité est ainsi un choix qui permet de prendre des mesures drastiques pour améliorer la base de code et ainsi repartir sur des bases beaucoup plus saines sans tout refaire de zéro.

Un autre point important est que la complexité de Webkit rend sa migration vers un modèle de programmation optimisée pour les processeurs multicore très compliquée. Là encore, en pouvant remettre tout ça à plat, Google prend un avantage certain au niveau des performances face à la concurrence.

Mais la technique n’est probablement pas la seule motivation de Google. Comme je l’ai déjà évoqué, Webkit est utilisé par de nombreuses entreprises et surtout par Apple. Or celui-ci est le principal concurrent de Google sur le marché des smartphones.

Google étant de loin le contributeur le plus actif à Webkit, ils ont probablement été indirectement le principal acteur du développement de safari qui n’évolue autrement que très peu que ce soit sur MacOs ou sur iOs.

En se séparant de Webkit, Google va donc forcer ses principaux concurrents à investir d’avantage dans un moteur qui aura de plus en plus de mal à suivre le rythme effréné de Google dans la course aux performances et à l’implémentation des normes HTML5.

Mozilla place ses pions avec FirefoxOs et Servo

mozilla-rustOpera et Google ne sont pas les seuls à bouger et faire la une des sites d’informatique. La fondation Mozilla n’est pas en reste et entend bien rester dans la course.

Ainsi, en début d’année ils ont présenté la première version de leur os mobile : FirefoxOs. La particularité de cet os est d’être 100% basé sur les technologies du web : HTML, CSS et Javascript.

Tout le système repose sur le navigateur Firefox qui affiche l’interface du téléphone. Ils l’ont simplement enrichie d’API permettant d’accéder plus facilement au matériel. Évidemment, fidèle à ses principes, ces apis sont en cours de standardisation au W3C ou suivent des propositions en cours.

Ils visent pour le moment principalement les marchés émergents mais il va être intéressant de voir qui prendra l’ascendant entre FirefoxOs et ChromeOs.

Pour revenir aux moteurs de rendu, Mozilla n’est là encore pas en reste avec la signature d’un accord avec Samsung pour le développement de Servo. Il s’agit d’un moteur de rendu complètement nouveau et là encore fortement orienté vers le multithread et les processeurs multicores.

Il s’agit pour le moment d’un projet expérimental loin d’être prêt à atterrir sur nos ordinateurs et smartphones mais il y a de grandes chances qu’il s’agisse à minima de la base des futurs navigateurs de la fondation.

Ils y ont investi pas mal d’argent, allant jusqu’à développer un langage nommé Rust pour son développement.

L’arrivée de Samsung sur le projet n’est pas anodine, la firme dépend beaucoup de Webkit tant pour le navigateur par défaut sur ses smartphones Android que pour la plateforme Tizen. En signant ce partenariat, ils diminuent leur dépendance aux équipes de Google sur un élément qui sera probablement la clef de voute des applications du future : le Web.

Et Microsoft dans tout ça ?

Face à toutes ces annonces et chamboulements, Microsoft reste pour le moment discret. Ils ont réussi à se remettre en piste dans le domaine du web avec le lancement d’internet explorer 10 et préparent tranquillement la version 11 de leur navigateur.

Pour le moment il est clair qu’ils ne comptent pas s’investir pleinement dans la guerre qui fait rage, préférant adopter uniquement les spécifications les plus mâtures et refusant de suivre le rythme effréné des versions de chrome.

Conclusion

En quelques mois, une des pierres angulaires du web, les moteurs de rendu, a complètement changé. Mais du fait des respects accrus des standards ces dernières années, les utilisateurs ne s’en rendront probablement jamais compte.

Les changements pour les développeurs seront également minimes, un léger ajustement des plans de tests devrait suffire pour couvrir tous les cas.

La diversité, souvent source d’innovation, est préservée. L’arrivée de Blink compensera la perte de Presto et la concurrence entre navigateur continuera de faire rage.

Il est difficile d’anticiper qui sortira gagnant de ces chamboulements, mais pour le moment Google semble avoir l’avantage. Il repart sur un nouveau moteur dont il aura probablement le contrôle et laisse ses principaux concurrents dans le domaine du mobile sur un moteur qui commence à accuser son age et qui perd au passage son principal contributeur.

Mathieu PARISOT (29 Posts)

Développeur Java et web passionné de nouvelles technologies et d’innovation, impliqué dans de nombreuses communautés et co-organisateur des HumanTalks à Paris.

Après avoir fait du Java pendant de nombreuses années, Mathieu s’intéresse maintenant principalement aux problématiques web : HTML5, CSS3, Responsive Web Design, conception de sites web pour smartphones.


4 réponses à Le web change, les navigateurs aussi !

  1. Christoph dit :

    Très intéressant votre article. Merci pour ce descriptif détaillé!

  2. Florian dit :

    Super intéressant, c’est vrai que les navigateurs demandent beaucoup de ressources ces derniers temps j’ai l’impression avec des sites toujours plus lourd (jeux en HTML5, API JS etc…)

    Je me demande ce que les nouveaux moteurs de rendu vont donner.

  3. Mathieu PARISOT dit :

    Merci pour vos retours! :)

    Pour information, Blink arrivera avec Chrome 28 (dispo en Canary pour le moment) et Opera 15 mais pour le moment ça ne devrait pas changer grand chose.

  4. Papaours dit :

    J’ai été étonné de la partie sur Google Chrome. Je m’étais jamais renseigné sur les navigateurs.

    C’est marrant ça me rappelle des histoires sur microsoft :D
    Ils ont un lien de famille ?

    L’article est vraiment sympa à lire, merci :)

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>