TC39 (Technical Committee 39)

How Features are added to JavaScript

No, it’s not Brendan Eich, or Google, or some supreme being.

The JavaScript specification is managed and iterated by a committee called TC39 (Technical Committee 39). TC39 is made up of various developers, people from academia and platform enthusiasts.

TC39 meet around 6 times a year , mostly in the US but also in Europe.

They work with the community to accept proposals for new JavaScript features and take them through the 4 “stages” of a JavaScript language proposal.

The 4 stages are as follows:

Stage 0: Strawperson

You have made a proposal to the language. This is generally done by raising a PR against the TC39 ECMAScript GitHub repository

Stage 1: Proposal

A TC39 member has been identified as a champion who is on board with the idea of introducing your feature.

A public GitHub repository is created around your proposal, with examples, high-level API, rationale and potential issues.

Stage 2: Draft

Things are starting to get real .

The Draft stage now means that all of the syntax and semantics of your proposal need to be nailed down.

This involves describing your proposal feature using the formal specification language you will see in the JavaScript spec itself.

Stage 3: Candidate

Stage 3 is when your proposal is pretty much ready to go - TC39 reviewers have signed off on the specification text.

Responsibility falls to the community at this stage.

Developers are expected to use the feature and provide feedback that is only possible through actually using it in their software.

The only changes made to your proposal here will be critical bugs and problems that are uncovered by the community.

Stage 4: Finished

Done and dusted .

Your proposal has been well tested in the community in real implementations. Your proposal will be included in the next version of the ECMAScript standard and will be used by millions.

Note from https://fediverse.org/rauschma

Note that since the TC39 process was instituted, the importance of ECMAScript versions has much decreased.

What really matters now is what stage a proposed feature is in

Once it has reached stage 4, it can be used safely. But even then, you still have to check if your engines of choice support it.

FAQ

What do the stages mean ?

They refer to maturity stages of the so-called “TC39 process”.

Check section The TC39 process in “JavaScript for impatient programmers” for more information.

Is there an official list of ECMAScript features ?

Yes, the TC39 repo lists finished proposals and mentions in which ECMAScript versions they are introduced.

Articles

https://www.jesuisundev.com

ECMA, Ecmascript, TC39 et ES2020

Alors, avant de commencer, il faut que je file un peu de contexte sur ce dont je vais te parler. Tu sais déjà tout sur le fonctionnement de tous ces termes ? T’es trop un geek, tu peux passer directement à la partie suivante.

Sinon, t’es quand même un geek, mais il te faut plus de contexte.

J’ai déjà évoqué l’ECMA dans l’article sur l’incroyable popularité de Javascript. Parlons-en plus en détail.

L’ECMA est une organisation qui gère de la standardisation dans le domaine informatique.

Concrètement elle va imposer des standards pour des technologies, des formats de fichiers ou des langages de programmation. Dont Javascript avec la spécification ECMAScript.

Javascript est basé sur une spécification appelée ECMAScript .

Cette spécification est là pour standardiser Javascript, mais aussi d’autres langages de script.

ECMAScript est géré par un groupe bien précis, à intérieur de l’ECMA, le comité appelé TC39.

TC39 est un comité dans l’ECMA qui s’occupe exclusivement de l’ECMAScript. Donc de la standardisation de Javascript.

Y’a pas longtemps ils ont approuvé une nouvelle version 2020, appelée ES2020, avec plein de nouvelles features.

Quand j’ai vu ça, immédiatement, c’est plein d’entrain que j’ai lancé mon enquête.