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

Le , par Hinault Romaric, Responsable .NET
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 ?


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de Paul TOTH 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.
Avatar de LSMetag LSMetag - Membre expert https://www.developpez.com
le 02/12/2013 à 8:08
Qu'en pensez-vous ? JavaScript avec Node.js est-il une meilleure solution pour les services Web que Java ?

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...

Et bien sûr, il y a la question des coûts. Javascript et NodeJS sont totalement gratuits.

Donc bonne initiative de Paypal. Par contre, Oracle devrait commencer à se poser des questions... Si des grands comptes se mettent à abandonner Java, c'est qu'il y a un pb...
Avatar de _skip _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...
Avatar de Washmid Washmid - Membre actif 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.
Avatar de Voïvode 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....=java&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.
Avatar de fr1man fr1man - Membre expert 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é.
Avatar de Saverok Saverok - Expert éminent https://www.developpez.com
le 02/12/2013 à 10:36
Mettons face à face un 4x4 baroudeur et une micro citadine
Je vais en en montagne en traversant des chemins de terre tout pourris
j'arrive 5x plus vite à ma destination avec le 4x4
Conclusion : le 4x4 est meilleur et je vais équiper toute la flotte de mon entreprise avec des 4x4!!
Avatar de koyosama koyosama - Membre averti https://www.developpez.com
le 02/12/2013 à 11:16
Je vois les tests de performances mais pas les tests de sécurité. J'ai envie dire que la vitesse voilà, elle me semble secondaire comparé à la sécurité.
Avatar de Markand Markand - Membre actif 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.
Avatar de FelipeVervena FelipeVervena - En attente de confirmation mail https://www.developpez.com
le 02/12/2013 à 11:34
La majorité des pages de Paypal sont servies en CGI : autant utiliser C++ ou C pour une performance maximale plutôt que JS ou Java. Il serait temps de revenir aux sources encore faut-il trouver les compétences.
Offres d'emploi IT
Architecte sécurité des systèmes d'information embarqués H/F
Safran - Ile de France - 100 rue de Paris 91300 MASSY
Consultant sap finance/controlling H/F
Safran - Ile de France - Vélizy-Villacoublay (78140)
Architecte systèmes études & scientifiques H/F
Safran - Ile de France - Vélizy-Villacoublay (78140)

Voir plus d'offres Voir la carte des offres IT
Contacter le responsable de la rubrique Accueil