TC39 et ses contributions à ECMAScript

Beaucoup de gens ne savent pas ce qu'est JavaScript et ce qu'est ECMAScript. Parfois, il est difficile de dire comment ils sont connectés les uns aux autres et quel rôle jouent ECMA International et TC39 dans la normalisation de JavaScript.

Dans ce billet de blog, je vais discuter du TC39 et de ses contributions à ECMAScript.

Commençons par toutes les terminologies de base utilisées pour parler de JavaScript et d'ECMAScript.

Qu'est-ce qu'ECMAScript?

ECMAScript est un langage de script standard, développé avec la coopération de Netscape et Microsoft et principalement dérivé du JavaScript de Netscape. JavaScript est un langage de script largement utilisé qui est utilisé dans les pages Web pour affecter leur apparence ou leur comportement pour l'utilisateur.

ECMA-262 est une norme publiée par ECMA International. Il contient la spécification d'un langage de script à usage général appelé ECMAScript.

Un peu plus sur JavaScript

JavaScript est un langage de script qui vous permet de créer du contenu mis à jour dynamiquement, de contrôler le multimédia, d'animer des images et de faire à peu près tout le reste. (D'accord, pas tout, mais c'est incroyable ce que vous pouvez réaliser avec quelques lignes de code JavaScript.)

Qu'est-ce que l'ECMA?

L'ECMA est une organisation de normalisation des systèmes d'information et de communication. L'ECMA vise à développer des normes et des rapports techniques pour faciliter et normaliser l'utilisation des technologies de l'information et de la communication et de l'électronique grand public. Il encourage l'utilisation correcte des normes en influençant l'environnement dans lequel elles sont appliquées, et il publie ces normes et rapports sous forme électronique et imprimée.

Et maintenant, présentons les gens qui travaillent dur derrière ECMAScript: TC39.

Qu'est-ce que le TC 39?

TC39 signifie Comité technique numéro 39. Il fait partie de l'ECMA, l'institution qui standardise le langage JavaScript sous la spécification «ECMAScript». Il fonctionne sur la standardisation du langage de programmation polyvalent, multiplateforme et indépendant du fournisseur qu'est ECMAScript. Cela inclut la syntaxe du langage, la sémantique, les bibliothèques et les technologies complémentaires qui prennent en charge le langage.

TC 39 fonctionne sur :

  • Maintenir et mettre à jour la norme pour le langage de programmation ECMAScript.
  • Identifier, développer et maintenir des normes pour les bibliothèques qui étendent les capacités d'ECMAScript.
  • Développer des suites de tests qui peuvent être utilisées pour vérifier la mise en œuvre correcte de ces normes.
  • Contribuer avec des normes sélectionnées au comité ISO / CEI JTC 1.
  • Évaluer et examiner les propositions de technologies complémentaires ou supplémentaires.

Depuis la sortie de l'ES6, le TC 39 a rationalisé le processus de prévision des propositions pour répondre aux attentes modernes. Le nouveau processus utilise un sur-ensemble de HTML pour mettre en forme les propositions. Ils utilisent des pull requests GitHub, ce qui a contribué à stimuler la participation de la communauté. Le nombre de propositions faites a également augmenté.

La spécification est maintenant davantage un niveau de vie, ce qui signifie que les propositions voient l'adoption plus rapide, et nous ne passons pas des années à attendre qu'une nouvelle édition de la spécification sorte.

Une vue plus générale

En lisant la spécification ECMAScript, vous apprenez à créerun langage de script. En lisant la documentation JavaScript, vous apprenez à utiliser ce langage de script.

Traitement des propositions

Étape 0: Homme de paille

Toute discussion, idée, changement ou ajout qui n'a pas encore été soumis en tant que proposition formelle est considéré comme une proposition «d'homme de paille» à ce stade. Seuls les membres du TC39 peuvent créer ces propositions, et il y a plus d'une douzaine de propositions actives aujourd'hui.

Étape 1: proposition

À ce stade, une proposition est formalisée et devrait répondre aux préoccupations transversales, aux interactions avec d'autres propositions et aux problèmes de mise en œuvre. Les propositions à ce stade identifient un problème discret et offrent une solution concrète à ce problème.

À ce stade, la proposition comprend souvent une description de l'API de haut niveau, des exemples d'utilisation et une discussion sur la sémantique et les algorithmes internes. Ces propositions sont susceptibles de changer considérablement à mesure qu'elles progressent dans le processus.

Étape 2: Projet

Les propositions à ce stade devraient offrir une première ébauche du cahier des charges.

À ce stade, il est raisonnable pour les implémenteurs de commencer à expérimenter des implémentations réelles au moment de l'exécution. L'implémentation peut prendre de nombreuses formes: un polyfill, un code utilisateur qui transforme le runtime en adhérant à la proposition, une implémentation de moteur (qui fournit nativement un support pour la proposition), ou elle pourrait être prise en charge par un compilateur au moment de la construction comme Babel.

Étape 3: Candidat

Les propositions à ce stade sont des recommandations de candidats. À ce stade avancé, l'éditeur de spécifications et les examinateurs désignés doivent avoir approuvé la spécification finale. Il est peu probable qu'une proposition de l'étape 3 change au-delà des solutions aux problèmes identifiés dans la nature.

Les responsables de la mise en œuvre devraient également avoir exprimé leur intérêt pour la proposition - une proposition sans le soutien des responsables de la mise en œuvre est morte dans l'eau. En pratique, les propositions passent à ce niveau avec au moins une implémentation de navigateur, un polyfill haute fidélité ou lorsqu'elles sont prises en charge par un transpilateur de construction comme Babel.

Étape 4: Terminé

Enfin, les propositions arrivent à ce stade lorsqu'il y a au moins deux implémentations indépendantes qui passent les tests d'acceptation.

Et après?

Les propositions qui passent à l'étape 4 seront incluses dans la prochaine révision d'ECMAScript. Lorsque la spécification passe par sa ratification annuelle en tant que norme, la proposition est ratifiée dans le cadre de celle-ci.

C'est ainsi que les idées pour faire évoluer le langage ECMAScript sont acceptées et ajoutées à la prochaine révision d'ECMAScript. Et nous sommes tous reconnaissants pour le travail effectué par TC39, qui est inestimable.

Avec cela, nous avons atteint la fin de notre discussion sur TC39 et ses contributions à ECMAScript.

Merci d'avoir lu.

Sources: Processus TC 39, ECMA International