Le 31 octobre, l'équipe Node.js a annoncé que la version 8 de la plateforme JavaScript côté serveur est désormais prête pour être utilisée en production alors que Node.js 8.9.0 atteint le statut LTS (support à long terme). Cette version s'ouvre donc à une base d'utilisateurs plus importante pour qui la stabilité et la sécurité sont des exigences.
Node.js 8 est présentée comme l'une des plus grandes séries de versions de la communauté Node.js à ce jour avec des fonctionnalités et des add-ons comme Async/Await et la version 6.1 du moteur JavaScript V8. Il est plus performant que son prédécesseur Node.js 6 LTS, soit jusqu'à 20 % plus rapide pour les applications Web typiques.
Il y a donc des améliorations de performances pour les applications Web, mais aussi pour les applications d'entreprise ; lesquelles sont possibles grâce à la version 6.1 du moteur JavaScript V8 et HTTP/2. Le nouveau moteur V8 vient en effet avec un nouveau pipeline d'exécution JavaScript basé sur Ignition (l'interpréteur JavaScript développé par Google) et Turbofan (le nouveau compilateur optimisant de V8) ; ce qui réduit la consommation de la mémoire et accélère le démarrage des applications Node.js.
En ce qui concerne HTTP/2, il n'est plus utilisé avec les drapeaux (flags), mais est toujours en mode expérimental dans cette version et est donc sujet à certains changements. Une fois qu'il sortira de la phase expérimentale, d'après l'équipe Node.js, il permettra aux développeurs d'utiliser le nouveau protocole pour accélérer le développement d'applications. HTTP/2 va permettre aux développeurs JavaScript de ne plus avoir recours à de nombreuses solutions de contournement HTTP/1.1 pour rendre les applications plus rapides, plus simples et plus puissantes.
Outre les performances, Node.js va offrir davantage de stabilité grâce à des collaborations au sein et en dehors de la communauté. Il faut noter par exemple que l'équipe de Google chargée du moteur JavaScript V8 accorde désormais la priorité à Node.js avec Chromium, et va donc s'assurer que chaque nouvelle version de V8 soit compatible avec Node.js. Cela signifie une réduction de la charge de la communauté Node.js, plus de stabilité et une adoption plus rapide des fonctionnalités ESNext. « Avec les versions LTS de Node, cette stabilité est cruciale pour de nombreuses entreprises lorsqu'elles adoptent Node.js dans un environnement d'entreprise », explique l'équipe Node.js.
L'API Node.js (N-API) est disponible en tant que fonctionnalité expérimentale dans Node.js 8.9.0. Cette technologie a été créée en collaboration avec Google, IBM, Intel, Microsoft, nearForm, NodeSource et des contributeurs individuels. Elle permet aux modules natifs de s'exécuter sur une nouvelle version de Node.js sans recompilation. Cela affranchit les mainteneurs de packages d'avoir à mettre à jour ces dépendances et crée encore plus de stabilité. Cette API établit également les bases de l'ouverture de Node.js à de nouveaux environnements dans l'IoT, les mobiles et une variété de systèmes différents.
Il faut aussi noter que Async/Await est entièrement pris en charge dans Node.js 8.9.0. La nouvelle version LTS de Node.js vient en plus avec une implémentation expérimentale des modules ES ; lesquels ont été introduits sous un flag dans la version 8.7.0.
D'abord standardisés en 2015, les modules ES offrent une manière standard d'écrire du code JavaScript modulaire pouvant s'exécuter à la fois sur le Web et dans Node.js. L’équipe Node explique toutefois que la plateforme JavaScript côté serveur utilise traditionnellement le modèle CommonJS pour le chargement du module, et il sera encore l'option par défaut de Node.js dans la version 8.x LTS. Son implémentation expérimentale des modules ES permettra toutefois aux développeurs de commencer à expérimenter le modèle de module standardisé dans Node.js aujourd'hui alors que l'équipe travaille sur un support de première classe.
Avec le passage de Node.js 8 au statut LTS, Node.js 9.0.0 a également été publié pour les développeurs à des fins de tests et d'expérimentation. Cette version se concentre sur l'ajout et le test de nouvelles fonctionnalités de pointe. Par conséquent, elle n'est pas recommandée pour ceux qui utilisent Node.js en production. L'essentiel des changements dans cette nouvelle version concerne la dépréciation ou la suppression d'API alors que des changements notables sont parmi les derniers introduits dans la version 8 : N-API et HTTP2 qui sont disponibles sans flag.
Plusieurs des plus grandes dépendances de Node ont également été mises à jour. Cela inclut V8 6.2, libuv 1.15.0 et c-ares 1.13.0 ; des dépendances spécifiques qui représentent le moteur JavaScript, la bibliothèque d'entrées/sorties asynchrones et la bibliothèque DNS utilisée par Node.js.
En outre, le code de base Node.js migre progressivement vers un nouveau système d'erreurs. Le but de cette migration est d'associer un code unique à toutes les erreurs lancées par Node.js. La documentation de l'API, ainsi que la suite de tests sont également améliorées de manière constante. Bien que ces modifications ne soient pas directement reflétées dans le code de Node, elles sont importantes au succès de Node.js.
Source : Node.js Foundation
Et vous ?
Qu’en pensez-vous ?
Voir aussi :
Node.js 8 est disponible et apporte le moteur V8 en version 5.8, une mise à niveau du module expérimental async_hooks et bien d'autres améliorations
Node.js 7 sera disponible dans la semaine du 25 octobre 2016, la version v6 de la plateforme JavaScript côté serveur passe au statut LTS
Node.js v6.9.0 (LTS) : ce qui a changé depuis Node.js v4 LTS, la fondation Node.js indique les éléments importants à savoir pour ceux qui vont migrer
Node.js 8.9.0 LTS est disponible pour une utilisation en production
Et Node.js 9.0.0 à des fins de tests et d'expérimentation
Node.js 8.9.0 LTS est disponible pour une utilisation en production
Et Node.js 9.0.0 à des fins de tests et d'expérimentation
Le , par Michael Guilloux
Une erreur dans cette actualité ? Signalez-nous-la !