Developpez.com

Le Club des Développeurs et IT Pro

Un contributeur de Node.js délaisse le framwork au profit de Go

Une action qui pourrait amorcer une migration vers le langage de Google ?

Le 2014-07-17 05:46:42, par Arsene Newman, Expert éminent sénior
« Je me bats avec Node.js en production depuis suffisamment longtemps pour ne plus aimer travailler avec, malheureusement, donc en cet instant, ceci est mon adieu formel ! Et plus important encore, j’ai besoin de mainteneurs. » C’est la déclaration d’un développeur ayant participé activement au projet Node.js, qui est venu ébranler la communauté du célèbre framework JavaScript.

Répondant au nom de TJ Holowaychuk, ce développeur explique ce choix par un constat simple : « Node.js n’est plus adapté à mes besoins en matière de développement de logiciels ». À la place, TJ se tourne dorénavant vers un langage informatique en plein essor : Go.

Pourquoi migrer vers Go ? L’explication tient en quelques mots pour le développeur : « Je suis frustré par la direction que prend Node.js, direction qui favorise la performance par rapport à la facilité d’utilisation et à la robustesse ». De l’autre côté, Go « est robuste, offre de meilleures performances, est facile à maintenir et dispose d’une meilleure couverture des tests puisque le code synchrone est généralement plus agréable et facile à utiliser. »

Pour autant, le développeur ne va pas jusqu’à dire que Go est le saint Graal, loin de là même, car le langage soutenu par Google comporte lui aussi des imperfections. Néanmoins, il représente une excellente solution et affiche une grande maturité pour son jeune âge (comparable à celui de Node.js) selon TJ.

Plus particulièrement et dans le cadre d’un travail distribué, le développeur reproche à Node.js certaines imperfections et bizarreries, comme :
  • la duplication des callbacks ;
  • la perte des callbacks dans certains cas ;
  • l’existence des erreurs dites out-of-band ;
  • les émetteurs peuvent aboutir à de multiples erreurs ;
  • le manque de clarté de l’erreur de type « événement manquant » ;
  • le flou entourant le recours aux gestionnaires d’erreurs.


Ceci étant dit, TJ espère que les développeurs en charge de la maintenance du framework concentreront leurs efforts sur la résolution de ces imperfections maintes fois signalées par les utilisateurs, sur la résolution d’erreurs déclarées depuis plusieurs années ou encore sur l’amélioration de la robustesse du framework qui peut se faire en grande partie par l’adoption des generators. Sans cela, Node.js sera condamné à perdre de sa pertinence malgré le nombre important de professionnels l’ayant adopté.

Au final, le développeur garde espoir que Node.js retrouve le bon chemin, ce qui pourrait se faire grâce à la collaboration de l’éditeur StrongLoop. En attendant, son constat pourrait bien amorcer la migration de nombreux développeurs vers le langage Go, compte tenu des critiques émises et de l’utilisation de Node.js en dehors de la sphère du développement web.

Source : blog de Holowaychuk

Et vous ?

Pensez-vous que l’on pourrait assister à une migration des développeurs vers le langage Go ? Pourquoi ?
  Discussion forum
17 commentaires
  • SylvainPV
    Rédacteur/Modérateur
    Envoyé par phmatray
    Un contributeur qui fuit au lieu de contribuer...
    Bel esprit.
    Je trouve ça vraiment mal vu de venir le critiquer alors qu'il a plusieurs fois contribué de manière pertinente au projet : https://github.com/joyent/node/commi...or=visionmedia
    Chacun est libre de faire ses propres choix et d'exposer son opinion. On devrait plutôt le remercier pour le travail qu'il a accompli sur Node.
  • BlueScreenJunky
    Membre habitué
    Envoyé par phmatray
    Un contributeur qui fuit au lieu de contribuer...
    Bel esprit.
    Ben pour le coup je ne trouve pas que ce soit une mauvaise chose. C'est un contributeur, pas un salarié (c'est ça la magie de l'Open Souce), donc rien ne le lie au projet, et s'il estime que Go répond mieux à ses besoins que Node.js je trouve que c'est une attitude plus saine de changer d'outil que de s'obstiner sur un outil qui ne lui convient qu'à moitié sous prétexte que "j'ai contribué au projet donc je me sens obligé de m'en servir".
    Qui sait, peut-être qu'il finira par contribuer à Go ?

    PS : Pour ma part je n'utilise ni l'un ni l'autre, mais ça n'ébranle aucune communauté... J'ai l'impression que tout le monde s'en moque de mon avis
  • algsu
    Candidat au Club
    Un contributeur qui fuit au lieu de contribuer...
    Bel esprit.
    Cette remarque cynique (et déplacée) aurait peut-être sa place si l'homme en question était un contributeur lambda frustré. Le fait que ce soit l'un contributeur majeur (cf son github) de l'écosystème Node.js pousse à se poser quelques questions. Je trouve ça dommage que l'article passe sous silence que ce soit à lui qu'on doit quelques perles comme Express.
    Donc non je ne pense pas que ça soit une "fuite", il fait son choix en connaissance de cause, ensuite libre à chacun d'être d'accord avec lui ou non (de nombreuses compagnies utilisent Node.js en production et ça continuera malgré le départ de TJ Holowaychuck)

    Enfin, je pense qu'on va assister à une migration vers Go, l'une des raisons majeures étant le soutien de Google. Reste à savoir quelle ampleur cela prendra + si ça va durer.
    En tout cas la participation de TJ Holowaychuck est une très bonne nouvelle pour la communauté Go.
  • zckrs
    Candidat au Club
    Why I’m staying with Node

    https://medium.com/@ded/e6fd3be62e34
  • sombre005
    Nouveau membre du Club
    Pensez-vous que l’on pourrait assister à une migration des développeurs vers le langage Go ? Pourquoi ?
    Je ne crois pas qu'il y aura un exode massif des développeurs vers Go. Sauf cas de forces majeurs.

    Si on aime bien un langage, que l'on sait faire des choses avec, pourquoi changer?

    Si le langage que l'on aime bien ne permet pas de faire des choses ou ne fait pas ce que on lui demande de faire, et que les erreurs ne sont pas corrigés ou impossible à contourné, on regarde ailleurs et c'est normal.

    Maintenant parler d'une migration tout du moins une migration massive non.
  • abriotde
    Membre chevronné
    Node.js est intéressant pour 2 choses :
    -> son côté asynchrone. Certes cela complique le debug (tous comme les processus, coeur de Go) mais cela permet de booster les performances et une parallélisation avancée assez simple a développer.
    -> son côté scripts. Cela lui donne une souplesse très appréciable (Comme PHP, Python ou Bash) mais cela nuit aux performances d'ou l'avantage de Go dans ce domaine.

    Alors on peut préférer Go pour son efficacité (tant en développement qu'en performances) mais si l'on a besoin de souplesse ou pour une appli de haut niveau, Node.js garde tout son attrait.

    L'inconvénient de Node.js c'est Javascript non typé... d'ou l'intérêt d'un Node en Dart (dérivé de Javascript)...
  • Envoyé par phmatray
    Le départ TJ Holowaychuk signe à mon sens la fin à moyen terme de Node.js.
    TJ a créé de nombreux modules très utilisés, et tous ont des mainteneurs. Nodejs ne repose pas sur les épaules de quelques personnes. Il est devenu bien trop important pour ça. Il est utilisé et maintenu par des entreprises de taille diverses et s'industrialise.
    Regarde les utilisations de node en entreprise, tu verras quelques poissons d'une taille appréciable :http://www.nodejs.org/industry/.
  • Uther
    Expert éminent sénior
    Envoyé par Traroth2
    Je cherche le rapport entre les fonctionnalités de Node.js et celles de Go. J'ai du mal à comprendre comment remplacer l'un par l'autre...
    Go est un langage qui permet entre autre de faire du web. Il est donc tout a a fait possible de l'utiliser à la place de node.js.

    Envoyé par phmatray
    Un contributeur qui fuit au lieu de contribuer...
    Bel esprit.
    Bien sur qu'il peut contribuer, d'ailleurs c'est ce qu'il a fait pendant longtemps. Mais si les problèmes que tu trouves sont profonds et nécessite une refonte du projet et il faudrait que tu aie un support du reste de la communauté sinon tu n'ira pas plus loin qu'un petit fork qui ne mènera pas a grand chose.

    Envoyé par sombre005
    Si on aime bien un langage, que l'on sait faire des choses avec, pourquoi changer?
    Parce qu'on autre a peut-être des avantages comme permettre de faire les chose, plus facilement, plus surement ou avec de meilleures performances par exemple.
  • ZeRevo
    Membre averti
    Ca fait plusieurs fois qu'il y a des sujets de ce genre sur developpez.com , j'entend par là 'un contributeur' fait ci fait ça.
    Un de perdu 10 de retrouvés! peut⁻être que 10 développeurs intégreront le projet! En soi c'est la vie d'un projet il y a des arrivées et des départs, des avis positifs et négatifs, je ne vois pas en quoi ça demande de crée un post à chaque événement sur un projet sinon on pas fini!
  • Paleo
    Membre éclairé
    Envoyé par abriotde
    L'inconvénient de Node.js c'est Javascript non typé... d'ou l'intérêt d'un Node en Dart (dérivé de Javascript)...
    Ou bien TypeScript sur Node.js. On perd alors le "côté scripts" mais à mon sens ce n'est pas un défaut.