Node.js : l’exécution de JavaScript côté serveur permettrait des gains en productivité et en performances
Node.js : l’exécution de JavaScript côté serveur permettrait des gains en productivité et en performances
des entreprises américaines satisfaites de son adoption
Selon plusieurs grandes sociétés américaines, le passage à Node.js sur leurs serveurs aurait permis accroître les performances des applications « backend » et simplifier le développement côté serveur.
À l’occasion d’une conférence Node.js organisée au sein du campus de PayPal, plusieurs entreprises américaines ont exposé sur les gains de performances obtenus suite au passage de la technologie qu’elles utilisaient vers Node.js.
La première d’entre elles est PayPal, qui avait dévoilé en décembre 2013 les résultats des travaux menés pour migrer ses applications de Java vers Node.js. En plus des gains de performances, PayPal avait vanté le gain de productivité, car toutes les piles de ses services reposaient désormais sur un seul langage : JavaScript. Et donc, une seule compétence.
Avant la fin de cette année, PayPal compte migrer toutes ses applications Web orientées client vers Node.js.
PayPal a été suivi par le service de Streaming Netflix, qui compte également déplacer son site Web de Java vers Node.js. L’entreprise a commencé avec les tests d’une solution Node.js et espère que celle-ci permettra un rendu plus rapide des pages. Elle se félicite déjà du gain en productivité : « Nous sommes habitués à travailler avec JavaScript le long de la journée. Pendant les six mois de travaille avec Node.js, Netflix a enregistré un gain important en productivité des développeurs », a déclaré Alex Liu, développeur Node.js chez Netflix.
Le site de ventre groupé Groupon a déclaré avoir migré son application côté serveur construite avec le framework Ruby on Rails vers Node.js. Cela aurait permis une réduction de 50 % du temps de chargement des pages et le même niveau de trafic que le logiciel serveur Ruby on Rails, mais avec, cependant, moins de ressources matérielles.
D’autres entreprises comme Yahoo, ou encore le géant de la distribution américaine Walmart ont également fait part des retombés obtenues avec Node.js.
Pour rappel, Node.js est un framework événementiel JavaScript, qui repose sur le moteur JavaScript V8 de Chrome. Node.js utilise un modèle événementiel I/O non bloquant, ce qui le rend idéal pour les applications qui s’exécutent en temps réel au travers des dispositifs distribués.
Pour faciliter le développement avec Node.js, PayPal a publié récemment Kraken, un framework sécurisé et évolutif, pour la création d’applications de qualité commerciale avec Node.js. Kraken est disponible en open source.
De son coté, Red Had a travaillé sur le projet Nodyn, qui vise à porter Node.js sur la machine virtuelle, afin de permettre une meilleure intégration entre les applications Java et Node.js
:fleche: Télécharger Kraken
:fleche: Télécharger Nodyn
Source : Les slides de la conférence, Paypal, Groupon
Et vous ?
:fleche: Utilisez-vous Node.js ? Que pensez-vous de ses performances et déclarations de ces entreprises ?
Révélation de l'année 2013
Pour ma part j'ai découvert Nodejs l'an dernier et c'est un réel changement positif qui s'est opéré pour moi ou les personnes qui m'entour.
Je travail sur des applications initialement écrites en php (symfony2) avec une quantité innombrable d'appels ajax...
Aujourd'hui je remplace la quasi totalité de ces appels par des événements gérés par Nodejs et Socket.io c'est un vrai bonheur au niveau réactivité côté client et le serveur me remercie chaque jour :)
J'imagine les gains constatés par ses sociétés sur des applications aussi riches que lourdes...
Node.js un pétard mouillé ?
Je m'étonne fortement de l'engouement aujourd'hui autour de Node.js. C'est la grande mode tout le monde ne parle plus que de ça, c'est le langage qui permet de tout faire plus rapidement, plus facilement et passionne toute la communauté open source (ou presque). On lit de plus en plus que Java est un gros dinosaure qu'il faut abandonner car jugé trop lourd, trop complexe. Java fêtera ses 20 ans en 2015. Bon anniversaire ! :)
Node.js est basé sur Javascript langage que personnellement je trouve assez mal foutu disons surtout qu'il n'a pas évolué comme il aurait du au fil des années, il a bientôt 20 ans lui aussi. Javascript ne gère pas de package comme en java ou c#, il n'est pas vraiment objet, ne gère pas les annotations comme en java ou python. Javascript dont le nom est plus proche de "script" que java n'est donc pas très à l'aise pour développer de grosses applications. Disons qu'il traîne un lourd héritage de compatibilité de navigateur. Pour preuve Google aimerait le supplanter pour son prometteur Dart.
Node.js langage encore très jeune (la version 1.0 n'est toujours pas disponible) et immature est basé sur le langage javascript (mais pas compatible à 100% avec lui) impose un modèle de programmation 100 % asynchrone mono thread. Avez vous déja essayé de développer une lourde application 100% en asynchronisme ? Tous les appels doivent etre asynchrone avec un paramètre callback (méthode qui sera rappelé à la fin de l'exécution). L'apprentissage est loin d'être simple. Essayer un peu et vous regretterez vite d'avoir lâché votre langage objet et votre framework préféré.
Alors oui effectivement node.js est probablement plus rapide pour gérer un "front end" web pour renvoyer des pages web et exécuter quelques processus simples. Mais une application complète ? Noooon !
Et d'ailleurs l'argument de dire que node.js bat java en terme de performance pure est faux car java lui aussi peut gèrer des requêtes avec un modèle asynchrone comme Vert.x. Voir le lien : http://www.cubrid.org/blog/dev-platf...n-with-nodejs/
Le problème d'une langage comme java c'est qu'il possède aujourd'hui tellement de framework qu'on peut vite faire les mauvais choix et comme node.js n'en possède aujourd'hui aucun (pas de gestion ORM) on ne peut se tromper de framework !
Node.js propose de très nombreuses librairies mais peu sont matures et bien documentées. NPM qui permet de gèrer les téléchargements des packages nécessaires à votre application Node.Js est loin derrière Maven en terme de possibilité et de souplesse. La encore on peut invoquer le manque total de maturité.
Avec Node.js j'ai l'impression de développer comme il y a 10 ans en java avec JDBC en direct en codant à la main toutes les requètes SQL pour sauver mes données en base. Je n'appelle pas cela du progrès mais plutôt de la nostalgie... ;-)