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
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
- Toutes leurs nouvelles applications sont sur Node.js.
- Passé de Java à Node.js pour toutes leurs API REST : “tout ce que l’utilisateur voit vient de Node.js” (et ils utilisent React en front).
- Développé leurs propres frameworks Node.js pour la récupération de données et les serveurs Web : restify et falcor.
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.
- Passé de Ruby on Rails à Node.js en 2012, résultats :
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.
- 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.
On commencé à intégrer Node.js en 2013
- En 2016 ils avaient déjà plus de 200 applications sur Node.js qui servent plus d’un milliard de requêtes par jour.
- Ils ont développé plus de 330 modules pour Node.js.
- Ils utilisent Marko.js pour les rendus serveurs (beaucoup plus rapide que React dans le cas de rendus serveurs progressifs).
- Bénéfices tirées de l'utilisation de Node.js :
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.
Utilise Node.js pour toutes leurs API Web
- Utilisent Node.js pour tous leurs serveurs Web
- Passé de Ruby on Rails à Node.js en 2013, résultats 2017 :
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
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
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 :
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. Suivez notre formation Nest.js ici.
Sails : utilisé par plus de 20 000 projets avec plus de 21 000 étoiles.
Fastify : plus de 5000 projets et plus de 31 500 étoiles.
Les frameworks développés par des entreprises :
Loopback : créé par IBM, utilisé par plus de 14 000 projets avec plus de 5000 stars.
HapiJs : créé par Walmart, plus de 14 000 étoiles.
Restify : créé par Netflix.
Falcor : librairie de data fetching comme GraphQL créée par Netflix.
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 !
Pourquoi nous recommandons Express ?
Simplicité et Stabilité
Express est réputé pour sa simplicité et sa stabilité. Depuis sa création, il s'est imposé comme le framework de choix pour le développement de serveurs web en Node.js. Sa popularité est due à son architecture minimaliste, qui permet aux développeurs de créer des applications robustes avec une configuration minimale. Cette simplicité d'utilisation le rend idéal pour les développeurs débutants tout en offrant une flexibilité suffisante pour les projets complexes.
Adoption par d'autres frameworks
Express sert de base à de nombreux autres frameworks, dont certains des plus connus comme Nest et Loopback. La liste complète des frameworks basés sur Express est disponible sur le site officiel d'Express. Cette adoption massive par d'autres frameworks montre à quel point Express est un socle fiable et extensible pour le développement d'applications web.
Compatibilité avec les nouvelles versions de Node.js
Express permet d'utiliser toutes les fonctionnalités des nouvelles versions de Node.js, à l'exception de HTTP/2. Toutefois, cette limitation n'est pas vraiment un problème car il est courant d'utiliser NGINX comme reverse proxy, qui supporte HTTP/2 et HTTP/3. Ainsi, les utilisateurs peuvent bénéficier des avantages des nouvelles technologies sans avoir à sacrifier la stabilité et la simplicité offertes par Express.
Stabilité et gros projets
De nombreuses entreprises ont choisi de lancer des projets importants avec Express et continuent de l'utiliser pour sa stabilité. Parmi les exemples notables, on trouve des entreprises comme Uber, IBM, et PayPal, qui ont construit des applications critiques en utilisant Express. Cette adoption par des géants de l'industrie témoigne de la fiabilité et de la robustesse d'Express dans des environnements de production exigeants.
Écosystème riche
Express bénéficie du plus grand écosystème de bibliothèques parmi tous les frameworks Node.js. La logique de middleware d'Express est particulièrement appréciée des développeurs, car elle permet une gestion claire et modulaire des requêtes HTTP. Cette abondance de bibliothèques et d'extensions disponibles renforce Express, car de nombreux développeurs et entreprises choisissent de développer leurs bibliothèques pour Express, contribuant ainsi à son écosystème déjà florissant.
Avenir assuré
Dans un environnement technologique en constante évolution, il est crucial de choisir des outils qui ont fait leurs preuves et qui ont un avenir assuré. Express, avec sa large adoption, sa stabilité éprouvée, et son écosystème dynamique, est une valeur sûre. Il est fort probable qu'Express continuera d'être pertinent et largement utilisé dans les années à venir, contrairement à d'autres frameworks qui pourraient ne pas avoir la même longévité.
En conclusion, pour un projet important nécessitant une base solide et un écosystème riche, Express reste le meilleur choix. Sa simplicité, sa stabilité, et son adoption par l'industrie en font un outil incontournable pour les développeurs Node.js, maintenant et dans le futur.
Commencez notre formation Node.js, Express, MongoDB et Mongoose aujourd'hui !