14 points par GN⁺ 2023-08-16 | 21 commentaires | Partager sur WhatsApp
  • Examen critique de React, bibliothèque JavaScript largement utilisée pour construire des interfaces utilisateur, et proposition d’alternatives.
  • React est critiqué comme étant dépassé, avec un manque de performances et d’adaptabilité.
  • L’auteur affirme que l’écosystème de React est inutilement vaste et que les React hooks sont désormais dépassés.
  • Il soutient qu’il n’est pas nécessaire de se concentrer sur le rendu et le passage à l’échelle dans le frontend.
  • Il affirme que le server-side rendering n’a plus rien d’unique et que la liaison de données bidirectionnelle n’est pas une mauvaise idée.
  • Il soutient que le styling est plus simple qu’avec React et que les autres frameworks ne sont pas difficiles à apprendre.
  • Il affirme que les alternatives à React ne sont pas simplement « nouvelles et brillantes », mais matures et plus performantes.
  • Il recommande d’essayer d’autres frameworks comme Svelte, Vue, Solid, Fresh, Astro, Preact, Qwik.
  • Son favori personnel est Svelte, qu’il juge plus facile à apprendre et plus performant que React.
  • Svelte est un compilateur : le code inutilisé est supprimé au moment du build, ce qui produit des bundles plus petits.
  • SvelteKit, le méta-framework de Svelte, est varié et puissant, avec prise en charge du statique, du rendu côté serveur et du déploiement en edge.
  • Vue offre de meilleures performances que React et une approche davantage centrée sur l’UI, en utilisant un langage de templates plus proche du HTML natif que JSX.
  • Solid est présenté comme une version plus performante de React, supprimant complexité, problèmes de performances et boilerplate. Il propose son propre méta-framework, SolidStart.
  • Fresh est un framework frontend à rendu côté serveur construit sur Deno, avec une architecture en îlots. Il offre un minimum de JavaScript et un chargement rapide du contenu dynamique.
  • Astro est un générateur de sites statiques haute performance doté de fonctionnalités dynamiques côté serveur. Il n’utilise aucun JavaScript par défaut et est compatible avec divers frameworks frontend.
  • Preact est une version plus légère et plus rapide de React, avec quelques excellentes fonctionnalités que React n’a pas.
  • Qwik adopte une nouvelle approche, avec un code similaire au React en rendu côté serveur, et constitue un bon choix pour les projets très interactifs.
  • Les bibliothèques de composants web comme Lit, Stencil, Polymer sont recommandées pour les projets qui veulent réutiliser les mêmes composants dans plusieurs environnements ou se préparer à un changement de framework.
  • L’auteur suggère que l’industrie technologique pourrait franchir une nouvelle étape dans l’adoption technologique en allant au-delà de React.

21 commentaires

 
linrise 2023-08-17

Cet article semble écrit comme si un cadet impoli disait : « Senior~ maintenant vous ne valez plus grand-chose, alors prenez votre retraite, non ? », ce qui le rend assez dérisoire.

 
moderator 2023-08-17

Je pense que la discussion autour de l’article est en train de s’échauffer.
Merci de consulter la section sur les commentaires dans le guide d’utilisation du site.

Merci de rester aimable et courtois.
Merci de ne pas vous en prendre à l’auteur.
Si vous avez un désaccord, veuillez vous en tenir uniquement à son contenu.

 
cosine20 2023-08-17

Personnellement, je trouve que des langages comme JS ne sont pas vraiment adaptés au développement côté serveur.
Ces derniers temps, il y a certes beaucoup de projets basés sur TS, mais au final le résultat reste du JS... Que ce soit Python ou JavaScript, je n’aime vraiment pas ces langages en tant que tels, mais ils sont beaucoup utilisés, sans doute à cause de leur praticité.
Ça donne un peu l’impression d’une démocratisation des langages.

 
roxie 2023-08-17

Je trouve ça dommage qu’on considère comme allant tellement de soi, et comme si ce n’était pas grand-chose, ce que Vercel a construit au prix d’énormément d’efforts.

 
secret3056 2023-08-16

Quand je repense à l’époque où, à l’école, j’écrivais des servlets infernaux avec un éditeur qui ne signalait même pas les erreurs de syntaxe, je finis par être reconnaissant pour tout, que ce soit React ou Svelte.....

 
bichi 2023-08-16

Quand on essaie diverses choses, on voit bien les avantages de React. Dire que React est bien, que JSX est un point fort, et rejeter systématiquement les avis négatifs sur les hooks donne l’impression d’une religion aveugle.

 
alucard 2023-08-16

J’ai écrit que le point fort n’était pas JSX mais plutôt son « expressivité ».. et en relisant le texte original au sujet des hooks, j’ai constaté qu’il ne critiquait pas le pattern des hooks en lui-même, mais disait simplement que ce n’était plus vraiment un avantage propre à React. À ce niveau-là, on peut être d’accord. C’est la façon dont la traduction était formulée qui m’a induit en erreur.
Du coup, pourriez-vous expliquer plus concrètement quel est selon vous le « point fort décisif » que l’auteur du commentaire a identifié ?

 
bichi 2023-08-16

Vous ne pensez quand même pas que les bibliothèques ou les frameworks n’ont que des avantages et aucun inconvénient, si ? En les utilisant, vous n’avez jamais ressenti des défauts de React ? Vu que vous demandez absolument qu’on écrive ses défauts, on dirait que vous n’en avez jamais remarqué ? Vous savez bien que parler d’avantages et d’inconvénients, ça veut aussi dire qu’il y a des avantages, n’est-ce pas ? Il y a beaucoup d’avantages, mais aussi beaucoup d’inconvénients. Parmi eux, j’ai lu quelque chose hier, mais je ne me souviens plus du lien : dans les server components, on ne peut utiliser le contexte qu’à l’intérieur des server components. Du coup, on ne peut pas utiliser le js-in-css. Je ne l’ai pas testé moi-même, donc je ne peux pas dire que c’est vraiment un défaut, haha. Les hooks ? Moi, je pense vraiment que c’était une idée révolutionnaire. Mais maintenant, haha, il y a les signaux, qui sont plus intelligents et plus pratiques à utiliser que React. C’est aussi mentionné dans le texte.

 
alucard 2023-08-17

Oui haha, bien reçu.

 
cookiet 2023-08-16

Et pendant ce temps, Angular manque toujours à l’appel, snif snif.

 
alucard 2023-08-16

Je ne suis absolument pas d’accord. Dans le cas de JSX, on l’utilise volontairement parce qu’il a des avantages en termes d’expressivité par rapport à HTML.
Et je me demande aussi pourquoi l’opinion générale selon laquelle le data binding bidirectionnel était une mauvaise idée depuis toujours s’est soudainement inversée…
Et qu’est-ce que ça veut dire, un écosystème inutilement vaste ? Et puis les hooks seraient dépassés…
Personnellement, je me demande même si cet article a réellement été écrit par un programmeur.

 
kuroneko 2023-08-16

Il me semble qu’il y a pas mal de points assez convaincants. J’utilise toujours React, mais...

 
[Ce commentaire a été masqué.]
 
beingbook 2023-08-16

Il semble excessif d’affirmer simplement que les performances sont faibles sans expliquer concrètement quels sont les compromis techniques en jeu. Par exemple, les implémentations d’îlots autres que React ne permettent pas des choses comme le chargement basé sur les priorités.

 
laracool 2023-08-16

À moins qu’autre chose n’apparaisse à la place du framework e-gouvernement... React ne peut qu’être puissant en Corée.

 
[Ce commentaire a été masqué.]
 
bohaesoju 2023-08-16

Eh bien… on présente beaucoup trop de bibliothèques comme alternatives à React.
Quand on prend tout en compte de manière globale, il faudrait peut-être plutôt mettre en avant ce qu’elles font mieux que React.

 
tequila 2023-08-16

Vue et Nuxt sont vraiment excellents, mais c’est dommage qu’ils aient une présence aussi limitée en Corée. Quant à Svelte… il est dans une situation où on ne peut même pas vraiment parler de sa place (snif snif)...

 
[Ce commentaire a été masqué.]
 
bichi 2023-08-16

Tellement vrai, 10 000 fois.

 
GN⁺ 2023-08-16
Avis Hacker News
  • Certains développeurs préfèrent le langage de templates de Vue parce qu’il est plus proche du HTML natif que JSX et qu’il permet d’écrire facilement des conditions et des boucles dans les fichiers de template.
  • Pour certains, utiliser des constructions du langage comme filter, map et reduce dans React est plus pratique que de recourir à des contournements.
  • Un développeur partage son expérience d’avoir quitté React pour un frontend en rendu côté serveur avec du vanilla JS, qu’il a trouvé plus simple à maintenir.
  • Certaines personnes jugent les Web Components surestimés, estimant que le DOM fournit déjà un moyen fiable d’intégrer des bibliothèques tierces dans React.
  • La popularité de React est attribuée à son modèle de programmation, et JSX est toujours considéré comme l’une des meilleures façons d’intégrer directement la partie UI d’une application JS à sa partie JS.
  • D’un point de vue business, s’en tenir à un standard de l’industrie comme React facilite le recrutement, donne accès à un écosystème plus vaste et réduit le besoin de tout construire à partir de zéro.
  • Les Hooks de React sont considérés comme une nette amélioration par rapport aux méthodes de cycle de vie des composants de classe, en offrant un code plus propre et plus puissant.
  • Certains développeurs considèrent les composants fonctionnels et les Hooks de React comme une erreur, estimant qu’ils rendent les codebases moins maintenables et plus difficiles à comprendre.
  • React est considéré comme plus fondamental que d’autres frameworks, en faisant passer d’un paradigme impératif à un paradigme plus fonctionnel.
  • La citation d’un article sur le montant payé par Google à Alex Russel pour spécifier les Web Components est jugée biaisée en raison de la concurrence directe entre Web Components et React.
  • Certains développeurs ont le sentiment que les programmeurs web ont perdu la capacité de « faire eux-mêmes » et de construire des systèmes complexes de manière pragmatique, et que des frameworks comme React sont souvent utilisés à l’excès.
  • L’auteur de l’article est critiqué pour ne pas fournir d’exemples et pour manquer d’expertise ou de compréhension de l’histoire et des différences entre les solutions actuelles.
  • Certaines personnes sont d’accord avec l’affirmation de l’article selon laquelle les développeurs ne devraient pas avoir à se soucier des performances de rendu, et trouvent discutable que React pousse les développeurs à utiliser des fonctionnalités comme useMemo et useCallback.
  • Certaines personnes approuvent l’idée de l’article selon laquelle les développeurs finissent par devenir uniquement des développeurs React et ne savent plus chercher d’autres approches, estimant que l’introduction par React de notions comme les composants, l’état et les Hooks a entraîné une perte de compréhension des concepts fondamentaux de la programmation.