JavaScript : Microsoft propose ses modifications à Node.js pour une compatibilité avec ChakraCore

Développement abstrait
Logiciel 4 min
JavaScript : Microsoft propose ses modifications à Node.js pour une compatibilité avec ChakraCore
Crédits : Dominik Pabis/iStock

La semaine dernière, Microsoft annonçait le passage en open source de son moteur JavaScript, Chakra. Le composant qui en a résulté, ChakraCore, devrait fonctionner à l’avenir avec Node.js, un pont ayant été officiellement proposé aux développeurs de cet environnement. Explications.

Node.js est un environnement de développement particulièrement utilisé. Il permet notamment d’orienter le JavaScript vers les serveurs et lui ouvre les portes, par exemple, de la génération de pages web. Son succès vient en bonne partie de la facilité avec laquelle il permet de créer rapidement divers projets. Mais ses performances participent également à sa popularité (au point d’avoir été un élément central de webOS de Palm), et c’est ici que l’annonce de Microsoft est importante.

De V8 à ChakraCore, la route n'est pas si simple

Node.js repose en effet sur V8, le moteur JavaScript créé par Google pour Chrome. L’arrivée de cette machine virtuelle avait bousculé le petit monde du JavaScript, en proposant alors des performances nettement supérieures à ce qui se faisait. Google avait notamment une compilation JIT (Just-In Time), et le projet Node.js est venu naturellement se greffer dessus pour l’utiliser comme base. Le problème, c’est justement que Node.js ne peut fonctionner sur un autre moteur JavaScript.

Dans son annonce du passage à l’open source de Chakra, Microsoft a précisé qu’elle préparait une « pull request » pour Node.js. Ce type de requête permet de proposer aux gestionnaires d’un projet quelconque une liste de modifications et d’améliorations pour qu’elles soient fusionnées avec la branche principale de développement. Ce que Microsoft a proposé n’est rien d’autre que les modifications nécessaires pour rendre compatible Node.js avec ChakraCore.

Un gros travail d'abstraction

La pull request a été affichée sur le dépôt GitHub de Node.js, et l’annonce a déjà provoqué de nombreuses réactions, globalement très enthousiastes. Pour que Node.js puisse fonctionner, Microsoft a créé une API spécifique (Chakra Shim) qui va faire le lien entre l’environnement et ChakraCore, en implémentant toutes les fonctions essentielles des API de V8. Node.js fonctionnerait alors indifféremment sur une base V8 ou ChakraCore.

Dans un nouveau billet de blog, le responsable Gaurav Seth, de chez Microsoft, explique que Chakra Shim fonctionnera comme une couche complémentaire et supérieure à ChakraCore, pour lui servir en quelque sorte d’abstraction. L’éditeur explique également que la grande majorité des modules npm fonctionneront sans problème avec ChakraCore, mais qu’un petit nombre pourrait poser des problèmes. Pour éviter ce type de souci, les développeurs se sont assurés d’être compatibles avec l’ensemble des modules basés sur NAN (Native Abstractions for Node.js). Il s’agit d’un travail au long cours et Microsoft souhaite que la communauté remonte les soucis quand il y en a.

chakracore node.js

De l'open source et des performances

Mais quels seraient finalement les avantages ? D’abord, l’inclusion de Node.js dans des projets open source basés sur CharaCore. Node.js est lui-même open source et est disponible sous licence MIT, soit la même que Microsoft utilise pour la plupart de ses composants dont les sources sont ouvertes. Ensuite, parce que l’éditeur indique très clairement que les performances sont meilleures. Il publie plusieurs graphiques pour montrer que non seulement Node.js fonctionne mieux avec ChakraCore qu’avec V8, mais également que la courbe des performances évolue rapidement avec le temps, l’actuelle version de ChakraCore était plus rapide que celle de Chakra il y a trois mois.

Ce chapitre des performances intéresse particulièrement Microsoft, à se demander d’ailleurs si la firme n’est pas à la recherche de nouveaux moyens d’optimiser encore sa machine virtuelle. Dans son billet, Gaurav Seth explique en effet que l’éditeur souhaite travailler de concert avec le « benchmarking workgroup » de Node.js et sa communauté pour identifier des « scénarios de performances réelles ». Il ne déplairait sans doute pas à Microsoft d’y gagner l’image du créateur d’un moteur JavaScript open source et particulièrement performant.

La vérification prendra « un temps considérable »

En attendant, la route est sans doute encore longue. Sur la page du dépôt GitHub, on peut déjà voir une réponse d’un des responsables de Node.js (Jeremiah Senkpiel), indiquant que la requête de Microsoft aura « un gros impact ». En conséquence, il faut s’attendre à ce que « la vérification prenne un temps considérable ». L’éditeur est prévenu.

Cela n’empêche pas Microsoft de proposer un installeur temporaire contenant une version fonctionnelle de Node.js avec ChakraCore. Les développeurs intéressés peuvent le récupérer depuis ce lien, son installation ne remplaçant pas celle par défaut de Node.js.

Vous n'avez pas encore de notification

Page d'accueil
Options d'affichage
Abonné
Actualités
Abonné
Des thèmes sont disponibles :
Thème de baseThème de baseThème sombreThème sombreThème yinyang clairThème yinyang clairThème yinyang sombreThème yinyang sombreThème orange mécanique clairThème orange mécanique clairThème orange mécanique sombreThème orange mécanique sombreThème rose clairThème rose clairThème rose sombreThème rose sombre

Vous n'êtes pas encore INpactien ?

Inscrivez-vous !