Quel est le problème avec les versions de Javascript ?

Le monde du Javascript peut être un monde confus. Les gens parlent d’ECMAScript, de Javascript, d’ES5 et d’ES2015 (qui est le même que ES6 d’ailleurs).

Dans cet article, je vais expliquer le paysage Javascript.

Javascript Yellow – Photo by Joseph Gruenthal on Unsplash

ECMAScript est une spécification de langage, et Javascript met en œuvre cette spécification.

Tous les quelques années, ECMAScript sort une nouvelle version. Fondamentalement, la nouvelle version contient une liste de nouvelles fonctionnalités qui devraient être ajoutées.

Par exemple, dans la nouvelle version ECMAScript, il pourrait y avoir une nouvelle fonction : add() qui ajoute deux nombres.

De cette façon, vous pouvez enfin ajouter 2 nombres avec une fonction – je sais que ce n’est pas une fonctionnalité utile mais soyez indulgent avec moi pour le bien de l’exemple 🙌

const result = add(12, 4);
console.log(result);

Quand cela a été décidé, il appartient à tous les interprètes Javascript d’implémenter cette nouvelle fonctionnalité.

Interprètes Javascript

Un interprète Javascript est un programme qui va lire et exécuter du code Javascript. Tous les navigateurs qui supportent Javascript sont des interprètes Javascript.

En plus des navigateurs, il existe également d’autres interprètes Javascript. NodeJS est un exemple primaire d’un interpréteur qui nous permet d’exécuter du Javascript en dehors d’un navigateur. C’est un interprète parce qu’il lit et exécute également Javascript (ainsi que de fournir des API au système d’exploitation).

Tout le monde ne met pas à jour son navigateur, et tous les navigateurs ne supportent pas les mêmes fonctionnalités Javascript. Et c’est là que les choses se gâtent.

La dernière version d’ECMAScript est l’ES10. Cependant, tous les navigateurs ne supportent pas cette nouvelle version ES car ils doivent encore implémenter les nouvelles fonctionnalités.

De plus, il y a beaucoup de personnes avec des versions obsolètes de leur navigateur, donc cela pourrait prendre un certain temps avant que tous les utilisateurs puissent exécuter ces nouvelles fonctionnalités fantaisistes ES10.

Versions ES

Faisons un petit détour et parlons des versions ES.

Comme je l’ai mentionné dans la section précédente, la dernière version d’ECMAScript est l’ES10. Maintenant, il n’y a pas vraiment de convention de dénomination quand il s’agit des versions d’ECMAScript. Donc ES10 est aussi appelé ECMAScript2019 et ES2019.

De plus, le dernier changement vraiment important du langage était avec ES6 qui est sorti en 2015 donc il est parfois aussi appelé ES2015 – Oui c’est confus, je sais 😌

Parce qu’il n’y a que des changements mineurs au langage après ES6 toutes les versions après ES6 sont parfois aussi appelées ESNext.

Transpilateurs Javascript

Souvenez-vous du problème des navigateurs qui ne supportent pas tous les dernières fonctionnalités de l’ES10 ? Il existe une solution. Les transpilers!

Babel est un exemple de transpilateur Javascript. Babel va convertir une version Javascript plus récente en une version plus ancienne. De cette façon, vous pouvez utiliser les nouvelles fonctionnalités fantaisistes de l’ES10, et laisser Babel le transpiler vers la version ES5 largement supportée.

Différence entre NodeJS et les navigateurs

NodeJS et les navigateurs sont tous deux des interprètes Javascript. Selon la version du navigateur et la version de Node que vous avez, ils peuvent supporter la même version d’ECMAScript.

Cependant, Node est exécuté directement sur un ordinateur. Cela signifie qu’il y a un certain nombre de bibliothèques regroupées avec Node qui ne fonctionneront pas dans le navigateur.

Par exemple, dans NodeJS, vous pouvez créer de nouveaux fichiers. Dans un navigateur, ce serait un risque de sécurité majeur, donc ce n’est pas possible.

C’est pourquoi les programmes NodeJS écrits dans la même version ECMAScript ne fonctionneront toujours pas dans votre navigateur qui supporte la même version.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.