Est-il utile dâapprendre Reactâ?
03 Oct 2018 âą 4 min read
Plusieurs tweets mâont interpelĂ© rĂ©cemment, par rapport au fait que lâĂ©cosystĂšme JavaScript sâest dĂ©gradĂ©, car concentrĂ© autour de plus en plus dâoutils pas forcĂ©ment utiles. React en prend notamment pour son grade.
Ăa me rend triste quand mĂȘme tout ce tooling et cette complexitĂ© pour faire des webapps JavaScript. Les sites ne sont pas mieux qu'Ă l'Ă©poque de Backbone mais si tu n'utilises pas moins de 5 outils et un transpileur et des types, tu n'es plus crĂ©dible ... M'enfin oĂč va-t-on ?!
â Ph. CharriĂšre sur Twitter
Cela me dĂ©sole un peu bien que je comprenne les arguments adressĂ©s. Voici ce que jâen pense⊠(Je prends lâexemple de React, mais en fait ça peut sâappliquer Ă Angular, Vue, etc.)
Juste le nouveau framework Ă la mode
Câest un argument que lâon entend beaucoup: React nâest quâun nouveau framework comme un autre, il a lâair super Ă premiĂšre vue, mais dans deux ans tout le monde lâaura oubliĂ© et des heures de formation et dâexpĂ©rience pourront ĂȘtre jetĂ©es Ă la poubelle.
Entre apprendre Elm et la programmation fonctionnelle, OU apprendre React + Webpack + npm + Babel +⊠+ ⊠qui seront tous obselĂštent un jour ou un autre, je prĂ©fĂšre miser sur quelque chose dâutile, qui mâenrichit intellectuellement et qui me servira plus tard :-). Mon avis :-).
â Ivan Enderlin sur Twitter
Peut-ĂȘtre que câest vrai, mais pour ma part mes expĂ©riences web professionnelles et personnelles ont suivi un chemin relativement classique: du PHP, puis du front-end Ă lâaide de jQuery, puis du AngularJS, puis du React. Est-ce que pour autant je regrette de mâĂȘtre formĂ© Ă PHP, jQuery et AngularJS? Heureusement non. Je nâen serais pas au mĂȘme niveau aujourdâhui si je nâavais que mes deux ans dâexpĂ©rience React derriĂšre moi.
Ces derniers temps je suis beaucoup ce qui se passe autour de Reason, langage qui semble apporter des rĂ©ponses Ă©lĂ©gantes Ă ce quâil manque Ă JavaScript. Pour autant je nâabandonne pas JavaScript. Jâai dĂ©couvert la programmation fonctionnelle grĂące Ă JavaScript, et Reason est une bonne opportunitĂ© dâaller plus loin.
Alors peut-ĂȘtre que React (ou JavaScript) sera oubliĂ© dans deux ans, mais ce sera pour quelque chose de mieux, plus moderne, plus performant, etc., mais je ne peux pas croire que ce que lâon aura appris sur/de React sera bon Ă jeter.
Trop dâoutils nĂ©cessaires
Pour utiliser pleinement React (mais ça vaut aussi pour Angular, VueJSâŠ), passer par la case transpilation Babel est plutĂŽt sympa. De mĂȘme que builder son appli avec un Webpack, Parcel ou autre Create React App câest plutĂŽt cool aussi. Et ajouter une couche de formatage automatique avec Prettier et de lint avec ESLint, ça peut aider aussi. Encore mieux: ajouter du typage avec TypeScript ou Flow, ça peut sauver des heures de debug. Ăa fait beaucoup dâoutils. Et alors?
En quoi sâentourer de bons outils devrait-il ĂȘtre un mal? Vous pouvez dĂ©cider de nâen utiliser aucun (il est possible de faire du React sans JSX), vous passeriez Ă cĂŽtĂ© de fonctions bien pratiques, mais câest possible. Et certes dâautres langages font tout cela nativement, mais on peut se demander ce qui se passe si on souhaite implĂ©menter ces fonctions autrement que dans ces langages. Au moins avec JavaScript (et donc React), vous avez le choix.
CâĂ©tait mieux avant
Avec jQuery? Quand on avait une usine Ă gaz de fonctions utilitaires tout ça pour faire deux requĂȘtes dans le DOM, et que les plugins poussaient partout sur le web, chaque dĂ©veloppeur ayant ses propres conventions, faisant naĂźtre un Ă©cosystĂšme bordĂ©lique et hĂ©tĂ©rogĂšne?
Ou sans JavaScript? Quand le concept dâapplication web existait Ă peine, puisque chaque chargement de donnĂ©es nĂ©cessitaient un rechargement de la page?
Les sites Ă©taient sans doute aussi bien voire mieux quâaujourdâhui (moins polluĂ©s de trackers en tout genre), mais les web apps? Pas si sĂ»r⊠Et autant du point de vue utilisateur que de celui du dĂ©veloppeur.
En conclusion?
Pour moi oui il est encore utile dâapprendre React ou nâimporte que framework qui vous aidera au quotidien. Si vous souhaitez vous perfectionner dans le JavaScript pur (vanilla), câest trĂšs bien aussi, cela vous aidera. De mĂȘme si vous souhaitez expĂ©rimenter dâautres langages pourvus dâautres avantages, ou permettant dâautres paradigmes. Mais penser que si une technologie est temporaire cela signifie quâelle ne vaut pas le coup dâĂȘtre apprise, ce serait je pense une erreur. Surtout, il nây aurait plus grand chose Ă apprendreâŠ
Note: on peut Ă©videmment penser que mon avis est biaisĂ© dans la mesure oĂč jâĂ©cris actuellement un livre consacrĂ© Ă React. Je dirais plutĂŽt que je nâaurais pas ce projet si je pensais que React Ă©tait dĂ©jĂ dĂ©modĂ© đ