Remplacer le moteur de l'avion en plein vol

plane-twitter-300x150.jpgpar Jen Simmons, le 4 janvier 2017

Safari tourne sur Webkit. Chrome tourne sur Blink. Et Firefox tourne sur Gecko… qui est vieux… vraiment vieux. Je pense que c’est le plus vieux moteur d’affichage encore largement utilisé.

Bien sûr, avec deux décennies d’expérience, nous avons aujourd’hui de « bien meilleures idées » sur la façon de créer un moteur d’affichage de navigateur (et du logiciel en général). Ainsi, pendant les dernières années, Mozilla a travaillé sur un tout nouveau moteur top secret. Sauf qu’il n’est pas du tout top secret… et ne l’a jamais été. Dans une autre entreprise, il aurait été un projet top secret. Chez Mozilla, tout a été fait au grand jour.

Logo de ServoLe projet s’appelle Servo. Il a débuté en tant qu’expérience. Il est codé dans un nouveau langage de programmation appelé Rust (Gecko est écrit en C++). Et il est open source. Vous pouvez en tout point nous aider à le construire.

Qu’est-ce que cela signifie pour Firefox ? Eh bien, d’abord, je parlerai du moteur d’affichage et non du navigateur en entier – le moteur d’affichage est la partie du navigateur qui analyse et affiche chaque page web, ce qui est distinct de trucs comme les outils pour gérer les marque-pages, les barres d’URL (adresse internet) et de recherche, et les menus pour les fonctions de Firefox. Si dans un claquement de doigts nous pouvions remplacer Gecko tout d’un coup, les gens normaux n’auraient pas idée de ce qu’il s’est passé – enfin, sauf que les sites web se chargeraient extrêmement vite. Supervite, même. Vite, parce que nous avons de « bien meilleures idées ».

Le tour de force est de trouver comment passer de l’ancien moteur d’affichage au nouveau. Vous ne pouvez pas le faire tout d’un coup. C’est comme trouver un moyen de remplacer le moteur d’un avion en plein vol. Je suppose que nous pourrions faire atterrir l’avion, laisser tous les passagers débarquer pour qu’ils puissent déambuler et prendre d’autres avions, sans fournir aucun service pendant un moment tandis que nous échangeons les moteurs… mais non ! Non, nous ne pouvons pas faire ça. Et ça n’arrivera pas.

Badge RustNous pourrions continuer à faire voler l’avion actuel, tout en repartant de zéro pour construire un avion complètement nouveau sur le terrain – en choisissant spécialement chaque écrou, chaque boulon, en dessinant un nouveau cockpit et en attendant de nombreuses années pour faire voler cet avion. Mais nous ne voulons pas non plus faire cela. Nous avons déjà un avion géant. Et c’est un avion plutôt bon. Nous devons continuer à l’utiliser. Nous voulons uniquement un nouveau moteur sur cet avion. Dès que nous pourrons l’avoir.

C’est là qu’entre en scène Quantum, le nom de code du projet pour trouver comment remplacer le moteur sur notre avion toujours en vol. Une de ses parties est appelée Quantum style (alias Stylo) – c’est ce qui nous permet de passer d’un Gecko rendant toutes les feuilles de style CSS à l’utilisation de Quantum pour les CSS. Quantum Style assemble Gecko et Servo en demandant à chacun de faire le boulot qu’il fait le mieux. Parce que, en fait, même si c’est depuis environ 20 ans, Gecko fait des choses plutôt étonnantes et nous voulons continuer à tirer parti des bons morceaux. Faire du neuf n’est pas toujours la meilleure solution.

À un moment à la mi-2017, les nouveautés du CSS seront élaborées avec les parties de l’avion provenant de Quantum et plus de Gecko. À l’avenir, ce sera plus facile et plus agréable d’implémenter de nouvelles propriétés CSS. Cela facilitera la contribution des membres de la communauté open source. Cela accélérera la sortie de nouvelles choses.

L’année devant nous devrait être une bonne année pour Firefox. Si vous ne l’avez pas essayé depuis quelque temps, faites-le. Après s’être recentré en 2015, avoir jeté les bases du renouveau en 2016, Mozilla a préparé Firefox pour faire sensation en 2017.


Traduction et relecture : Mozinet, Goofy et anonymes

(Re)lire : Quantum va vous faire réaimer Firefox et le Web

Images rajoutées par le traducteur

Crédit illustrations : logo de Servo et badge de Rust, Mozilla.

Haut de page