• # tracer un nouveau chemin

    Posté par (site web personnel) . En réponse au journal Et si JavaScript allait droit dans le mur ?. Évalué à 9.

    En substance ton journal me fait penser à ce que j'écrivais ici même il y a un peu plus de 2 ans :

    Il faut dire que j'ai été un peu moins passionné par le monde du web ces derniers temps. Ok, on trouve beaucoup de choses sur AngularJS par exemple, sur du CSS, sur des bibliothèques JS, etc. Mais je dois dire que j'ai un peu l'impression que ça tourne en rond. Certes c'est toujours plus mieux, certes il y a des nouveautés. Mais il y a aussi beaucoup de réinventage de roue, de NIH. Depuis que j'ai commencé à vraiment coder sur le web, il y a une petite dizaine d'année, j'ai l'impression que ça n'a pas beaucoup évolué par certains côtés. On se retrouve à, encore aujourd'hui, refaire une énième bibliothèque de composants html/js pour, par exemple, styliser des listes déroulantes. Le style à changé, c'est vrai. On est d'ailleurs passé par pas mal de choses, des biens lourdes pendant un temps, et on s'oriente vers du minimalisme, avec des couleurs bien utilisées et un accent sur la typographie. Les outils ont changé aussi, on voit maintenant fleurir le code utilisant des pré-processeurs malgré l'aversion de certains (less et sass, mais aussi stylus pour le css, coffeescript pour le javascript par exemple). On voit aussi les systèmes de build, de gestion de dépendance (bower et requirejs).

    Tout ça c'est bien, ça va dans le sens d'une industrialisation dont le web (et plus généralement malheureusement le développement) manque cruellement. Mais se retourner et voir qu'on fait par certains côtés toujours la même chose depuis 10 ans, c'est tout de même un peu triste, non ?

    Je n'imaginais pas alors qu'entre ce message et aujourd'hui il y aurait d'une part de réelles avancées du langage mais surtout une explosion des outils "nécessaires" à mettre en oeuvre pour faire une application web aujourd'hui. Comme tu le dis, grunt, gulp, browserify, webpack, babel, etc. Le setup d'un projet contenant du javascript aujourd'hui me hérisse le poil à un point que je cherches par tous les moyens de ne plus en faire de cette façon. Et je ne suis pas non plus pour l'usage immodéré de générateurs qui vont tout faire, on est souvent obligé de mettre la main dedans et ce n'est pas toujours joli.

    Quoi qu'il en soit je vais juste parler de ma propre expérience. Peut-être y a-t-il quelque chose à en tirer.
    Après des années à faire du web et principalement du js j'en ai eu marre. Attention, j'adorais le langage, je le maitrisais plutôt bien, pas de problème. Mais j'ai fini par faire overdose de l'écosystème immature (et on voit que ça ne s'est pas arrangé).

    J'ai donc choisi de simplement pivoter. J'ai toujours aimé beaucoup d'autres langages. J'ai donc commencé (professionnellement j'entends, ça reste une façon d'y consacrer plus de temps) à m'orienter vers d'autres domaines. Ces dernières années (en gros depuis quelques mois après le message du début du commentaire) j'ai donc réalisé des projets utilisant :
    - clojure côté backend (ok, plus angularjs en front)
    - C++/Qt
    - Ruby/Qt
    - Ruby
    - Dev mobile Android avec un gros coeur cross platforme en C++ (durant 1.5 ans full time)
    - Go/Clojurescript

    Aujourd'hui je reviens sur du web mais retour aux fondamentaux : Ruby on Rails + juste ce qu'il faut de js par endroits.

    Il faut surtout voir l'ensemble de ces changements, l'ensemble de ces projets comme un chemin. Un chemin vers d'autres langages, d'autres façons de faire, d'autres écosystèmes. Ce chemin m'a au fond conforté dans l'idée que j'avais du monde javascript. Mais quand on commence à détester le langage qu'on utilise tous les jours, il est temps de regarder ailleurs, vraiment.

    Au final je continue à utiliser Javascript mais plutôt à contre courant. Je l'utilise là où il est bon, c'est à dire apporter du dynamisme dans une page web. Je l'oublie pour absolument tout le reste.
    Si j'ai réellement besoin de faire une application web basée sur du javascript, aujourd'hui je me tournerais sur du clojure/reagent ou du elm. Je ne vois javascript presque que comme un langage intermédiaire cross-plateforme.

    Tout ça me fait aussi penser à un tweet de Sam Stephenson :

    Some things we don’t use in Basecamp 3: Angular. React. Ember. Backbone. jQuery UI. ES6. Babel. Browserify. Webpack. Anything from NPM. Grunt