L’équipe derrière Node.js a publié le 20 avril la version 16, qui apporte des binaires pour les puces d’Apple et des API stables supplémentaires au populaire runtime JavaScript. C’est la toute première version du moteur JavaScript à être livrée avec des binaires préconstruits pour Apple Silicon qui intègre également la version V8 9.0 et des fonctions timer qui retournent les objets Promise. Node.js 16 remplace Node.js 15 en tant que version actuelle, et restera la version actuelle pendant les six prochains mois, avant d’être promue au niveau LTS (support à long terme) en octobre prochain.
Le runtime JavaScript version 8 a été mis à jour de la version 8.6 à 9.0. L’équipe a également créé des binaires pour les puces Apple avec l’aide du projet MacStadium, a expliqué l’équipe. Cette version est donc la première à intégrer des binaires préconstruits pour les puces ARM des Mac. L’outil fournit des fichiers d’archive – tarballs – séparés pour les architectures Intel et ARM. En revanche, le fichier d’installation pour MacOS sera livré comme un binaire « fat » qui couvre les deux architectures. Node.js 16 suit la sortie en octobre 2020 de Node.js 15.
Parmi les autres nouveautés et améliorations de Node.js 16, citons la stabilisation de l’API Timers Promises, fournissant un ensemble alternatif de fonctions timer qui renvoient des objets Promise, supprimant la nécessité d’utiliser util.promisify().
En outre, comme toujours, une nouvelle version du moteur JavaScript V8 apporte des ajustements et des améliorations en termes de performances, tout en permettant à Node.js de rester à jour avec les caractéristiques du langage JavaScript. Dans Node.js v16.0.0, le moteur V8 est mis à jour à V8 9.0 – à partir de V8 8.6 dans Node.js 15. Cette mise à jour apporte les indices de correspondance RegExp ECMAScript, qui fournissent les indices de début et de fin de la chaîne capturée. Le tableau d’indices est disponible via la propriété .indices des objets match lorsque l’expression régulière possède l’indicateur /d, lit-on dans l’article de blog écrit avec la contribution du comité directeur technique de Node.js.
Les fonctionnalités produites dans le cadre des récentes versions de Node.js 15 qui sont maintenant dans Node.js 16 comprennent Node-API version 8, Stable Source Maps v3, et les implémentations atob (buffer.atob(data)) et btoa (buffer.btoa(data)) de la plateforme Web pour la compatibilité avec les API de la plateforme Web existante.
En tant que nouvelle version majeure, c’est aussi le moment où l’équipe introduit les nouvelles dépréciations du runtime. Selon l’article de blog, le projet Node.js vise à minimiser la perturbation de l’écosystème pour tout changement de rupture. Le projet utilise pour cela un outil nommé CITGM (Canary in the Goldmine), pour tester l’impact de tout changement de rupture (y compris les dépréciations) sur un grand nombre de modules populaires de l’écosystème afin de fournir des informations supplémentaires avant d’introduire ces changements.
Parmi les dépréciations notables dans Node.js 16, citons la dépréciation au moment de l’exécution de l’accès à process.binding() pour un certain nombre de modules de base, tels que process.binding(‘http_parser’).
Node.js 16 sera promu au niveau support à long terme en octobre et baptisé « Gallium »
« Une nouvelle version majeure est la somme des efforts de tous les contributeurs du projet et des collaborateurs de Node.js, nous aimerions donc profiter de cette occasion pour leur dire un grand merci. En particulier, nous aimerions remercier le groupe de travail Node.js Build pour s’assurer que nous avons l’infrastructure prête à créer et à tester les versions et à faire les mises à jour nécessaires à nos chaînes d’outils pour Node.js 16 », a écrit l’équipe Node.js dans son billet de blog.
Node.js 16 est téléchargeable depuis nodejs.org ou en utilisant Node Version Manager sur Unix pour l’installer avec nvm install 16. Node.js 16 remplace Node.js 15 en tant que version actuelle, Node 16 restant la version actuelle pendant les six prochains mois, puis étant promue au support à long terme en octobre. Une fois promue au support à long terme, la version sera désignée par le nom de code « Gallium ». La fin de vie de Node.js 16.x est prévue pour le 30 avril 2024.
Node.js 12, quant à lui, sera pris en charge jusqu’en avril 2022 et Node.js 14 restera en support à long terme jusqu’en avril 2023. Enfin, Node.js 10 ne bénéficiera plus de support dès la fin de ce mois (avril 2021).
Sur les plateformes Linux, le niveau GCC (Gnu C Compiler) minimum pour le build des projets Node.js est GCC 8.3. Les détails sur les outils et compilateurs supportés sont accessibles dans le fichier BUILDING.md.
Au niveau des runtimes JavaScript, Node.js doit maintenant partager la vedette avec Deno qui est conduit par Ryan Dahl (qui a contribué à la création de Node.js) et qui prévoit de fournir une alternative plus sécurisée à ce dernier. La version 1.9 de Deno remonte au 13 avril, la v.1.8 à mars. Au début du mois, Ryan Dahl et Bert Belder (l’autre cofondateur de Deno) ont par ailleurs annoncé qu’ils montaient une société pour dynamiser l’écosystème JavaScript et améliorer leur projet avec un capital de départ suffisant de 4,9 millions de dollars pour recruter une équipe d’ingénieurs à plein temps.
Pour expliquer leur démarche, Ryan Dahl a expliqué dans un billet publié en fin mars que JavaScript côté serveur est « désespérément fragmenté, profondément lié à une mauvaise infrastructure et irrévocablement dirigé par des comités qui ne sont pas incités à innover ».
Avec l’investissement, Deno va poursuivre le développement de runtimes personnalisés et sécurisés pour différentes applications, notamment des interfaces utilisateurs type Electron, des fonctions de serverless pour Cloudflare Worker, des scripts intégrés pour les bases de données… Pour rassurer la communauté, Deno précise que le projet reste sous licence MIT. « Notre société s’appuiera sur le projet open source, sans chercher à le monétiser directement », indique le message.
Vous pouvez télécharger Node.js v16.0.0 ici.
Source : Node.js