DEV Community

Cover image for What's Ecma & TC39 ?!
Bassem
Bassem

Posted on

What's Ecma & TC39 ?!

Hey devs from all over the world 😊

I have been working with JavaScript for more than 2 years and I have never during those 2 years looked up ECMA or TC39. Well, I did now - about time huh! - and I am here to tell you guys all about them.

First off, you need to know what ECMA is. it stands for the European Computer Manufacturers Association. - wow, that's a mouthful - It's an organization that standardizes information and communication systems. They work on lots of standards. ECMAScript is one of them and its called standard ecma-262.

TC39 is the committee that works on ecma-262 they create, accept and reject new proposals to the ECMAScript language specification. They are composed of different members 🤓 representing big corporations like browser vendors.

Enough with the boring stuff, I got a fun fact for you! 👻 Here is the ECMAScript language specification, It's a huge document and it doesn't have the term "JavaScript" in it. 😱 That's because Oracle owns the trademark for "JavaScript". So they just called it ECMAScript instead!

That's where the term ECMAScript comes from, "legal rights". 🤯

It's hard for me to say this. Not so long ago, I genuinely thought that ECMAScript is the new hotshot JS because JS was getting old or something. - whaat!! 😮 -

Let's just set one thing straight! ECMAScript is just the term everyone uses for JS when talking about language specification. That's all it is! Don't get confused because of "legal rights".

Anyway, Let's dive into what TC39 do during their meeting. 🏊‍♂️

They meet every 2 months to discuss different proposals. Each proposal needs to pass through 5 stages to be added to the language specification. From S0 to S4. More about those stages here. What's important here is that S4 means that the proposal is finished and ready to be included in the next ECMAScript version.

They operate by consensus. That means that decisions must have a large "agree" and no one is strongly "disagreeing". Also, Every proposal needs a "Champion". He is the one responsible for working out the details of the proposal and presenting it to the committee.

They track proposals on this GitHub repo.

As always,
Happy coding 🔥🔥
“كود بسعادة”

Top comments (0)