Je suis un développeur Web de manière professionnelle depuis à peu près 1 an et demi. Depuis ce temps, mon opinion d'une composante essentielle au développement Web a drastiquement changé: le Javascript. J'aimerais vous en parler plus en détail dans cet article.

Il y a un an de cela

Je sens que je dois vous mettre en contexte avant de commencer. En mai 2014, j'ai intégré un projet en Web Forms déjà bien avancé. L'organisation de l'équipe était établie, mais très fracturée: il y avait d'un côté les développeurs back-ends, et de l'autre, les développeurs front-ends. Pour ceux qui ne connaissent pas la différence, un développeur back-end s'occupe de la partie ASP.NET en C#, des scripts de déploiement et d'autres composants du côté serveur. Les développeurs front-ends sont plutôt concentrés sur le HTML, le Javascript et le CSS, bref ce qui s'exécute du côté client. La communication entre les deux facettes du projet était difficile au mieux. Les développeurs back-ends "vomissaient" l'information dans un espèce de HTML indigeste sur la page, puis passaient la balle aux front-ends pour styliser le composant, souvent sans que ceux-ci ne sachent qu'ils avaient à intégrer ce composant dans leur sprint. Comme c'était un projet Web Forms, il y avait beaucoup de post-backs qui forçaient un rafraîchissement de la page complète, et très peu d'appels AJAX. Vous le devinez, le rôle de développeur front-end ressemblait plus à celui d'intégrateur. Bien que ce ne soit pas mal en soit, le profil des front-ends sur le projet était celui de développeurs, pas d'intégrateurs.

C'est dans ce contexte que je me suis forgé une opinion négative du Javascript. Un peu comme tout le monde, j'en avais fait un peu par le passé, mais là, c'était mon premier vrai projet Web grand public. Les enjeux étaient différents, et comme il y avait une sorte de rivalité entre les spécialités, il était facile de comparer les langages C# et Javascript. Cela a mené à une espèce de haine du langage, car c'était, selon moi, un mal nécessaire. Je ne voyais absolument pas les points positifs du langage. Je ne me doutais pas que mon opinion allait changer drastiquement dans l'année suivante.

Une nouvelle ère

Je crois qu'il y a quelques années, le monde s'est réveillé d'un long sommeil et a réalisé que le Javascript avait du potentiel malgré ses nombreuses failles et faiblesses. C'était à peu près en même temps que Google a créé son engin V8 et que les API ont commencé à fleurir grâce au monde du mobile. C'était aussi à ce moment que les développeurs ont commencé à réaliser que des applications dans un navigateur, c'était possible. D'ailleurs, c'est à ce moment que le monde a réalisé que le Javascript était assez expressif pour être utilisé autant dans une base de données (MongoDB) que dans un serveur (Express + Node.js), que dans le navigateur (AngularJS, par exemple). C'est ce qu'on appelle communément la stack MEAN.

Étant un développeur purement .NET par le passé, je n'embarquais pas aisément dans les nouvelles modes. Bien entendu, j'avais entendu parlé de Typescript et de Node.js (je ne vivais quand même pas sous une roche), mais je n'avais pas essayé. J'ai commencé à regarder des vidéos sur internet par rapport à Node.js un peu par hasard. J'ai été séduit par son concept mono-thread et par l'event loop qui apportait avec eux la promesse de grande scalabilité et de rapidité. Quelques mois après au travail, j'étais transféré sur un tout nouveau projet greenfield où il était question de faire du développement full stack, à l'aide de Typescript. Au début, j'étais méfiant et un peu sceptique. Mais au fil du temps et à force de travailler avec ces outils, j'ai commencé à les aimer.

Qu'ais-je aimer exactement? J'ai aimé ce que je détestais par le passé: le typage et les objets dynamiques. C'était exactement l'opposé du C# et je savais que de mettre ce langage dans mon sac de compétences allait m'aider dans le future. En bonus, j'obtenais les fonctions comme membres prédominants et l'héritage par prototype, entre autres. Le Javascript n'est effectivement pas le meilleur langage, car il souffre de sa conception beaucoup trop rapide, mais ce n'est certainement pas la tare que je m'imaginais par le passé.

Vous aussi vous aimeriez vous y mettre? Je vous conseille fortement de ne pas faire le saut direct, cela pourrait être aliénant. Voici quelques conseils que j'aurais à me donner à moi-même il y a quelque temps.

We want you!

Commencer

Commencer dans une nouvelle technologie se fait souvent à l'aide d'un Hello World! Cependant, cela manque souvent de challenge. Je vous conseille fortement de commencer une petite application Web qui répond à un besoin simple. Faites une application CRUD tout simplement, ce sera plus significatif.

Considérez sérieusement le Typescript

Microsoft a probablement étonné tout le monde lorsqu'il a annoncé son intention de révolutionner le monde du Javascript avec Typescript. En gros, il s'agit d'une surcouche au Javascript qui permet d'ajouter du typage optionnel ainsi que différentes options de compilation. Tout Javascript est considéré comme étant du Typescript valide. Cependant, ce langage offre un peu plus de stabilité dans l'implémentation du typage et peut être excessivement utile lors de la création d'applications plus complexes et d'une certaine taille. Le Typescript est également utilisé pour compiler du Javascript ES3, ES5 ou même ES6. Cela permet d'utiliser les fonctionnalités futures aujourd'hui, tout en respectant les plus vieux navigateurs et en vous facilitant certaines tâches comme l'héritage. Je vous le conseille fortement, car ce langage est nettement moins aliénant que le Javascript pur tout en ayant les mêmes capacités.

Un peu de lecture

Je vous conseille également un peu de lecture sur le sujet. Même si vous allez faire du Typescript, il est important de comprendre comment bien utiliser le Javascript. Il y a un livre qui devrait probablement faire partie de toutes les librairies tellement c'est une bonne référence: Javascript: the Good Parts. Il est très court et très concis. Il va droit au but et vous convaincra des biens faits de ce langage.

Bref, donnez une chance à ce langage un peu énigmatique. Il n'est certainement pas pour les débutants, mais il est très flexible et permet de faire beaucoup plus que d'animer des boutons sur des pages Web. En espérant vous avoir convaincu, bon Javascript!

Je suis désolé d'avoir manqué ma publication de la semaine dernière. J'étais en plein mise en production au bureau. J'espère que vous me pardonnerez.

^.^

Gab