JavaScript ou ECMAScript ? - tout ce qu'il faut savoir - Letecode
Suivez nous
@mechack - 06 octobre 2021 155 dans JavaScript

JavaScript ou ECMAScript ? - tout ce qu'il faut savoir

Le terme ECMAScript et JavaScript qui est utilisé de manière interchangeable sur le Web, causant de la confusion pour de nombreux développeurs qui plongent la tête la première dans JavaScript

JavaScript ou ECMAScript ? - tout ce qu'il faut savoir

Dans cet article, vous découvrirez tout ce que vous devez savoir sur ECMAScript. 

A lire aussi : Histoire et évolution du JavaScript

Quels sont tous ces différents termes?

Eh bien, ils font tous référence à une norme, appelée ECMAScript.

Maintenant, s’il vous plaît ne jamais googler « la différence entre JavaScript et ECMAScript » ou vous rencontrerez de nombreux résultats ambigus comme:

« ECMASCript est une norme. »

« ECMASCript est une spécification. »

« ECMASCript est un langage de programmation. »

« JavaScript est un langage de programmation ??? »

« ECMASCript est javascript ??? »

Je vais expliquer ce qu’est EcmaScript et pourquoi il est utilisé pour décrire JavaScript dans ce chapitre.

Comme je l’ai dit dans mon article précédent, JavaScript est un langage conçu en seulement 10 jours. En conséquence, JavaScript n’avait aucune norme à laquelle il adhérait. Pour faciliter la communication et le développement, Netscape et Sun Microsystems ont présenté le Nouveau JavaScript à Ecma International, une société qui s’occupe de la normalisation des technologies de l’information et de la communication.

Pour illustrer la signification de « standard », pensez à tous les claviers que vous avez jamais utilisés. La grande majorité des claviers utilisaient des caractères latins dans le même ordre, avec F1 à F12 placés en haut, une grande barre d’espace en bas. Pourquoi semblent-ils tous conçus de la même manière? C’est parce que la plupart des fabricants de claviers utilisent la même disposition QWERTY.

Non, Ecma n’a pas créé la norme QWERTY pour le clavier, le crédit appartient à quelqu’un d’autre. Mais Ecma a créé une norme pour le langage de script à usage général, appelée ECMA-262.

ECMA-262 est une norme comme QWERTY, mais au lieu de définir des spécifications pour un clavier, il définit les spécifications d’un langage de script. Cette spécification est ce que nous connaissons sous le nom d’ECMAScript. Pour vous faciliter la tâche, veuillez consulter ce lien vers le document ECMA-262.

Déventons un peu les choses. Jusqu’à présent, nous savons:

1. Ecma-262 est un numéro de référence de document pour la spécification du langage ECMAScript

2. Le langage de programmation/script qui adhère à Ecma-262 implémente automatiquement la spécification ECMAScript.

3. JavaScript est l’un de ces langages qui adhère à Ecma-262.

Conclusion : JavaScript est une implémentation de la spécification du langage ECMAScript.

Cela signifie donc qu’il existe plus d’un langage de programmation qui implémente ECMAScript ?

Vous l’avez frappé directement dans l’œil. Deux autres implémentations ECMAScript bien connues sont :

1. JScript par Microsoft, car à l’époque, la guerre des navigateurs était à son apogée, et Microsoft devait trouver quelque chose pour lutter contre la domination de 80% de Netscape sur la part de marché des navigateurs. Pour gagner cette guerre, Microsoft a dédié une équipe de développeurs à l’implémentation d’ECMAScript pour son navigateur, le célèbre Internet Explorer. Aujourd’hui, Microsoft a déjà arrêté JScript (dernière version stable mars 2011) et a choisi d’utiliser également le nom JavaScript. Vous ne trouverez aucune trace de JScript dans la page Wikipédia de Microsoft Edge.

2. ActionScript, le langage de script Flash pour Adobe Flash Player. Ce langage de script avait perdu de sa popularité, et Flash sera officiellement abandonné d’ici 2020.

Alors oui, JavaScript est l’implémentation la plus populaire d’ES (et la seule que vous devez apprendre. Dieu merci!)

La version stable actuelle de la version ES au moment de la rédaction de cet article est ES2018 ou ES9.

Maintenant, qu’est-ce que TC39?

Oh, c’est un comité de personnes qui travaille sur JavaScript. Les membres de TC39 sont des personnes d’entreprises impliquées dans le développement de JavaScript et de navigateurs Internet. Certains d’entre eux proviennent de géants de la technologie bien connus comme Google, Facebook, Apple, Microsoft, Intel, PayPal et Mozilla. Ce sont eux qui travaillent à finaliser les versions ES.

Pourquoi les versions ES prêtent-ils à confusion ?

Oui, j’ai trouvé déroutant de savoir pourquoi parfois la version ES est référencée par édition et parfois par année. Ce genre de choses vous rend fou.

Donc, comme toujours, je fais quelques recherches à ce sujet, et il s’avère qu’en 2015, le comité TC39 s’est engagé à publier une nouvelle version d’ES chaque année. Avec cet engagement, ils ont également décidé de changer le nom officiel d’ES pour utiliser le numéro d’année de sortie plutôt que le numéro d’édition. Vous pouvez utiliser ce tableau à titre de référence :

Nom de l’édition Nom officiel Date de publication
ES9 ES2018 Juin 2018
ES8 ES2017 Juin 2017
ES7 ES2016 Juin 2016
ES6 ES2015 Juin 2015
ES5.1 ES5.1 Juin 2011
ES5 ES5 Décembre 2009
ES4 ES4 Abandonné
ES3 ES3 Décembre 1999
ES2 ES2 Juin 1998
ES1 ES1 Juin 1997

  

Alors oui, parfois les développeurs ont appelé ES par nom d’édition, parfois par année de sortie. Il suffit de s’y habituer. Il existe également ES Next, un nom réservé comme espace réservé pour la prochaine version d’ECMAScript. Donc, depuis que ES9 a été publié, l’ES. Suivant est ES10 ou ES2019

Donc ES2015 doit être important alors ?

Oui, ES2015 est une version évoluée de la norme ES qui a été développée depuis 2011. Cette nouvelle version doit faire passer le langage de programmation à un niveau où les développeurs peuvent l’utiliser pour les navigateurs modernes. Avec l’invention de Node.js côté serveur, JavaScript devient une tendance, ES2015 a ajouté des classes et des modules. Permettre une meilleure prise en charge de la programmation orientée objet.

Y a-t-il autre chose que je devrais savoir?

Encore une chose. L’implémentation d’ES dans le navigateur est fragmentée et la prise en charge d’ES6 est assez peu fiable en dehors des navigateurs populaires comme Chrome, Firefox, Edge ou Safari. Même les navigateurs modernes comme Chrome ou Safari avaient récemment pris en charge complètement ES6. Si vos utilisateurs utilisent un navigateur moins connu ou n’ont pas mis à jour leur navigateur au cours des 9 derniers mois, vous êtes toast. (Ou pire, toujours en utilisant Internet Explorer.)

C’est pourquoi les développeurs JavaScript doivent utiliser un compilateur ES6 vers ES5 pour générer du code JavaScript compatible avec tous les navigateurs modernes existants. L’outil le plus populaire pour générer du code ES5 à partir d’ES6 s’appelle Babel. Nous l’apprendrons plus tard.

Alors voilà! J’espère que vous comprenez maintenant la différence entre JavaScript et ECMAScript 🙃.

Abonnez vous !

Recevez les dernières nouvelles de letecode directement dans votre boîte de réception. Réjoignez +500 Abonnés, Nous n'envoyons pas des spam !

Voir plus