Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

PayPal abandonne Java pour JavaScript
Node.js a permis un gain important en performance et en temps à l'entreprise

Le , par Hinault Romaric

4PARTAGES

9  2 
JavaScript est très critiqué par certains pour ses faiblesses. Pourtant, au fil du temps, le langage continue à jouir d’une grande popularité sur le Web.

PayPal, le service de paiement en ligne, a récemment abandonné le langage Java sur ses serveurs pour Node.js, avec un gain considérable dans le rendu des pages Web.

Jeffe Harrell, directeur de l’ingénierie chez PayPal, décrit dans un billet de blog, les avantages architecturaux de passer de Java à JavaScript. « Imaginez un développeur HTML qui doit demander à un développeur Java de lier la page A et B », explique Harrell.

Devant ce problème, PayPal devait avoir recourt des développeurs ayant des compétences différentes pour l’application Web et l’application serveur. « Chez PayPal, le bloqueur primaire a toujours été la limite artificielle que nous avons établie entre le navigateur et le serveur », explique celui-ci.

Pour surmonter cette situation, PayPal s’est tourné vers Node.js, qui a permis à la fois d’écrire les applications devant s’exécuter dans le navigateur et les applications serveurs en JavaScript. « Il [N.D.L.R : Node.js] unifie nos spécialités pour nous permettre de créer une équipe qui comprend et réagit rapidement aux besoins des utilisateurs à n’importe quel niveau dans la pile de technologie », justifie Jeffe Harrell.

PayPal a dans un premier temps commencé à utiliser Node.js comme plateforme de test avant de passer celui-ci en production cette année.

Avant d’adopter la plateforme de développement JavaScript événementiel, PayPal par mesure de prudence, à développer un équivalent en Java de son application Node.js. Pour l’application Node.js, il a fallu deux ingénieurs et pratiquement la moitié du temps utilisé par cinq personnes pour créer la déclinaison Java. L’application Node.js avait 33 % moins de lignes de code et 44 % moins de fichiers utilisés, que l’application Java.

Les tests de performances en production sur du matériel identique ont montré que l’application Node.js était de 35 % plus rapide que son équivalent Java. S’appuyant sur ces résultats, PayPal envisage de développer toutes ses applications Web orientées client avec Node.js. « Il y a une douzaine d’applications dont la migration a été amorcée », écrit Harrell.



Source : Paypal

Et vous ?

Qu'en pensez-vous ? JavaScript avec Node.js est-il une meilleure solution pour les services Web que Java ?

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de _skip
Expert éminent https://www.developpez.com
Le 02/12/2013 à 9:07
Je veux pas recommencer un énième troll java vs reste du monde mais tout de même :

Citation Envoyé par LSMetag Voir le message

Je n'ai jamais utilisé NodeJS (je ne suis d'ailleurs pas du tout fan de JS), mais j'ai bien constaté que JS était vraiment très performant et léger. J'ai au contraire constaté l'aspect poussif de Java (peut-être OpenJDK est-il meilleur ?), pas simplement niveau développement, exécution et maintenabilité, mais également côté installations serveur. Sans oublier le manque de réactivité d'Oracle niveau support, contrairement à l'époque où Java était chez Sun...
Euh non je pense pas que ce genre de critique se vérifie complètement, les performances de java sont carrément bonnes à l'heure actuelle. On est plus dans les années 90. Et niveau maintenabilité il y a l'avantage amené par l'aspect statique du typage et la compilation, à qualité de code égale, je préfère 100 fois maintenir une app d'un million de lignes en java qu'en javascript.


Et bien sûr, il y a la question des coûts. Javascript et NodeJS sont totalement gratuits.
Faire du java cela coûte quoi? Autant les outils que les frameworks sont gratuits et largement aboutis.

Pour en revenir à l'article, je pense que c'est un peu chaud de tirer des conclusions JS > java ou Java > js. Cela dépend aussi de l'équipe et des stacks qui ont été employées. Si côté java ils ont utilisé du JSF + EJB ou d'autres standards du même style, je veux bien croire qu'ils devaient être plus nombreux pour faire moins. Ca aurait été plus intéressant si on avait su exactement ce qui était comparé ici. Car "java" tout seul pour une application web ça ne nous dit pas grand chose, y'a une infinité de possibilité qui peuvent donner des résultats très variables. Ca peut être des des pommes, des poires, des choux et des patates...
15  2 
Avatar de Voïvode
Membre émérite https://www.developpez.com
Le 02/12/2013 à 9:51
Citation Envoyé par PayPal Engineering Blog
Double the requests per second vs. the Java application. […] our initial performance results were using a single core for the node.js application compared to five cores in Java. We expect to increase this divide further.
Entre les lignes : notre code Java était pourri.

Citation Envoyé par PayPal Engineering Blog
There’s a disclaimer attached to this data: this is with our frameworks and two of our applications.


[Edit]
http://benchmarksgame.alioth.debian....a&data=u64
Java a une performance brute clairement supérieure à JavaScript (et un code source effectivement plus lourd).

PayPal obtient de meilleurs performances avec Node.js parce que :
  1. leur code Java était, au mieux, mal adapté ;
  2. ils se sont retroussés les manches avec Node.js ;
  3. ils veulent faire du buzz trollesque.
11  2 
Avatar de sekaijin
Expert éminent https://www.developpez.com
Le 07/12/2013 à 18:24
Comme toujours on peut voir une "gerre" de chapelle.
pour ma part je regarde la démarche et le résultat m'importe peu.

tout cela pour moi confirme une chose que je pense depuis longtemps. Si on analyse sans apriori les solutions disponible sur le marché et qu'on défini des odjectifs clairs on peu choisir de façon opportune.

la question ici n'est pas de savoir si JS ou C++ ou Java est plus rapide, moins gourmand ou quoi que ce soit de ce genre.

La question est Dans ce contexte précis, avec les compétence présente, qui de Node.js et de Java est le plus adapté pour atteindre les objectif fixés.

Paypal en fonction de CES besoins à choisi Node.js.

cela ne signfi nulement que Node.js est meilleur que qui que ce soit.
cela signifi que du point de vu de Paypal pour ce besoin dans ce contexte avec ces compétences Node.js est apparu comme le plus approprié.

Pour ceux qui disent que C++ ou je ne sais quel langage serait plus rapide
posez vous la question de savoir pourquoi on écrit encore des shell scripts.

pour moi cette affaire devrait servir d'exemple et Paypal serait bien en lumière si elle publiait sa methode de choix.

je lis ici ou là que ce genre de post ou d'annonce vise à tuer Java ou je ne sais quoi d'autre.

moi ce que je lit c'est que Node.js peut être concidéré comme une alternative. non pas un remplaçant mais un outil de plus.

quand rubi à débarqué on a eu droit au même phénomene. Oui techniquement rubi était bien mais avion snous la preuve que pour une grosse app il faisait l'affaire ? puis petit a petit certains ce sont lancé et on monté que c'était viable.
ça n'a tué personne ça a juste ajouter une possibilité de plus.

Node.js est arrivé est de la même façon on a eu quelque dev ici où là mais pour un responssable choisir Node.js n'était pas facile car trop jeune. depuis il a fait petit à petit ces preuves.
aujourd'hui Paypal nous dit "Node.js est vaible pour une applie de grandes ampleur. Nous y croyons, nous avons évalué la solution, et nous l'avons retenus"

Je dis Chouette un outil de plus. lorsque nous aurons un projet pour faire notre choix nous mettrons en face des besoin et du contexte un outils de plus nous aurons donc une chance de plus d'avoir un outil adapté.

qui à parlé de tuer Java ? qui à dis que JS était plus rapide que Java, qui a dit que JS était meilleur ?

A+JYT
8  0 
Avatar de Markand
Membre confirmé https://www.developpez.com
Le 02/12/2013 à 11:21
Personnellement je pense que les graphismes ont du sens.

1. Node.js est un framework javascript extrêmement simple. De base, il fournit qu'une API JavaScript pour coder une application rapidement. On a aucun système de template, de session, d'ORM de base. Ça peut justifier un gain en rapidité.

2. Node.js est codé en C++. Bien que Java soit aussi un langage compilé, le C++ reste plus performant dans certains domaines.

3. Pour avoir travaillé dans une entreprise où on faisait du développement Java. Je peux assurer que ce n'est pas que le code qui fait la rapidité. Pour installer une application web java il faut un conteneur (Tomcat, Glassfish, JBoss, etc.) Ces derniers rajoutent une couche d'exécution supplémentaire ce qui ralentit encore une fois l'application. De plus, la plupart des applications web java inclue des gros framework nécessitant pas mal de ressources (JSF, Primefaces, Hibernate (ou JPA), Spring, etc).

Mais effectivement, il aurait été intéressant de savoir plus en détails ce qui était utilisé côté Java chez PayPal.
10  3 
Avatar de la.lune
Membre chevronné https://www.developpez.com
Le 02/12/2013 à 12:36
Ce que j'aime juste souligner ici avant de dire ce que je pense, c'est que je me demande quand est ce que les gens vont oublier l'idée que java est lent en exécution?

Et comme _skip l'a mentionné le java d'aujourdui n'est pas le java des années 90, le moment où on a voulu créer le concept d’écrire une seule fois et exécuter partout utilisant les machines virtuelles.

Java a pourtant des performances à l’échelle de C/C++. A titre d'info, il faut savoir que ce n'est pas un bon matin que Facebook a décidé de compiler son code php en C++, puis en binaire, mais c'est après des analyses qui sont bien faites sur tous les autres langages.

Je vous invite à lire la présentation "Facebook architecture de 600 millions d'utilisateur", ici, sur la 24e slide, ils ont présenté les résultats des performances entre les langages comme illustre cette image:



Au lieu d'utiliser java qui dépasse de très loin php en performance, ils ont choisit de profiter du petit gain que C++ en a au dessus de java.

Comme vous voyez java est très performant devant ces concurrents sur le web excepté relativement JavaScript qui n'est pas sur la graphe .

J'ai vu un exemple avec de petit portion de code que vous pouvez même tester par ici, un même code qui s’exécute 1 minute 16 secondes en python, et 1 minute 9 secondes en php, et 41 seconde en Perl, s’exécute en seulement 18 seconde en java.

Mais il ne faut pas penser que c'est le seul côté que java gagne en performance, sur script à longue durée, mais c'est plutôt en trafic et en activités que les ingénieurs qui ont conçu Java EE ont fait le grand boulot. Ça ne va pas s'observer en exécuter une requête ou deux, mais quand vous allez exécuter des milliers de requêtes à la fois.

Une seule servlet(java) vivant répond à un millier de requête à la fois, le moment où par exemple php créer un nouveau programme pour chaque requête, étant donné qu'il est basé sur le modèle CGI(Common Gateway Interface). C'est pour cela que beaucoup sites à fort trafic choisissent java vu sa robustesse.

Pour ce qui est Java vs JavaScript côté serveur, d'abord c'est que personne ne peut nier les performance de node et sa légèreté qui sont aussi relatives.

J'aime bien Node.js sur le fait que tu crée ton propre serveur et tu choisit les modules à charger et tu peux choisir les objets que tu veut garder en mémoire tout long de la vie du serveur, car ce qui fait la force d'une plateforme web c'est composants serveurs vivant ou mort sous la décision du développer.

Alors en Java EE, ils ont voulus standardiser les choses et ne pas obliger le développeur à créer ses propres serveurs, mais créer juste les composants et paramétrer leurs cycle de vie.

Ainsi, ce qui fait ce ce n'est pas nous même qui gèrent nos composants mais c'est le serveur(midlware), lui aussi qui s’exécute sur la machine virtuelle java, donc quelques milliseconde en retard et quelques charges en mémoire qui font que JavaScript lui dépasse.

Mais a mon avis, vu que java c'est du compilé contrairement à JavaScript, si on pourrait développer avec comme on développe avec Node.js, mais avec une bonne architecture, java dépasserait bien JavaScript.

Mais tout reste que côté architecture et bonne structure des applications, java ne se compare pas à JavaScript, et Java EE ne se compare pas à Node.js. De même que les framwork et les outils de développement, test, débogage, intégration continue.... Tout cela, doit être pris en compte et là je rejoint ce que _skip a mentionné.
9  2 
Avatar de Gugelhupf
Modérateur https://www.developpez.com
Le 03/12/2013 à 13:12
Citation Envoyé par LSMetag Voir le message
Le problème, c'est que .NET a rattrapé J2EE en la matière, PHP s'en rapproche fortement (avec des frameworks comme Symfony 2 ou Zend et les améliorations (performances, objet,...) des versions 5.xx).
Pour ce qui est de ASP.NET MVC 5 et Symfony2 (tout deux orientés action), j'ai eu l'occasion de pratiquer Symfony2, et ne comparons pas ce qui n'est pas comparable, cela rien n'a voir avec le standard JSF2 (orienté composant) qui conserve une longueur d'avance. Si tu es dans une entreprise qui est à jour, c'est finit l'époque Struts...

Citation Envoyé par LSMetag Voir le message
Java est justement devenu trop mature et rigide, et quand tu as 20/30 ans, t'as pas trop envie d'une femme de 50/60 ans ridée, ménopausée et moins dynamique, qui ne sait pas se lifter aussi bien que Madonna ou Cher.
???
6  0 
Avatar de fr1man
Expert confirmé https://www.developpez.com
Le 02/12/2013 à 10:03
Je rejoins tout à fait _skip.
J'adore ces superbes analyses avec de beaux graphiques pour prouver qu'on a raison, alors qu'on ne sait rien sur la façon dont tout a été développé.
7  2 
Avatar de Gugelhupf
Modérateur https://www.developpez.com
Le 03/12/2013 à 9:52
Citation Envoyé par Pill_S Voir le message
Moi ce que je me demande, avec tous les topics chaque semaine qui cherchent à tuer java, c'est: pourquoi developpez.com cherche à tout prix à faire passer ce qui est clairement l'une des meilleures technos pour la pire de toutes?? qu'est-ce que vous y gagnez? c'est quoi cette volonté de dénigrer ce qui fait vivre une large majorité des développeurs actuellement? et surtout pour faire l'éloge d'un truc tel que node.js...

Pour chaque topic faisant l'éloge de Java, une bonne dizaine sont ouverts pour dire que c'est de la bouze, et que n'importe quoi d'autre est mieux...

C'est avec ce genre d'attitude qu'on va bien finir par éloigner tous les nouveaux de cette techno... et finalement réussir à tuer réellement la communauté et la plateforme!! et tous se retrouver dans la m**** et devoir programmer en javascript partout... c'est dépitant...

Il existe une expression turque qui dit :
meyve veren ağaç taşlanır
...qui signifie en gros : on jette des pierres sur l'arbre qui donne des fruits.
5  0 
Avatar de Paul TOTH
Expert éminent sénior https://www.developpez.com
Le 02/12/2013 à 7:37
Qu'en pensez-vous ? JavaScript avec Node.js est-il une meilleure solution pour les services Web que Java ?

Je ne suis pas fan de Java, mais je pense surtout que l'équipe de développeurs JS de Paypal est plus réactive que l'équipe de développeurs Java, voir plus compétente et là ça fait un grosse différence.

D'autre part, JS a depuis quelques années était l'objet d'un gros travail d'optimisation part plusieurs acteurs, ce qui l'a propulsé vers le haut...Java n'a pas connu cette course à la performance pour autant que je sache. Google a d'ailleurs décidé de créer la machine virtuelle Dalvik pour Android jugeant que celle de Java n'était pas adaptée aux smartphones.

Ceci dit, je n'aime pas Java, mais je n'ai pas que de l'amour pour JS, son modèle objet est des plus casse pied.
6  2 
Avatar de Washmid
Membre averti https://www.developpez.com
Le 02/12/2013 à 9:42
Citation Envoyé par _skip Voir le message
Je veux pas recommencer un énième troll java vs reste du monde mais tout de même :

Euh non je pense pas que ce genre de critique se vérifie complètement, les performances de java sont carrément bonnes à l'heure actuelle. On est plus dans les années 90. Et niveau maintenabilité il y a l'avantage amené par l'aspect statique du typage et la compilation, à qualité de code égale, je préfère 100 fois maintenir une app d'un million de lignes en java qu'en javascript.

Faire du java cela coûte quoi? Autant les outils que les frameworks sont gratuits et largement aboutis.

Pour en revenir à l'article, je pense que c'est un peu chaud de tirer des conclusions JS > java ou Java > js. Cela dépend aussi de l'équipe et des stacks qui ont été employées. Si côté java ils ont utilisé du JSF + EJB ou d'autres standards du même style, je veux bien croire qu'ils devaient être plus nombreux pour faire moins. Ca aurait été plus intéressant si on avait su exactement ce qui était comparé ici. Car "java" tout seul pour une application web ça ne nous dit pas grand chose, y'a une infinité de possibilité qui peuvent donner des résultats très variables. Ca peut être des des pommes, des poires, des choux et des patates...
+1000

Comparer un framework (node.js) à un language (java) c'est sans grande signification.

Et le côté statique permet de faire des choses aussi basiques qu'indispensables comme autoriser le factoring, la navigation dans le code, etc. etc.
4  0