Mozilla met un turbo Javascript sous le capot de Firefox
Programmé depuis novembre 2006, TraceMonkey, accélérateur de code Javascript, a fait son entrée dans la roadmap de Firefox. Son arrivée devrait ainsi donner de l'air à Ajax, sur le terrain des RIA.
Une fois de plus, Mozilla a décidé de voler la vedette à Microsoft. Alors que ce dernier se prépare à annoncer la Bêta 2 d'Internet Explorer 8, Mozilla dégaine TraceMonkey, un accélérateur Javascript qui équipera en natif la prochaine mise à jour de Firefox – la 3.1.
Tracemonkey, qui devrait remplacer à terme le moteur Javascript SpiderMonkey en place actuellement, fournit ainsi à Firefox un compileur javascript à la volée (Just in time compiler), dont le but est de doper les performances d'exécution du langage. Mozilla, qui ne tarit pas d'éloge sur sa technologie, promet des performances pouvant être sept fois supérieures à celles délivrées par SpiderMonkey.
Dans le détail, ce module exploite une technique appélée Trace Tree, qui permet notamment d'isoler et de compiler le code Javascript le plus intéprété dans le cadre d'un script (comme des fonctions ou des boucles), pour enfin l'optimiser. Et c'est là le principal avantage de TraceMonkey. Javascript, initialement un langage de script interprété, devient, grâce à TraceMonkey, un langage compilé nativement. Offrant alors une solution à la lenteur réputée de Javascript, dont la qualité (aléatoire) d'interprétation repose sur la puissance du processeur et sur la quantité de mémoire du poste client.
Mozilla entend ainsi hisser Javascript au rang des langages compilés – et de leurs performances -, comme par exemple le C, exécuté en natif sur le desktop.
TraceMonkey est en fait l'implémentation de quelques fonctions de Tamarin promise par Adobe et Mozilla lors de l'annonce du projet en novembre 2006. L'éditeur de Flash avait alors libérer le code source de sa machine virtuelle ActionScript (AVM2), le moteur de scripting de Flash Player 9. Tamarin devait voir à terme l'implémentation de la version finale du langage ECMAScript Edition 4 (ES4) sur lequel repose ActionScript. TraceMonkey hérite ainsi de certaines pièces de la dernière machine virtuelle Actionscript, coeur du projet Tamarin.
C'est plutôt une bonne nouvelle pour les RIA reposant sur Ajax, dont Javascript reste l'une des composantes principales. Mozilla, dans son élan, voit d'ailleurs en TraceMonkey, un élément pour détourner les développeurs des technologies plus propriétaires, comme Silverlight de Microsoft, ou Flash/Flex, d'Adobe.
TraceMonkey, qui vient juste d'être intégré dans la roadmap des développements, devrait voir le jour avec Firefox 3.1, dont la sortie est prévue à la fin de l'année.
A lire aussi : Le blog de Brendan Eich, CTO de Mozilla