Un tant soit peu racoleur, n’est-ce pas ? Contrairement aux apparences, c’est pas un article à trolls.

Je ne vais pas ici refaire la liste des pour et des contre de ce langage ; mais plutot tenter de convaincre les antis de s’y pencher d’un peu plus près. Mission difficile, on y croit.

La découverte

Je pense avoir découvert JavaScript comme la pupart des personnes de ma génération : sur les forums de CCM. Grave erreur !

Avec ce genre de souvenirs, je dois bien admettre que j’ai eu beaucoup de mal à franchir à nouveau le pas. Il m’aura fallu pas mal d’années pour que j’ose y remettre le nez. Et d’autant plus de rencontres pour que je fasse enfin mon comming-out : Bordel, j’aime JavaScript !

La réconciliation

C’était il y a quelques années, alors que pour un projet j’avais besoin d’un format d’échange moins lourd que XML, que je me suis penché sur Json. Je me suis alors dit que si Json -aussi beau soit ce- contenait le terme JavaScript dans son acronyme, c’est peut être qu’il était la peine de se pencher sur ce dernier.

C’est bête, n’est-ce pas ? Et pourtant, je n’exagère qu’à peine si je vous dit que ce choix a changé ma vie de développeur néophyte.

Puis évidement, Node.js m’est apparu, et j’ai cédé à la mode. Quand je parle de JavaScript, je parle d’ailleurs surtout de JavaScript autour de ce framework.

L’aspect asynchrone

On ne peut pas évoquer JavaScript sans s’attarder sur ce point. C’est un des points qui en fait une machine complexe à maitriser lorsque l’on souhaite produire un beau code.

Une application Node.js tourne sur un seul thread. Au premier abord, on peut se dire que les performances risquent inévitablement de s’en ressentir. En soit, c’est pas totalement faux. Tout du moins si l’on écrit son programme en mode synchrone.

Le secret réside dans la manière de coder. Voici un exemple simple qui met en évidence cet aspect de JavaScript :

1
2
3
4
setTimeout(function() {
console.log("Hello");
}, 50);
console.log("world !");

Cet exemple donnera le résultat suivant :

1
2
3
$ node async-example.js
world !
Hello

Bon, là, avec un nom comme setTimeout() on ne s’attendait certes pas à autre chose. On peut cependant trouver des exemples plus vicieux, et je vous assure qu’il vous arrivera de vous arracher les cheveux une fois quelques callbacks empilés !

En conclusion

JavaScript est à mes yeux un des langages les plus beaux qui soient. C’est à la fois très simple d’accès et incroyablement complexe. En conclusion, il fait -je pense- partie des langages dont on ne peut faire le tour, et ce même après plusieurs dizaines d’années d’expériences.

Un code JavaScript bien écrit est beau, mais toujours perfectible. Il représente l’esprit que devrait avoir tout développeur : la remise en question.