JavaScript "pur" ou frameworks ?

Le framework du moment est incontournable

Se poser la question de JavaScript vs les frameworks est légitime. Le temps à consacrer à sa veille technologiquee est rare et précieux. La réponse est pourtant simple quand on se place dans une perspective à moyen et long terme. En effet, les frameworks et librairies sont éphémères. Oui éphémères. Quatre à sept années suffisent à faire d'un framework dont tout le monde parle une vieille techno peu motivante. Ce qui représente une moyenne d'à peine plus de quatre années.
Pour autant, quand le framework est en pic de popularité, il n'est pas possible de dire à un recruteur qu'on ne connait pas la techno sur laquelle il cherche des candidats sous prétexte que l'on ne souhaite pas s'investir sur de l'éphémère. Pas le choix : il faut donc se consacrer à au moins un des deux ou trois frameworks du moment.

JavaScript : le développement durable du développeur web

Mais négliger JavaScript (le "vanilla" JavaScript) est un mauvais calcul à moyen et long terme. Sur des applications complexes, les développeurs qui font la différence sont souvent ceux qui en plus du framework utilisé sur leur projet maîtrisent JavaScript.
La solution consiste alors à consacrer entre 2 heures à une demi-journée par semaine à JavaScript, le reste du temps de veille techno étant consacré au framework du moment. Vous pourrez ainsi faire mentir la célèbre boutade qui déclare que chaque nouveau framework est une nouvelle occasion de masquer le fait que l'on ne maîtrise pas JavaScript.

Comment se motiver à revenir régulièrement au vanilla JavaScript ?

Pour rester motivé à revenir régulièrement à JavaScript, se fixer un programme de veille à l'avance peut faire toute la différence. Cela peut consister à se créer une liste de ses points faibles et à chercher à les corriger. Comme par exemple : closures, Higher Order Components, programmation fonctionnelle. Ou bien à choisir un thème : les Services Workers (ou plus globalement les PWA), les nouveautés d'ES6 (ES7, ES8). Ou encore de choisir de progresser sur des APIs spécifiques permettant de faire du realtime, de la vidéo ou de l'audio. Quelle que soit l'approche choisie, trouver un moyen de sélectionner un point particulier pour chaque semaine ou chaque mois et naviguer d'un point précis à un autre pour ne pas se perdre.

Retrouver la sensation d'apprendre quelque chose d'utile

Revenir au vanilla JavaScript est démotivant en raison du côté parfois trop abstrait de la chose. On peut apprendre les nouveaux mots clés d'une version récente d'ECMAScript et se dire qu'à part un ou deux points, on ne voit pas l'intérêt que cela peut avoir concrètement. Mais quand on sait quel problème résoud le nouveau mot clé X ou la nouvelle fonction Y mise à disposition, on peut alors découvrir de nouvelle façons de rendre son code plus maintenable ou plus performant et essayer de se servir des nouvelles connaissances sur un petit Proof Of Concept d'une des nombreuses idées qui nous trottent dans la tête.

La solution de Normand

Il faut trouver le moyen d'alterner besoins à court terme (apprendre un nouveau framework) et besoins à long terme (continuer à progresser en vanilla JavaScript). Les besoins à long terme étant moins urgents, il est possible d'étaler sur la durée les montées en compétences en vanilla JavaScript. Le principal écueil à éviter étant connu - ne pas persévérer sur la durée -, la création d'un programme avec son planning (semaine X consacrée au sujet Y) est une solution viable. Tout en restant ouvert à un point précis du langage qui peut donner envie de se spécialiser, autrement dit de trouver sa niche. Par exemple devenir l'auteur d'un player vidéo, d'une librairie de drag&drop voire d'une librairie de composants, ou encore d'un package NPM spécialisé sur un point très précis. Et là, toute l'utilité du vanilla JavaScript reprendra son sens.