Salut à tous,
Récemment j’ai voulu me remettre au goût du jour concernant le développement de web apps en Javascript. Je n’en ai pas fait depuis longtemps, à l’époque où tout le monde utilisait jQuery et où on n’entendait pas encore beaucoup parler d’AngularJS première version.
J’ai fait un peu le tour de ce qui existe maintenant comme tools et frameworks et je constate que maintenant une web app c’est compliqué à booter et c’est immédiatement une sacrée machine à gaz.
Il semble qu’il est devenu indispensable d’utiliser le système de packaging npm, de compiler son app, et d’utiliser une pléthore hétéroclite de tools simplement pour faire un Hello world. Il y a des tools pour créer une structure de projet (le projet ne fait encore rien et il y a déjà 300 fichiers), des tools pour tester, etc. Et toujours trente façons différentes de faire la même chose basique. Je me suis un peu attardé sur le framework Vue et je constate qu’il faut utiliser non pas un mais plusieurs frameworks conjointement (Vue, VueX, etc.).
C’est pas forcément une mauvaise chose en soi les frameworks, mais :
- la learning curve est beaucoup plus raide qu’avant, il faut passer beaucoup de temps avant de pouvoir démarrer un petit projet tout simple
- les frameworks et les tools semblent évoluer très vite, il semble qu’il faille tout réapprendre tous les ans, et il y en a tellement que pour bosser en équipe il faut apprendre plein de technos en doublon ; par ex quand j’ai booté un projet Vue avec vue-cli, pour pratiquement chaque truc, même les plus bateaux, j’avais le choix entre plusieurs outils (packaging, tests, templating du projet, etc) ; il y a donc un écosystème énorme à appréhender (grunt, bower, npm, yearn, webpack, angular, react, vue, vuex, etc etc), et je ne parle même pas des multiples langages qui sont apparus (typescript, sass, less, etc)
- les tools n’ont pas l’air très simples ni très stables.. je n’ai pas une seule fois utilisé npm sans voir 50 warnings dans tous les sens et je n’ai aucune idée d’à quoi ils font référence ou de si je peux faire quelque chose pour les régler
- il ne semble pas y avoir une cohérence globale dans ces tools, c’est un joyeux bordel, en tous cas de mon point de vue, et c’est pas évident de trouver une documentation orientée newbie qui fait un état des lieux général et indique quoi utiliser ; par ex il semble que vue soit généralement accompagné de vuex, mais il n’en est fait aucune mention dans la doc de vue… pour se documenter maintenant il faut lire des blogs on dirait
- les apps sont-elles performantes quand elles doivent loader tout un bouzin pareil dont 75% est inutilisé ?
- est-ce vraiment nécessaire tous ces frameworks et ces tools ? quelle en est la valeur ajoutée ?
- est-ce qu’il n’y a pas un genre d’effet de mode et de chacun réinvente la roue dans son coin dans le monde JS en ce moment ?
Bref j’ai l’impression que le dev Javascript est pas mal parti en couille en quelques années. Je suis un peu perdu dans tout ça.
Du coup j’aimerais bien l’avis et si possible un petit topo de la part de ceux d’entre vous qui ont suivi tout ce qui s’est passé et qui font du dev frontend aujourd’hui. Je n’ai plus aucune idée de par où démarrer.
Merci et bon weekend tout le monde