Développement : faut-il se tourner vers Node.js à l’avenir ?

Node.js : la technologie qui monte, qui monte… et qui monte encore.

Le sujet n’est pas nouveau chez les développeurs. Depuis son lancement en 2009, Node.js n’en finit pas de faire des émules. Entre les anti et les pros, les avis sont partagés : certains voient en lui l’avenir de la programmation, d’autres ne comprennent pas l’engouement suscité.

 

developpement nodejs tendance

De 2015 à 2019 : intérêt grandissant pour node.js sur Google Trends

Mais d’abord, Node.js qu’est-ce que c’est ? Et en quoi cette techno pourrait être utile à votre site web ou e-commerce ?

Node.js est un environnement open-source permettant de développer des applications multi-plateformes. Basé sur le V8 de Google, le moteur d’exécution JavaScript utilisé dans Chrome, Node.js traite donc les données en JavaScript. 1ère surprise : avec Node, l’écriture se fait en JavaScript non plus uniquement côté client, mais également côté serveur ! Node vient ainsi concurrencer les autres langages serveurs que sont par exemple PHP ou Java.

Si Node.js peut effectivement être utilisé comme serveur sans avoir besoin d’une solution externe tels que Apache ou lighttpd, il reste avant tout une plateforme de développement JavaScript permettant de répondre à de nombreux besoins clients/serveurs grâce à la mise à disposition d’une API.

Les avantages et fonctionnalités de Node.js

  • Gestion des entrées/sorties en utilisant des IO non-bloquante permettant la réalisation d’actions asynchrones
  • Même langage pour le développement front-end et back-end : le code se fait en JavaScript côté serveur et côté client, ce qui permet d’augmenter la productivité
  • Haute performance
  • Configuration facile
  • Une communauté de passionnés ultra dynamique : l’une des plus actives sur GitHub
  • Grande disponibilité de modules faciles à installer grâce au gestionnaire NPM (Node Package Manager) spécifiquement dédié à Node.js

Les centaines de milliers de modules ajoutés par les développeurs de la bouillonnante communauté permettent de s’inspirer et offrent la possibilité de faire pleins de choses sans partir de zéro en devant TOUT coder. Ce grand soutien de la communauté facilite le partage de bouts de code fonctionnels tout en ayant un accès complet au code source.

 

La grande force de Node.js : gestion asynchrone des événements

En permettant le développement dans le même langage de programmation à la fois côté client et serveur, les performances de Node.js ont de quoi séduire les adeptes de la rapidité. L’utilisation de Node en tant que serveur web le rend par ailleurs capable de traiter un gros volume de requête simultanément de manière efficace.

Cette performance élevée s’explique notamment par sa conception asynchrone permettant d’éviter les attentes. Avec Node, plusieurs requêtes peuvent être effectuées en même temps. Pas besoin d’attendre qu’une action longue soit terminée pour en lancer une autre !

Comparativement à PHP, cela permet un gain de temps considérable. En effet, PHP exécute les requêtes de façon séquentielle : le client attend la réponse du serveur avant de pouvoir lancer d’autres opérations. L’action A doit être terminée pour exécuter l’action B et ainsi de suite. Avec Node.js, le temps d’attente est réduit puisqu’il est orienté événement : il est donc capable d’exécuter plusieurs actions en même temps.

 

Node.js non bloquant

Modèle non-bloquant © OpenClassRooms

 

À ce titre, le service de paiement en ligne PayPal, qui a adopté Node.js, a rapporté que son nombre de requêtes reçues par seconde avait doublé et ainsi diminué le temps de réponse de 200 millisecondes, soit de 35%.

Un autre point fort de Node.js ? Les streams. Ils permettront par exemple de traiter un fichier alors même que son téléchargement n’est pas terminé.

Cette performance accrue permet également de relancer JavaScript dans la course du mobile-friendly alors que Google annonçait cette année le lancement de son format AMP, sommant les éditeurs de site mobile de débarrasser leur code de JavaScript, considéré comme peu performant.

 

Quand utiliser Node.js ?

Node.js présente un nombre de fonctionnalités impressionnantes pour favoriser l’expérience utilisateur dans un environnements multi-connecté. Ses domaines d’applications sont donc nombreux :

  • E-commerce
  • Traitement des paiements
  • Services en temps réel
  • Média sociaux
  • Jeux vidéo
  • Sondage
  • Notifications
  • Système de téléchargement

Nativement, Node.js supporte les websockets qui permettent la mise en place d’applications réactives face à un volume de requêtes importants à traiter en temps réel. Avec Node, la transmission de données au client est automatisée : une action effectuée par un utilisateur se répercute directement sur les autres utilisateurs. En d’autres termes, dès qu’une nouvelle information est disponible, elle est automatiquement mise à disposition.

Cela s’avère donc très utile pour des projets nécessitants du temps réel. Le temps réel : un concept qui change la donne. Il offre la possibilité de gérer et connecter efficacement un volume important de personnes. En 2013, le site e-commerce Walmart a par exemple utilisé Node.js avec réussite lors du Black Friday, le jour le plus important de l’année en termes de trafic e-commerce aux Etats-Unis.

Prenons l’exemple d’un chat. Au lieu d’une page se rechargeant automatiquement pour faire apparaître les nouveaux messages, la conversion s’affiche en temps réel. Très utile pour mettre en place un chat avec un support technique dans l’optique d’améliorer le service offert au client d’un e-commerce. À titre d’exemple, le chat et le moteur de recherche de Facebook sont partiellement développés avec Node.js.

Les entreprises confrontées au défi de développer des applications pour répondre à des changements rapides sont donc particulièrement concernées par Node.js. Réactivité, performance et capacité de supporter une volumétrie de requête importante sans serveur dédié font ainsi de Node.js une technologie à envisager pour la création d’un e-commerce.

 

Node.js séduit les grands acteurs du web

La fiabilité de Node.js fait débat au sein de la communauté des développeurs. Pourtant, de nombreuses entreprises l’ont déjà adopté.

En 2015, IBM faisait l’acquisition de StrongLoop, les constructeurs du très populaire projet open-source Express.js. Et d’autres grandes entreprises ont opté pour Node.js : Microsoft, IBM, Yahoo!, Netflix, Groupon ou encore PayPal qui, en 2013, migrait ses applications de Java vers Node.js.

Dernièrement, LinkedIn reconsidérait son infrastructure serveur mobile et passait ainsi de Ruby on Rails à Node.js. Résultats ? De meilleures performances (jusqu’à 20 fois plus rapide) et plus de scalabilité !

Du côté de Netflix, on se vante depuis la réécriture de son site en Node.js d’un gain de productivité et d’un affichage de page plus rapide. Le site d’achats groupés Groupon, passé de Ruby on Rails à Node.js, se targue quant à lui d’une diminution de 50% du temps de chargement de ses pages.

Et si ces exemples ne suffisent pas à vous impressionner, sachez que La NASA a récemment déclaré utiliser Node.js pour « développer des systèmes accompagnant les opérations spatiales actuelles et futures ». Pour organiser les sorties dans l’espace, rien que ça !

 

Frameworks Node.js

Après avoir installé Node.js, les développeurs ont le choix entre plusieurs frameworks pour les aider à développer des sites web rapides, scalables et en temps réel.

En générant les bases d’un projet, les frameworks permettent de ne pas partir de rien. Node.js regroupe un tas de frameworks extras, mais s’il ne fallait retenir que les frameworks Node.js les plus performants et populaires, ils seraient au nombre de quatre :

  • Express.js : un « micro-framework » open-source sous licence MIT, particulièrement flexible.
  • Meteor.js : un framework full-stack conçue pour simplifier la création d’applications web qui se synchronisent en temps réel avec le serveur.
  • React.js (Facebook) : une bibliothèque JavaScript conçue pour faciliter la création d’applications web monopage.
  • Angular.js (Google) : un framework JavaScript open-source dédié au développement d’applications web monopage.

 

Rapide, aisé à utiliser et facile à apprendre en ayant une pratique JavaScript… Toutes ces raisons ayant poussé de grandes entreprises à franchir le cap font que Node.js mérite vraiment d’être pris au sérieux pour 2020.

Car oui, Node.js est bien parti pour rester.

En réponse à "Développement : faut-il se tourner vers Node.js à l’avenir ?"

  1. shadow dit :

    wow super merci bcp!!!!

  2. Emmanuel dit :

    Article intéressant, mais qui me laisse tout de même perplexe : combien de sites ont réellement besoin du boost de performances que peut apporter nodeJS ? En dehors d’amazon, facebook ou wallmart, probablement assez peu.

    Par ailleurs il me semble ambitieux de qualifier nodeJS de « facile à apprendre » : la programmation asynchrone n’a rien d’intuitif, et on a vite fait de se retrouver avec un méga plat de nouilles en guise de code !

    Et enfin, cela fait longtemps – et bien avant nodeJS – que l’on sait faire des chats qui ne rechargent pas toute la page : nodeJS est une techno serveur, ce n’est pas lui qui gère le client.

    Tout cela pour dire que, oui nodeJS est un langage puissant, et oui il peut être intéressant de se poser la question sur de grosses infras. De la a l’utiliser partout et systèmatiquement, j’ai franchement des doutes.

  3. pinguet dit :

    nodejs, mon experience :
    hyper facile au début pour installer et activer le serveur
    hyper simple pour gérer l’interactivité entre le client et le serveur
    facile pour gérer les page avec ejs
    une semaine de travail et le résultat est bluffant
    puis dès que l’on veut faire des choses plus complexes , cela devient une usine à gaz
    l’asynchrone reste compréhensible mais modifier un code natif sans async devient vite galère
    le debug avec juste un code err 500 sans no de ligne !!!!
    à poursuivre sans en abuser

  4. Ebras dit :

    Bonjour à tous,

    Merci pour cet article. Je le partage immédiatement:-)

    Notre petite société Huile de Code, était spécialiste Java JEE. En 2012 nous avons fait le choix de NodeJS pour tous nos développements. Depuis c’est le bonheur !

    Nous avons testé les 4 frameworks que vous avez cité. Car ils sont les plus visibles sur la toile.
    Cependant ces 4 frameworks ne répondaient pas à toutes nos attentes.

    C’est pour cela que nous avons décidé d’écrire un framework NodeJS : On The Fly Framework.
    OTF² (son diminutif), a été pensé en reprenant les cotés positifs de ces 4 frameworks.
    Il permet par exemple, de développer rapidement une application web sans écrire de code d’accès aux données côté serveur. Il peux être connecté à des Bases de données SQL ou bien NoSQL.

    Je vous invite à le découvrir car il est bien entendu Open Source.

    J’espère que mon post sera publié. Notre société ne se plaçant pas sur le même secteur d’activité que Alioze
    https://github.com/huiledecode/OTF-

  5. sympa l’article, même si de mon parti prit, je préfère un langage full-stack tel que rails 😀

    dans tous les cas, on peut faire tout et n’importe quoi avec n’importe quel langage, l’essentiel est de se sentir à l’aise avec et que cela ne rebute pas de coder tous les jours sur cette techno !

  6. antony dit :

    Je dirais que c’est juste une « mode » de plus. On peut déjà faire tout ça avec des choses plus « basique » coté client. Pour le coté serveur là oui c’est utile. Votre article manque singulièrement de modération dans les propos. Votre article fait plus figure de pub que d’un réel article.
    Perso entre Symphony, Node JS, JQuery, … ça commence à faire beaucoup à apprendre pour au final des fonctionnalités qui finissent par se ressembler et des outils qui finissent tôt ou tard à la poubelle (une fois la mode dépassée et la sortie d’un nouveau produit marketing). Je m’en tiendrais aux basiques pour ma part, ça me suffit largement.

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Vous cherchez une agence de communication digitale ?  Contactez nous
Alioze