Je recrute

Je cherche un job

Le framework Node.js

Né de la volonté de trouver une façon efficace de gérer un grand nombre de connexions simultanées à un même serveur, Node.js est une plateforme logicielle complète permettant d'utiliser JavaScript en back end. Il s'impose comme une alternative à d'autres langages de programmation côté serveur pour le développement d'applications web.

Histoire de Node.js

Côté client, selon son utilisation initiale, JavaScript a besoin d'un moteur qui l'interprète correctement pour permettre son affichage dans le navigateur. Les équipes de Google ont développé leur propre moteur pour le navigateur Chrome avec l'idée qu'il transforme le JavaScript en langage machine pour pouvoir l'exécuter plus rapidement.

En 2009, un développeur du nom de Ryan Dahl souhaite trouver une solution aux limitations de l'un des serveurs web les plus populaires, Apache HTTP Server. Apache est plébiscité, performant, mais peu adapté à la gestion d'un grand nombre de requêtes simultanées. Ryan Dahl décide alors d'utiliser le moteur JavaScript de Google, Chrome V8, mais de le détourner de son utilisation dans le navigateur. Node.js nait, permettant désormais de développer côté serveur en JavaScript, et donc de l'utiliser pour écrire des API (pour Application programming interface).

Node.js est pensé multiplateforme (Windows, Mac et Linux) et distribué sous licence MIT. Il est donc libre et open-source, ce qui lui permet de bénéficier des apports de la communauté de développeurs. Son écosystème est donc riche et fort d'une documentation détaillée. L'utilisation de Node.js peut s'accompagner de grands nombres de frameworks et outils additionnels permettant d'optimiser ses performances.

Ce qui distingue Node.js

Node.js n'est donc pas un framework mais une plateforme logicielle à part entière. Son but n'est pas de permettre de développer des sites web plus rapidement qu'en JavaScript pur. Il est au contraire d'exécuter JavaScript côté serveur, c'est-à-dire en back end alors que le langage est initialement utilisé en front end.

Node.js agit donc comme le ferait un nouveau langage en permettant au développeur l'utilisant d'interagir avec le système informatique. Il est une alternative à d'autres langages de programmation côté serveur comme Python, Java ou PHP. Pour mieux comprendre l'intérêt de Node.js par rapport aux autres langages, il est important de tout d'abord comprendre comment fonctionne JavaScript dans son environnement naturel, c'est-à-dire le navigateur.

L'exécution d'un script JavaScript simple est relativement rapide. Le temps nécessaire avant l'affichage de la page ne dépend pourtant pas que de cette vitesse d'exécution, mais également d'autres technologies (attente de réponses de la base de données par exemple). Node.js permet un traitement asynchrone des événements. Concrètement, cela signifie qu'il permet de passer à l'exécution de la suite du code avant même de recevoir les données relatives à une portion de script antérieure. Le JavaScript pur repose quant à lui sur un traitement synchrone où le code est bloquant : il doit attendre d'avoir l'ensemble des informations relatives à une partie pour pouvoir passer à l'exécution de la suivante. Grâce à Node.js, les temps d'attente sont mieux répartis, autorisant un affichage plus rapide de la page.

Node.js pour les entreprises

Le langage serveur des applications monopage et en temps réel Grâce à ses spécificités, Node.js est particulièrement recommandé pour le développement d'applications web monopages, appelées dans le langage informatique SPA, pour Single page applications. C'est notamment le cas des réseaux sociaux. Il en va de même pour les applications en temps réel (RTA pour real time applications), telles les applications de messagerie instantanée. En plus des SPA et RTA, Node.js correspond parfaitement à tous les projets qui, de manière générale, ont besoin d'un serveur capable de gérer un grand nombre de requêtes en parallèle. C'est là sa principale force. Il n'est au contraire pas le plus performant lorsqu'il s'agit d'exécuter peu de requêtes, mais qui sont lourdes et complexes. Grâce à son traitement simultané des requêtes, il est très performant lorsque beaucoup d'accès système sont nécessaires.

Un atout pour les développeurs full stack Pour les entreprises travaillant avec des développeurs full stack, oeuvrant donc tant au niveau du front end que du back end, Node.js permet de développer avec un seul langage. JavaScript étant incontournable côté navigateur, cela évite de changer de langage pour le back end. Il est ainsi également possible d'utiliser des bibliothèques communes à tous les niveaux de développement. Il est enfin facile à apprendre lorsque l'on connait le JavaScript, malgré une logique de développement différente.

Node.js s'adapte aux petits comme aux gros projets Node.js est de base léger, rien de superflu n'est embarqué nativement. Le développeur choisit les modules dont il a besoin et les installe séparément. Pour les plus petits projets, il n'y a donc pas de surcharge inutile avec des fonctionnalités qui ne servent pas l'application. Node.js est cependant une plateforme logicielle flexible, qui dispose notamment d'un gestionnaire de paquet par défaut. Les projets nécessitant d'avantage de fonctionnalités peuvent donc disposer d'une installation personnalisée dont les différents modules sont faciles et rapides à installer.

5 autres articles en lien avec cette page :