Node.js, le futur du Web

Lorsque vous êtes développeur vous avez un temps limité. Il y a des centaines de langages, des milliers de frameworks et des millions de librairies.

Il vous faut donc choisir où investir votre temps pour obtenir le maximum de bénéfices pour votre carrière.

Pour devenir senior dans un environnement il faut plusieurs années : vous voulez donc être certain qu’il ne soit pas en perte de vitesse pour rester compétitif sur le marché de l’emploi dans les années à venir.

Nous allons vous montrer qu’apprendre Node.js est le meilleur choix pour vous.

Qu’est ce que Node.js ?

Node.js est un environnement serveur qui permet d’exécuter des serveurs Web développés en JavaScript.

Node.js utilise le même moteur JavaScript que Chrome et Edge, le moteur V8, développé par Google, qui est incroyablement performant.

Node.js utilise certes du JavaScript, mais l’environnement est très différent du Front-End : il n’y a pas de DOM et de Web API, en revanche il utilise de nombreuses librairies développées en C très performantes comme libuv pour la gestion des événements et des modules pour la cryptographie, l’accès au système de fichiers

Technologie la plus populaire

Technologie la plus populaire sur stackoverflow 
Express le framework pour serveur Web le plus populaire (framework qui utilise Node.js)

Autres avantages

L’utilisation de Node.js a plusieurs autres avantages :

  • Le format JSON (JavaScript Object Notation) est le format le plus utilisé pour l’échange de données. Node.js peut nativement sérialiser et désérialiser le JSON grâce au fait qu’il utilise JavaScript.
  • Le gestionnaire de paquets le plus utilisé : avec Node.js vous allez utiliser le gestionnaire de paquet npm qui est le plus utilisé au monde.
  • Le nombre de librairies open sources modernes est énorme : par exemple socket.io pour la gestion du temps réel avec l’utilisation notamment des Websockets.
  • Vous pouvez plus facilement être fullStack : Le JavaScript étant obligatoire en Front-End, vous pourrez à la fois gérer le front et le back.

Les études de cas


Ils ont commencé à quitter Java en migrant leur services sur Node.js dès 2013.

  • Ils ont développé un framework maison au dessus d’Express (kraken.js).
  • Leurs données :
temps de développement 2 fois plus rapide,
33% moins de code,
40% moins de fichiers, doublement du nombre de requêtes par seconde,
35% de gain sur le temps moyen de réponse


Résultat de recherche d'images pour "logo netflix"

Ils ont diminué de 70% les temps de mise en production et ont augmenté leurs performances.
Ils ont également amélioré grandement leur productivité : il est devenu plus facile d’exécuter en local le projet et beaucoup plus simple de débugger.

Résultat de recherche d'images pour "linkedin logo wiki"


jusqu’à 20 fois plus rapide sur certaines requêtes.
nombre de serveurs passés de 30 à 3 pour la partie mobile.
d’une division par plus de 10 du nombre de serveurs en 2015 selon le lead des serveurs API pour le Front End.

Résultat de recherche d'images pour "walmart logo"


  • Plus grande chaîne de supermarchés au monde : génèrent plus de 500 milliards de ventes annuellement avec leurs applications.
  • Ils ont créé leur framework : hapijs.
  • Ils ont utilisé dès 2012 Node.js pour le back de leur application mobile hybride.
  • Ils ont migré la plupart de leurs services utilisant Java.
Ils considèrent Node.js comme une nouvelle technologie très importante : “une nouvelle manière de penser les systèmes serveurs vers des systèmes orientés événements”.
Ils ont eu de meilleurs temps de réponse et un meilleur engagement utilisateur.

Résultat de recherche d'images pour "ebay logo"


plus agile (startup de moins de 2 seconde),
plus facile à tester,
plus facile pour mettre en production (tous les jours alors que toutes les 2 semaines avant en Java),
plus facile de faire des mises à jour automatiques,
de meilleurs outils etc.

Résultat de recherche d'images pour "logo uber"


  • Utilise Node.js pour toutes leurs API Web


Résultat de recherche d'images pour "logo medium"

Résultat de recherche d'images pour "logo groupon"

utilisés pour tous leurs services Back End : ils ont aujourd’hui plus de 70 applications Node.js différentes
plus de 50K requêtes par minutes traités uniquement en Node.js
performances ont augmenté considérablement

Résultat de recherche d'images pour "yahoo logo"

Ont migré de très nombreux services REST vers Node.js en 2014

25 000 requêtes par seconde gérée en Node.js



Résultat de recherche d'images pour "nasa logo"

La NASA a développé plusieurs libraires en Node.js : par exemple pour visualiser les données des missions spatiales ou un module de recherche et de visualisation de données (  https://search.earthdata.nasa.gov/search).

Nous n’allons pas rentrer dans des débats stériles sur la performance entre les différents langages : la réalité est que vous ne trouverez pas un seul benchmark correctement fait car il faut être expert en optimisation de la mise en production sur chacun des langages benchmarkés pour avoir quelque chose de sérieux. Vous pouvez poster les benchmarks que vous trouverez en commentaire et nous vous expliquerons à chaque fois pourquoi il a été mal réalisé :)

En revanche, il vaut mieux démarrer sur un langage qui est perçu par la communauté mondiale des développeurs comme moderne, performant et en forte progression plutôt qu’un langage en décroissance, plus ancien et perçu comme moins performant : il s’agit là d’un élément objectif qui ne fait pas débat.

Voici une étude menée sur 1700 développeurs professionnels, la question posée était de savoir si le développeur pensait que l’usage de la technologie sur laquelle il développe allait augmenter ou diminuer :

Etude réalisée en 2018 par la fondation Node.js


Nous constatons d’emblée que les développeurs PHP et Ruby pensent que ces technologies sont en plein déclin. C’est un peu moins marqué pour Java et .NET, mais toujours une moyenne tendant vers une décroissance.

A l’inverse 76% des développeurs utilisant Node.js pensent que son usage va augmenter, de même pour les développeurs JavaScript qui sont 70% à penser que l’usage du JavaScript va encore augmenter.

Quand ne pas utiliser Node ?


Lorsque vous ne développez pas de serveur Web il n’y a pas d’intérêt particulier à utiliser Node.js.

Lorsque vous voulez développer un site à bas trafic ou qui ne nécessite rien de complexe ou de personnalisé, il vaut mieux utiliser un CMS comme par exemple Wordpress.

Lorsque vous souhaitez effectuer des tâches CPU-intensives comme par exemple traiter des images il vaudra mieux utiliser des langages plus bas niveau comme Go et surtout Rust (mais leur apprentissage est beaucoup plus long et totalement inadapté aux personnes n’ayant pas plusieurs années d’expérience).

Les différents frameworks

Express : Le framework le plus utilisé avec plus de 5.8 millions de projets et 47 000 étoiles.

Koa : utilisé par 110 000 projets et plus de 28 000 étoiles.

Nest : utilisé par plus de 19 000 projets et plus de 24 000 étoiles.

Sails : utilisé par plus de 20 000 projets avec plus de 21 000 étoiles.

Fastify : plus de 5000 projets et plus de 13 500 étoiles.

Les frameworks développés par des entreprises :

Loopback : créé par IBM, utilisé par plus de 14 000 projets avec plus de 13 000 stars.

HapiJs : créé par Walmart, plus de 12 000 étoiles.

Restify : créé par Netflix.

Falcor : librairie de data fetching comme GraphQL créée par Netflix.

KrakenJs : créé par Paypal, basé sur Express.

Notre recommandation est de commencer par Express qui est le framework le plus utilisé de très loin et sur lequel de nombreux frameworks sont construits (Loopback, Kraken-js, Nest par exemple).

Vous pourrez vous intéresser plus tard à un autre framework lorsque vous maîtriserez bien Node.js et Express !

Commencez notre formation Node.js, Express, MongoDB et Mongoose aujourd'hui !