Le moteur JavaScript V8
V8 est le nom du moteur JavaScript qui alimente Google Chrome. C'est lui qui prend notre JavaScript et l'exécute lors de la navigation avec Chrome.
V8 est le moteur JavaScript, c'est-à-dire qu'il analyse et exécute le code JavaScript. Le DOM et les autres API de la plateforme Web (ils constituent tous l'environnement d'exécution) sont fournis par le navigateur.
Ce qui est intéressant, c'est que le moteur JavaScript est indépendant du navigateur dans lequel il est hébergé. Cette caractéristique clé a permis l'essor de Node.js. V8 a été choisi comme moteur de Node.js en 2009, et avec l'explosion de la popularité de Node.js, V8 est devenu le moteur qui alimente désormais une quantité incroyable de code côté serveur écrit en JavaScript.
L'écosystème Node.js est énorme et grâce à V8 qui alimente également les applications de bureau, avec des projets comme Electron.
Autres moteurs JS
D'autres navigateurs ont leur propre moteur JavaScript :
SpiderMonkey
(Firefox)JavaScriptCore
(aussi appeléNitro
) (Safari)- Edge était initialement basé sur
Chakra
, mais a été récemment reconstruit à l'aide de Chromium et du moteur V8.
et beaucoup d'autres existent également.
Tous ces moteurs implémentent la norme ECMA ES-262, également appelée ECMAScript, la norme utilisée par JavaScript.
La quête de performance
V8 est écrit en C++, et il est continuellement amélioré. Il est portable et fonctionne sur Mac, Windows, Linux et plusieurs autres systèmes.
Dans cette introduction à V8, nous ignorerons les détails de l'implémentation de V8 : ils peuvent être trouvés sur des sites plus faisant autorité (par exemple, le site officiel de V8), et ils changent au fil du temps, souvent radicalement.
V8 est en constante évolution, tout comme les autres moteurs JavaScript, pour accélérer le Web et l'écosystème Node.js.
Sur le Web, une course à la performance dure depuis des années, et nous (en tant qu'utilisateurs et développeurs) bénéficions grandement de cette compétition car nous obtenons des machines plus rapides et plus optimisées année après année.
Compilation
JavaScript est généralement considéré comme un langage interprété, mais les moteurs JavaScript modernes ne se contentent plus d'interpréter JavaScript, ils le compilent.
Cela se produit depuis 2009, lorsque le compilateur JavaScript SpiderMonkey a été ajouté à Firefox 3.5, et tout le monde a suivi cette idée.
JavaScript est compilé en interne par V8 avec une compilation juste-à-temps (JIT) pour accélérer l'exécution.
Cela peut sembler contre-intuitif, mais depuis l'introduction de Google Maps en 2004, JavaScript a évolué d'un langage qui exécutait généralement quelques dizaines de lignes de code à des applications complètes avec des milliers à des centaines de milliers de lignes s'exécutant dans le navigateur.
Nos applications peuvent maintenant s'exécuter pendant des heures dans un navigateur, au lieu d'être simplement quelques règles de validation de formulaire ou de simples scripts.
Dans ce nouveau monde, compiler JavaScript est parfaitement logique car, même si cela peut prendre un peu plus de temps pour préparer JavaScript, une fois terminé, il sera beaucoup plus performant qu'un code purement interprété.