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... ;-)
jerome25000 Pourquoi un troll sur Node.js ?
Citation:
Envoyé par
jerome25000
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.
Avant de critiquer, il faut connaitre. Je pense javascript n'est pas du java, python ni du c#, pour avoir assez d'expérience je sais que chaque langages à son paradigme et javascript à le sien. JavaScript n'est pas un langage objet (au sens classe et heritage etc..) mais orienté prototype, ce qui est une approche objet différente de java et cie. Mais pour ça il faudrait encore avoir pratiqué ce langage en le prenant tel qu'il a été concus pas en simulant l'objet tel qu’implémenté dans java et cie.
Pour ce qui est des annotations il y a des solutions regarde ici
Citation:
Envoyé par
jerome25000
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 je dirais à ça que Node.Js n'est pas un langage, je cite wikipedia c'est une plateforme logiciel, donc en auccun cas un framework ni un langage, en plus pour avoir réalisé avec un serveur DNS et un module permetant d'ecrire des kiosques SMS, je ne parle pas ici d'application web (Node.js ne sert pas qu'a ça). Je peux dire qu'il n'est pas 100% asynchrone regarde la documentation.
Citation:
Envoyé par
jerome25000
Alors oui effectivement node.js est probablement plus rapide pour gérer un "front end" web pour renvoyer de 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 probleme c'est pas le langage ni la plateforme mais l'usage qu'on en fait et la compréhension que l'on a de ces dernier. J'ai souligné plus haut que je travaillais avec node.js et que je ne faisais pas d'applications web, pourtant l'usage la plus répandue de node.js c'est de faire des applications web (express, Flatiron, Socket.io et cie).
Ma compréhension de la plateforme me permet de penser qu'une application devrai être événementiel et écoute un port réseau nous pouvons utilisé nodejs ( bien sur pas dans tout les cas), donc pour moi dans les télécoms javascript (via node.js) à autant sa place qu'erlang de par son caractère asynchrone. Là où les services sont derrière des serveurs web (apache, nginx etc..) et progammer en php, perl etc nodejs serais plus adapté. Je dis ca je dis rien.
Citation:
Envoyé par
jerome25000
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 !
Voici un ORM que j'aime bien camintejs, sinon il y en a des tas, il faut connaitre un environnement avant de parler.
Citation:
Envoyé par
jerome25000
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é.
Là encore un point de vu non objectif mais bon c'est ton point de vue.
Citation:
Envoyé par
jerome25000
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... ;-)
tu utilise sublimeText? si oui ne pense tu pas être revenu à il y a 20ans? en passant les heures de gloire de java c'etait il ya 10-15ans donc comprend que les vielle marmites font toujours de bonne sauces.
J'aime pas java (je code avec au boulot), j'aime pas php avec ces bug incompréhensible entre les versions, je dirais rien sur lua, ruby , python, c#(Même si c'est Micro$oft), mais je critique pas car encore faudrait t'il que je trouve quoi dire de non réfutable.
Javascript aujourdh'ui change (ES6), et se rapproche plus du langage objet que de prototype (Même si ça reste de la déclaration de prototype) un petit document sympa sur les classe.
Node.JS est assez mature pour être utilisé en production, il y a des projets visant à integrer nodejs dans java. Pourquoi à ton avis, parce que javascript est un effet de mode qui vient pourrir ta JVM?