Si on doit apprendre une technologie, il faut apprendre NodeJS non ? ![]()
Avec cette technologie, on peut travailler en JS/TS et donc utiliser le même langage pour le back-end, le front-end et même pour le mobile !
C'est la technologie ultime non ? Je cherche mais je n'arrive pas à trouver de défaut à NodeJS.
Il y a des entreprises énormes qui l'utilisent, c'est ultra performant et ça scale super bien.
Même pour les grosses tâches qui consomment beaucoup de ressources, on peut utiliser des worker threads. Tout y est.
En gros pour une entreprise, le meilleur choix en 2023, c'est NodeJS non ? Surtout quand on sait que tous les développeurs peuvent comprendre et travailler sur le front-end, le back-end et sur le mobile avec la même technologie et le même langage ? ![]()
Le 28 mars 2023 à 00:34:30 :
Si on doit apprendre une technologie, il faut apprendre NodeJS non ?
Avec cette technologie, on peut travailler en JS/TS et donc utiliser le même langage pour le back-end, le front-end et même pour le mobile !C'est la technologie ultime non ? Je cherche mais je n'arrive pas à trouver de défaut à NodeJS.
Il y a des entreprises énormes qui l'utilisent, c'est ultra performant et ça scale super bien.
Même pour les grosses tâches qui consomment beaucoup de ressources, on peut utiliser des worker threads. Tout y est.En gros pour une entreprise, le meilleur choix en 2023, c'est NodeJS non ? Surtout quand on sait que tous les développeurs peuvent comprendre et travailler sur le front-end, le back-end et sur le mobile avec la même technologie et le même langage ?
IMHO, si tu sais bien utiliser Node.js et son écosystème, c'est une bonne technologie pour une nouvelle entreprise oui.
Cependant ça demande pas mal d'expertise, comprendre le flux d'exécution n'est pas évident, sa nature minimaliste t'impose d'utiliser beaucoup de package de la communauté et c'est pas toujours évident niveau sécurité/mis à jour.
TS c'est bien, mais ça demande aussi une expertise supplémentaire pour un gros projet et une étape en plus qui peut ne pas être évidente pour des gros projets. (lent)
En fonction de ce que tu cherches à faire, si tu veux davantage de performances tu dois certainement préférer l'écosystème issue de Golang et ou C#/Java.
L'un des avantage de Node.js c'est d'avoir un langage uniforme mais sur des projets de bonne tailles tu auras de toutes façon beaucoup de mondes et du coup plusieurs langages c'est pas trop grave. ![]()
Bun.sh et Deno.land ont mit un coup de pied dans l'écosystème et forceront Node.js à suivre niveau performances, d'ici quelques temps on devrait pouvoir voir des x2-4 pour des serveurs webs et du coup un alignement avec les performances de Java/C#. (ou très proche)
D'une manière générale, depuis quelques temps Node.js change légèrement de philosophie et sort un peu de ce côté minimalise, avec davantage de module natif, sur le long terme c'est bien pour l'écosystème.
Perso, quand tu lances ta boite, ça dépendra surtout des personnes qui pourront travailler sur le projet (on parle du web) et dans ce cas, on s'en fiche un peu que ce soit Node ou autre chose, on voit bien que parmi les grosses boites il y a de tout, donc avec n'importe quoi tu peux faire n'importe quoi, avec des avantages/défauts qu'il faut comprendre pour pas se faire avoir dans certains "edge case"
Le plus gros avantage c'est probablement de pouvoir itérer rapidement sur ton projet comparé à d'autres écosystèmes.
Si tu fais une tâche CPU bound tu bloques toute la event loop, et je serais pas étonné que bcp de devs qui utilisent nodeJS ne le savent pas.
Donc non c'est pas bullet proof.
Si la problématique c'est faire du code concurrent/parallèle, y a des langages plus adaptés
Le 28 mars 2023 à 01:36:32 :
Pour faire quoi ?
Pour tout j'ai l'impression.
On peut créer une boîte et avoir une stack Angular, React, NextJS, etc... pour le front, du NestJS pour le back et du React Native pour l'app.
C'est ça qui est fou. ![]()
Le 28 mars 2023 à 09:37:18 :
Le 28 mars 2023 à 00:34:30 :
Si on doit apprendre une technologie, il faut apprendre NodeJS non ?
Avec cette technologie, on peut travailler en JS/TS et donc utiliser le même langage pour le back-end, le front-end et même pour le mobile !C'est la technologie ultime non ? Je cherche mais je n'arrive pas à trouver de défaut à NodeJS.
Il y a des entreprises énormes qui l'utilisent, c'est ultra performant et ça scale super bien.
Même pour les grosses tâches qui consomment beaucoup de ressources, on peut utiliser des worker threads. Tout y est.En gros pour une entreprise, le meilleur choix en 2023, c'est NodeJS non ? Surtout quand on sait que tous les développeurs peuvent comprendre et travailler sur le front-end, le back-end et sur le mobile avec la même technologie et le même langage ?
IMHO, si tu sais bien utiliser Node.js et son écosystème, c'est une bonne technologie pour une nouvelle entreprise oui.
Cependant ça demande pas mal d'expertise, comprendre le flux d'exécution n'est pas évident, sa nature minimaliste t'impose d'utiliser beaucoup de package de la communauté et c'est pas toujours évident niveau sécurité/mis à jour.
TS c'est bien, mais ça demande aussi une expertise supplémentaire pour un gros projet et une étape en plus qui peut ne pas être évidente pour des gros projets. (lent)En fonction de ce que tu cherches à faire, si tu veux davantage de performances tu dois certainement préférer l'écosystème issue de Golang et ou C#/Java.
L'un des avantage de Node.js c'est d'avoir un langage uniforme mais sur des projets de bonne tailles tu auras de toutes façon beaucoup de mondes et du coup plusieurs langages c'est pas trop grave.
Bun.sh et Deno.land ont mit un coup de pied dans l'écosystème et forceront Node.js à suivre niveau performances, d'ici quelques temps on devrait pouvoir voir des x2-4 pour des serveurs webs et du coup un alignement avec les performances de Java/C#. (ou très proche)
D'une manière générale, depuis quelques temps Node.js change légèrement de philosophie et sort un peu de ce côté minimalise, avec davantage de module natif, sur le long terme c'est bien pour l'écosystème.Perso, quand tu lances ta boite, ça dépendra surtout des personnes qui pourront travailler sur le projet (on parle du web) et dans ce cas, on s'en fiche un peu que ce soit Node ou autre chose, on voit bien que parmi les grosses boites il y a de tout, donc avec n'importe quoi tu peux faire n'importe quoi, avec des avantages/défauts qu'il faut comprendre pour pas se faire avoir dans certains "edge case"
Le plus gros avantage c'est probablement de pouvoir itérer rapidement sur ton projet comparé à d'autres écosystèmes.
Oui, et c'est un énorme avantage. Tu peux monter une entreprise experte sur cette technologie, et toute tes équipes peuvent devenir expertes et se comprendre les unes les autres.
De plus, cela facilite sans doute le recrutement vu que JS/TS est un peu une lingua/franca maintenant.
Le 28 mars 2023 à 11:45:55 :
Si tu fais une tâche CPU bound tu bloques toute la event loop, et je serais pas étonné que bcp de devs qui utilisent nodeJS ne le savent pas.Donc non c'est pas bullet proof.
Si la problématique c'est faire du code concurrent/parallèle, y a des langages plus adaptés
Ce n'est plus vrai depuis que NodeJS a introduit les worker threads. Ils permettent de décharger les grosses tâches et de les traiter en-dehors de l'event loop.
Et aussi, avec le moteur V8, NodeJS est très performant (pour un langage comme JavaScript interprété c'est assez fou).
En golang tu te poses pas la question de savoir si ta tâche est cpu ou IO bound avec le système de goroutines, c'est ça la différence. T'es pas là à te dire "ah oui c'est CPU bound donc je dois utiliser un worker thread".
Vouloir utiliser nodeJS juste car "le frontend c'est du JS donc autant faire le backend en JS" c'est pas un argument convainquant pour moi
Genre le créateur de nodeJS lui même a posté qqpart qu'il vaut probablement mieux utiliser golang de nos jours (pour faire du code concurrent), paye ta "techno parfaite" x)
Si je veux faire un app web, android et ios je fais du react/ionic car c'est le moyen le plus simple de développer une app sur toutes les plateformes à ma connaissance.
Si je veux faire simplement du web je préfère un gros framework bien mature comme Symfony car t'as des composants pour tout, c'est bien plus complet que les frameworks JS et généralement plus productif.
En fin de compte le plus gros défaut de NodeJs c'est l'immaturité et surtout le manque d'unité de l'écosystème. Ça part dans tous les sens.
Flemme de faire un pavé mais NodeJS et JS sont très sous côté.
Pendant des années je voyais le js de haut en me basant sur les memes et le fait que je bosse en C#/C++.
Puis au final j'ai testé une fois et en fait c'est une tuerie. Ok c'est un langage à "quirks", mais cette facette est largement exagérée.
Au final ce que je vois désormais c'est un langage qui permet de faire relativement facilement des applications sur n'importe quelle plateforme performantes, et ça c'est unique.
Pas nécessairement la niche à se mettre professionnellement in despite of
Le 28 mars 2023 à 00:34:30 :
Si on doit apprendre une technologie, il faut apprendre NodeJS non ?
Avec cette technologie, on peut travailler en JS/TS et donc utiliser le même langage pour le back-end, le front-end et même pour le mobile !C'est la technologie ultime non ? Je cherche mais je n'arrive pas à trouver de défaut à NodeJS.
Il y a des entreprises énormes qui l'utilisent, c'est ultra performant et ça scale super bien.
Même pour les grosses tâches qui consomment beaucoup de ressources, on peut utiliser des worker threads. Tout y est.En gros pour une entreprise, le meilleur choix en 2023, c'est NodeJS non ? Surtout quand on sait que tous les développeurs peuvent comprendre et travailler sur le front-end, le back-end et sur le mobile avec la même technologie et le même langage ?
Y'a un outil encore mieux que NodeJS. C'est tes 10 doigts. Avec ac tu peux TOU FAIRE !
Est-ce pour autant qu'on trouve des gens spécialisé en TOUT !!
ne serait-ce que dans le batiments par exemple. Est-ce qu'un gars qui fait TOUT (plomberie, maconnerie, electricité, menuiserie, etc...) sera aussi rapide et bon qu'un gars qui se spécialise ?
Ensuite, penses-tu que le spécialiste va avoir les mêmes outils que le gars qui fait TOUT (mais mal). La non plus, le gars qui fait tout va avoir du petit matos non spécialisé mais plus polyvalent. Et avec cet outillage il perdra la encore de la production face au spécialiste.
La raisonnement avec JS qu'on a aujourd'hui est exactement le même ![]()
Il est vrai qu'il y a une "hype" légèrement malsaine quant à l'écosystème JS depuis quelques année et surtout à travers les réseaux du genre Twitter, et c'est mauvais de vouloir utiliser cette technologie pour tout, oui.
Et c'est sans parler de la "JS fatigue" qu'on retrouve avec toutes ses stacks différentes et personnalisé à cause de la nature minimaliste originelle de Node.js, qui voulait prendre le moins de responsabilité et en laissé au maximum au client.
Cependant depuis quelques années, les choses changent de ce côté la, en bien.
Quant à l'aspect minimaliste des librairies web, ça fait quelques années maintenant qu'on à des frameworks full-feature à la Symfony dans l'écosystème (Adonis par exemple), et pas des choses instables, et qui ont vraisemblablement de meilleur performances que les équivalents PHP, par exemple (TechEmpower).
Comparé la "polyvalence" d'un écosystème avec le fait d'avoir un "homme à tout faire" contre "un spécialiste" c'est un peu abusé, parce qu'on à bel et bien un spécialiste ici, pour le web, avec une architecture efficiente pour ce genre de tâche (inspiré par NGinx), et à côté tu as accès a des facilités pour compléter tes outils en utilisant aussi cet écosystème. Tout est open source et sans aucun contrôle d'une boite en particulier, et il y a une tonnes de personnes derrière pour améliorer le projet et la sécurité avec.
Ce que moi j'essaye de dire c'est que oui, j'irais pas faire des GUI/CLI/Jeux en Node de 0, mais par contre si j'ai un/des projets web et une team Node sous le coude, et que j'ai besoin de quelque chose en plus du genre un GUI pour augmenter mon offre, je suis mieux à itérer rapidement avec cet écosystème et la même team, et découvrir les besoins de dit outils rapidement, pour pourquoi pas ensuite changer d'écosystème au besoin.
Tous les outils ont des avantages et des défauts, pour moi Node.js ça permet d'itérer vite, d'avoir un écosystème vaste, de trouver rapidement des solutions, d'avoir des performances legit pour un langage de script et d'être totalement open source. ![]()
Tu peut utilisé c# aussi pour le back et le front, et je parle pas d'un rendu serveur mais bien navigateur blazor wasm
Le 31 mars 2023 à 18:36:58 :
Tu peut utilisé c# aussi pour le back et le front, et je parle pas d'un rendu serveur mais bien navigateur blazor wasm
Non c'est dégueulasse
Faut jamais oublier que des technos et des framework on en voit passer, on aime certains on déteste d'autres, mais au final la seule chose qui importe c'est la performance du produit final. Et blazor c'est de la merde
Tu parles de performance et tu me dit que blazor c'est de la merde??
Le 02 avril 2023 à 19:04:33 :
Tu parles de performance et tu me dit que blazor c'est de la merde??
Oui oui je te parle de performance et je te confirme bien que blazor c'est de la merde 
Pas la peine de t'égarer, que ce soit Server ou Wasm, c'est de la merde. Et même United ça sera un joli sparadrap sur une encore plus grosse merde.
Ceci étant dit, je suis vraiment intéressé que tu me prouves le contraire
Pour ceux qui veulent comparer Blazor a d'autres options connu 
Le 02 avril 2023 à 20:33:21 :
Pour ceux qui veulent comparer Blazor a d'autres options connu
Et encore, ça reste acceptable pour la plupart des utilisations.
Ce qui est inacceptable par contre c'est la taille du payload en wasm et le socket SignalR individuel en server 
Le 02 avril 2023 à 21:08:21 :
Le 02 avril 2023 à 20:33:21 :
Pour ceux qui veulent comparer Blazor a d'autres options connuEt encore, ça reste acceptable pour la plupart des utilisations.
Ce qui est inacceptable par contre c'est la taille du payload en wasm et le socket SignalR individuel en server
Mon principal reproche à blazor c'est son p***** de premier chargement, aucun framework front n'est aussi long à charger.
Pour node.js c'est sympa, mais si tu veux faire du parallélisme c'est galère, les perfs sont un peu en dessous de la concurrence, t'as tellement de possibilité que d'un projet à un autre ça sera jamais la même chose, la taille des packages c'est vraiment n'importe quoi, au finale t'es souvent plus productif sur les autres langages sur des apps moyennes/larges que sur du js/ts.
L'avantage c'est qu'en utilisant certains frameworks tu peux scaffold une solution rapidement, tu peux chier un poc très rapidement, tu trouveras toujours un mec qui a essayé de faire la même chose.
Mais je crains que nodejs deviennent un peu comme le php niveau maintenabilité, des mecs sans réel expérience qui te pond un code immonde, et une dizaine d'autre type qui ont fait la même chose par la suite, et toi qui a que tes yeux pour pleurer pour maintenir ou mettre à jour ça.
Le 02 avril 2023 à 19:04:33 :
Tu parles de performance et tu me dit que blazor c'est de la merde??
Bon alors les arguments ils sont où là 
Le 03 avril 2023 à 10:00:59 :
Le 02 avril 2023 à 21:08:21 :
Le 02 avril 2023 à 20:33:21 :
Pour ceux qui veulent comparer Blazor a d'autres options connuEt encore, ça reste acceptable pour la plupart des utilisations.
Ce qui est inacceptable par contre c'est la taille du payload en wasm et le socket SignalR individuel en serverMon principal reproche à blazor c'est son p***** de premier chargement, aucun framework front n'est aussi long à charger.
Pour node.js c'est sympa, mais si tu veux faire du parallélisme c'est galère, les perfs sont un peu en dessous de la concurrence, t'as tellement de possibilité que d'un projet à un autre ça sera jamais la même chose, la taille des packages c'est vraiment n'importe quoi, au finale t'es souvent plus productif sur les autres langages sur des apps moyennes/larges que sur du js/ts.
L'avantage c'est qu'en utilisant certains frameworks tu peux scaffold une solution rapidement, tu peux chier un poc très rapidement, tu trouveras toujours un mec qui a essayé de faire la même chose.Mais je crains que nodejs deviennent un peu comme le php niveau maintenabilité, des mecs sans réel expérience qui te pond un code immonde, et une dizaine d'autre type qui ont fait la même chose par la suite, et toi qui a que tes yeux pour pleurer pour maintenir ou mettre à jour ça.
C'est ce que j'expliquais plus haut, je comprends tout à fait la complainte à la philosophie minimaliste de Node.js (Même s'il l'est de moins en moins) mais je vois pas ça comme un défaut, le soucis c'est qu'il faut une grosse commu' pour permettre de faire vivre les plus importants modules (drivers pour DB, etc) et c'est justement le cas.
Node.js évolue plutôt vite et c'est bien à mon sens, et si c'est le "code de merde" qui pose soucis, ça semble surtout être un side-effect de sa popularité et on y peut rien, mais quand tu montes un projet dessus, tu bosses soit avec tes propres lib basé sur des modules "bas niveau", soit avec des libs mature et maintenu, donc je vois pas trop le rapport. ![]()
Quant aux performances, honnêtement, de tous les langages de scripting interprété, Node.js est probablement le plus performant, et même sans avoir a "tweak" pleins de choses dedans, et les process ou workers font très bien l'affaire, dans des cas d'usages différents pour du multithreading, donc je vois pas ou est le soucis la dedans, j'aimerais bien en savoir plus sur ton expérience perso' sur ce sujet spécifiquement.