Le framework Node.js tient-il ses promesses ?
Un développeur d'eBay le qualifie de "cancer" et de "désastre de scalabilité"

Le , par Idelways, Expert éminent sénior
Après la période d'effervescence qui a suivi son lancement, le buzz s'est quelque peu tassé autour du framework événementiel Node.js, laissant place aux critiques et aux polémiques.

Et le développeur Ted Dziuba (d’eBay) ne s'est pas gêné. Qualifiant, tour à tour, la librairie serveur JavaScript de « cancer », de « tumeur dans la communauté de la programmation », « d'un désastre de scalabilité sur le point de se produire », et enfin sur la forme « d'une librairie logicielle désagréable » qu'il ne compte jamais utiliser.

Pas l'une des plus polies. La diatribe commence par s’en prendre à Ryan Dahl, l'inventeur de Node.js qui a publié sur Google+ un post qui aurait déclenché cette avalanche de haine envers le phénomène Node.js, soutenu — rappelons-le — par Microsoft, Mozilla et Heroku.

Dziuba reproche à l'inventeur de Node.js de n'avoir tout simplement aucune idée de ce qu'il fait. Le site officiel explique en effet que les développeurs non-experts peuvent créer « des systèmes rapides », car aucune des fonctions Node.js n'effectue « directement » des opérations d'entrées-sorties, et par conséquent « rien ne bloque ».

Ce que Dziuba rejette en bloc en expliquant que toute fonction qui effectue des appels CPU est susceptible de bloquer les autres opérations, prenant à témoin une simple fonction qui calcule la suite de Fibonacci.

Passons les performances déplorables qu'afficherait Node.js sur cette démonstration, il s'attaque ensuite à un autre aspect qui le rebute : « Node puni le développeur, car il désobéit à la philosophie Unix [Unix Way] ».

Il explique en substance qu'en embarquant son propre serveur HTTP (recommandé et supposé être utilisé en production), Node.js prive de la simplicité et prospérité qui découle du respect du principe d'architecture à couplage lâche, facile à maintenir.

Ne mâchant toujours pas ses mots, il explique que ce serait au développeur de configurer « cette orgie de proxy HTTP s’il veut monter un véritable serveur web sur Node.js pour desservir des fichiers statiques, réécrire les liens... », bref, tout ce qu'un serveur web sait faire.

Car, explique-t-il, formel, aucun administrateur système ne s'intéressera en premier à Node.js.

Enfin, il ironise à propos de l'utilisateur du langage JavaScript qui serait « probablement la pire chose qu'un framework côté serveur ferait ». Finissant son exposé par un bout de code qui devrait selon lui faire honte même à Rasmus Lerdorf, l'inventeur de PHP !

Après la levée de boucliers que ce billet a provoquée dans le camp Node.js, il revient expliquer plus sereinement sa position à force de théorèmes et d'équations mathématiques, pour arriver à la conclusion que « Node.js reste un cancer », et « un danger pour les développeurs novices ».

Et vous ?

Avez-vous utilisé Node.js ? Que pensez-vous des critiques de Dziuba ?
Le framework tient-il ses promesses d'après vous ?

Source : Premier billet, deuxième billet


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


 Poster une réponse

Avatar de Teocali Teocali - Membre averti https://www.developpez.com
le 12/10/2011 à 19:59
Je ne connaissais pas Node.JS (a part de nom), et je vais jeter un oeil, mais avec un certain apriori negatif : un framework qui embarque son propre serveur, c'est un peu beaucoup une hérésie pour moi...

Teocali
Avatar de kimjoa kimjoa - Membre confirmé https://www.developpez.com
le 12/10/2011 à 22:14
Que pensez-vous des critique de Dziuba ?

Ce que Dziuba semble rejeter dans son exemple de Fibonacci c'est le coté mono-thread par défaut de nodejs , qui est bloquant.... Pourtant il existe une alternative à savoir webWorker, l’implémentation des Worker en nodejs (sorte de thread).
Il semble en parlé dans son deuxième billet, mais j'ai rien pigé

Le framework tient-il ses promesses d'après vous ?

Ce que j'aime dans nodejs c'est la gestion des sockets, super simple , coté client et serveur avec socketio.

Le coté évènementiel et asynchrone des appels système ou bd est au départ un peu déroutant. Il faut repensé un peu ces façons de faire, tout paralléliser, mais une fois les techniques de base comprise, on si fait, surtout si ça rend le programme plus véloce.
Par exemple, j'ai eu à faire une récupération récursive de l'arborescence d'un dossier, ce qui ce fait très simplement en java ou php , mais qui l'est déjà beaucoup moins en nodejs .... Difficile à expliquer, sans code, disons qu'il fallait jouer avec des piles de fonctions de rappel, et une bonne maîtrise de la porté des variables. Peur ceux que ca intéresse -> http://stackoverflow.com/questions/5...rectory-search

Ce que j'aime aussi dans nodejs c'est le fait que ce soit du javascript. Même si son coté dynamique peux rebuter à juste titre, son coté fonctionnel est vraiment excellent, et avec une bonne librairie, on peux contourné tout les défauts du langage.
De plus l'annonce de Dart par google risque bien de relancer le projet ....

En ce qui concerne la "philosophie Unix " , ça ne me dérange pas, mais je ne peux pas vraiment m’exprimer dessus, n'ayant pas les compétences, même si sans doute il aurait été préférable de laisser le choix ...
Avatar de VividAlex VividAlex - Nouveau Candidat au Club https://www.developpez.com
le 12/10/2011 à 23:54
Dziuba reproche à l'inventeur de Node.js de n'avoir tout simplement aucune idée de ce qu'il fait. Le site officiel explique en effet que les développeurs non-experts peuvent créer « des systèmes rapides », car aucune des fonctions Node.js n'effectue « directement » des opérations d'entrées-sorties, et par conséquent « rien ne bloque ».

Hé oui, c'est pour ça que certaines applications, telles que des services web (autrement appelées APIs par abus de langage), se jettent dessus!

Ce que Dziuba rejette en bloc en expliquant que toute fonction qui effectue des appels CPU est susceptible de bloquer les autres opérations, prenant à témoin une simple fonction qui calcule la suite de Fibonacci.

Ha oui, c'est clair, et quand il s'agit de réaliser une intelligence artificielle avec node.js, c'est encore pire ! Et encore, imagine le calcul du traffic aérien mondial avec ton app node.js !

Autant y a des mecs qui jugent les langages en faisant des benchmark sur des "Hello World" (oui, c'est idiot), autant lui il benchmark sur la panoplie mathématique. Très utile pour faire une webapp qui stream des données...
Chaque langage et architecture a ses forces et faiblesses, mais ça on le sait tous... Sauf lui visiblement.

Passons les performances déplorables qu'afficherait Node.js sur cette démonstration, il s'attaque ensuite à un autre aspect qui le rebute : « Node puni le développeur, car il désobéit à la philosophie Unix [Unix Way] ».Il explique en substance qu'en embarquant son propre serveur HTTP (recommandé et supposé être utilisé en production), Node.js prive de la simplicité et prospérité qui découle du respect du principe d'architecture à couplage lâche, facile à maintenir.

Alors d'un côté on a un serveur node.js écrit avec 20 lignes de codes, et aucun autre software third party, et d'un autre on a un stack applicatif. Et c'est node.js qui amène des problèmes de maintenance ? Et que pense-t-il de la "simplicité" des mise à jours de sécurité/maintenance sur tout le stack, les problèmes de compatibilité entre ces divers éléments, configs à droite à gauche selon les versions...?

Ne machant toujours pas ses mots, il explique que ce serait au développeur de configurer « cette orgie de proxy HTTP s’il veut monter un véritable serveur web sur Node.js pour desservir des fichiers statiques, réécrire les liens... », bref, tout ce qu'un serveur web sait faire. Car, explique-t-il, formel, aucun administrateur système ne s'intéressera en premier à Node.js.

LOL, il a entendu parlé du concept de PAAS ? Faut se mettre au goût du jour, monsieur... les sys-admins d'aujourd'hui ils lèvent des millions pour faire justement ça (Cf. DotCloud avec 10M$, CloudBees avec 10.5M$, Nodejitsu avec 750K$, Joyent avec 15M$, etc). Et ceux qui se font racheter le font pour 212$ million de dollars.

Enfin, il ironise à propos de l'utilisateur du langage JavaScript qui serait « probablement la pire chose qu'un framework côté serveur ferait ». Finissant son exposé par un bout de code qui devrait selon lui faire honte même à Rasmus Lerdorf, l'inventeur de PHP !

Ah ok, alors là il fait d'une pierre deux coups, node.js et php : BOUM !
Et donc c'est quoi le vrai problème dans tout ça ?
A part faire le malin ?

Après la levée de boucliers que ce billet a provoquée dans le camp Node.js, il revient expliquer plus sereinement sa position à force de théorèmes et d'équations mathématiques, pour arriver à la conclusion que « Node.js reste un cancer », et « un danger pour les développeurs novices ».

Il devient plus serein ? Ou il ferme sa *biiiip*, tout en rationalisation ses propos arrogants comme il le peut encore ?

Il rationalise à force de théorèmes et d'équations mathématiques ?

Ca y est, il nous ressort Fibonnacci...

Bref, même conclusion qu'hier : I’ll stick with Javascript/Node.js for the moment, and there will still be plenty of time to adapt to [put hot language/hot topic here], if ever needed!

[Trad. Je reste sur Javasript/Node.js pour le moment, et il sera toujours temps de s'adapter à autre chose si besoin est...]
Avatar de B.AF B.AF - Membre chevronné https://www.developpez.com
le 13/10/2011 à 8:11
Bah sans être aussi violent que lui il a d'accord.

Quite à vouloir faire de la prog événementiel, le faire vite et bien, il y a zmq. c'est différent dans le concept, mais c'est d'un autre niveau...

Pour la vitesse; il a raison : forcémment, plus on prend de raccourcis plus on va vite, après, il faut savoir ceux que l'on a pris, et le raccourci ne sera pas toujours le plus rapide.
Avatar de vintz72 vintz72 - Membre actif https://www.developpez.com
le 13/10/2011 à 9:17
C'est marrant ce sont les même qualificatifs que j'utilise pour JBoss 4 !
Avatar de B.AF B.AF - Membre chevronné https://www.developpez.com
le 13/10/2011 à 9:22
Avatar de abriotde abriotde - Membre éclairé https://www.developpez.com
le 13/10/2011 à 12:49
La critique est normal, constructive. N'y a t'il pas eu un tel tollé pour java et autre consorts au moment ou il commencèrent à émerger.
L'apport de node.js est dans
- un paradigme nouveau et qui plus est très intéressant. Il existe la programmation impérative, fonctionnel, objet, aspect... et celle node.js. Ce paradigme permet de dire tu fait ça et quand tu aura fini ceci mais tu peut tout de suite continuer avec cet autre chose pour le moment. Ce "mais" est totalement inconnu dans les autres langages. Ca c'est Javascript et surtout JQuerry qui l'on inventé.
- Et puis il y a l'innovation côté langage interprété. On est passé du compilé C au pseudo compilé Java puis à l'interprété PHP/Python et voici l'interprété qui se compile en live. Ca c'est le moteur Google V8 qui l'a inventé.
Node.js met en avant ces avantages indéniables et étend leurs domaines d'application.
Avatar de galerien69 galerien69 - Membre éclairé https://www.developpez.com
le 13/10/2011 à 17:44
Comme ca a ete dit ca depend de ce qu'on attend de node.
Mr qui vient d'ebay espere peut etre faire une mega grosse application avec des developpeurs third party (si jpuis dire).

Apres pe qu'avec des bonnes pratiques et un sizing bien choisit node se revele etre un framework adapte.
Pour ma part, je projette mal quel type de projets on pourrait faire de node mais quand je vois des frameworks tels que ext(que je n'aime pas mais passons), je ne doute pas qu'il existe des bonnes pratiques bien rodees pour assurer une qualite de la part des devs et autres.

On dit que php est evil, on dit que js est evil, on dit que node est evil...
Rien ne va plus
Avatar de Seboss Seboss - Membre à l'essai https://www.developpez.com
le 13/10/2011 à 22:33
Bon c'est vrai que le monsieur se paie du bon temps. Mais il faudrait voir à se détendre un peu et à ne pas prendre tout au pied de la lettre.
Les billets de Dziuba sont évidemment des trolls ; ce qu'il faut en retirer c'est que Node JS, contrairement à ce que le buzz peut laisser entendre, n'est pas une silver bullet, un outil à taille unique qui convient à tous les projets.
Dziuba veut seulement que les développeurs fassent appel à la science et à l'esprit critique plutôt qu'à de quelconques effets de mode. On ne peut pas le lui reprocher.
Avatar de ludochm ludochm - Membre du Club https://www.developpez.com
le 19/10/2011 à 12:58
La critique est normal, constructive. N'y a t'il pas eu un tel tollé pour java et autre consorts au moment ou il commencèrent à émerger.


Oui la critique est constructive, mais les afficionados de node le sont moins

L'apport de node.js est dans
- un paradigme nouveau et qui plus est très intéressant. Il existe la programmation impérative, fonctionnel, objet, aspect... et celle node.js. Ce paradigme permet de dire tu fait ça et quand tu aura fini ceci mais tu peut tout de suite continuer avec cet autre chose pour le moment. Ce "mais" est totalement inconnu dans les autres langages. Ca c'est Javascript et surtout JQuerry qui l'on inventé.

Perso je fais ça avec erlang et erlang existe depuis une vingtaine d'années !
Offres d'emploi IT
Ingénieur H/F
Safran - Ile de France - Moissy-Cramayel (77550)
Responsable transverse - engagement métiers H/F
Safran - Ile de France - Corbeil-Essonnes (91100)
Ingénieur développement fpga (traitement vidéo) H/F
Safran - Ile de France - 100 rue de Paris 91300 MASSY

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