This course has been updated! We now recommend you take the ES6: The Right Parts course.
Transcript from the "EcmaScript" Lesson
[00:00:50] And it's the official API for ECMA, the official scripting API for Ecma, and a bunch of people immediately jump on board. People who have interest in the language and in implementing their own scripting language jump on board with EcmaScript. That's good. They're able to roll out some new features.
[00:02:38] And there's other out there. You guys could probably name a whole bunch more. But Ecma, it used to stand for the European Computer Manufacturer Association, and that's who they went to. Netscape goes to this European Computer Manufacturers Association to get this to be their center scripting API. But later they just rebrand as Ecma, so it doesn't mean European Computer Manufacturers Association anymore.
[00:03:07] Ecma is a noun. It's a name that they call themselves. It's a proper name. So their role is to facilitate discussions and make sure everyone is participating and keeping it positive. Does anyone, and Ecma puts a committee in charge of steering the EcmaScript API. Does anyone know the name of the committee?
[00:03:35] Besides him?
>> Speaker 2: TC 39.
>> Aaron Frost: TC 39, yeah. So TC 39, TC stands for technical committee. I don't know what the 39 is, but it's called TC 39. So Technical Committee 39, and the TC 39 is, they're the ones currently guiding it today. Does anyone have any friends on the TC 39?
[00:03:58] Acquaintances? No, okay. One guy. No one on the chat. All right, so I'm gonna go back. So ES3 is 1999, and more people started implementing this spec. It's constantly getting implemented, and browsers are becoming more important in 99. Remember we were about to have this huge boom that's coming up in 2000?
[00:04:27] And more people are getting involved in the technical committee, more people are caring about the direction the language. And they get two releases out, and then there's this huge gap. ES3 goes out in 99. ES4 begins in 2006. So we have this this notable gap with not a lot of the middle, so I wanted to kind of talk about what happened there real quick.
[00:05:03] So IE just kills Netscape, just blows them out of the water. Does everyone remember that, when Internet Explorer was all you used? And in 2003 Netscape ends. They have one thing they do before they go under though. They're like, open source all of it, so they open source all their stuff.
[00:05:25] And IE kind of gets their glory days, and the sandbagging happens. And we have this huge gap where there's not a lot of innovation. The EcmaScript standards body doesn't have any bite to like, hey stop doing the things that you're doing and everyone stay in together, because no one is really coming to the meetings anymore.
[00:05:44] So it's gonna take a savior to come back and stop this and kinda get things back on track, and then so the browser wars start. And the guys from Netscape start Mozilla, and we get Firefox. I think it wasn't called Firefox, does anyone remember what it was called?
[00:06:02] I think it was like, was it Phoenix? Something like that. I can't even remember the first name. I remember I used it, but I can't remember what it was called. Anyway so Mozilla's back. So Mozilla's new in town, and they care a lot about the browser, which is awesome.
[00:06:49] And the implementations have different goals, like the different companies involved need different things out of EcmaScript, the API. And Crockford, he's like, let's get rid of the bad parts. Let's just keep the good parts, and Brendan Eich's like, no, let's get Microsoft to work on this generatively and and make the specs match.
[00:07:11] And Microsoft is like, no, we need to add all this extra stuff for JScript.Net. And Adobe's like, dude, we got Flash stuff going on. We needed classes and some other stuff that they needed. So there's a lot of pull in a bunch of different directions, right? So they come up with these two main pushes.
[00:07:27] They're like, hey, let's do one small release, and then a bunch of people jump on that camp and that's called ES3.1. And then there's another camp that's ES4, which is significantly bigger. So in ES1 we've got Mozilla, and we've got Adobe, and we've got Opera, and other people.
[00:07:51] And on ES4 we've got Microsoft pushing for ES4, and we've got Yahoo pushing for ES4, and there's other people in their camp as well. And they they spend a lot of time talking about this, and they don't do a lot of agreeing. And when you listen to them talk about it, there's kind of a falling out where it got really tough and not productive in those TC 39 meetings, and ultimately something's got to give in order for the language to progress.
[00:08:21] And of this fight, though, at the end they're like, okay, ES3 wins. The camp that wants to do a much smaller release, they're gonna win for now, and ES4 can become a thing that we do next. And so these are the ideas of the two camps. ES3 was lighter changes, strict mode, and remove some bad stuff.
[00:08:48] Note, don't add any new syntax, and this is what some people were fighting for. And then other people want some heavier changes, classes and other stuff like that. And they ended up giving in, the ES 4 people to ES 3.1, and when you look at it, a lot of what we're seeing in ES 6 is this ES 4 stuff that kind of got pushed.
[00:09:14] And so in 2008, the TC39 meets in Oslo, and everyone agrees, hey ES 4, we're gonna postpone it. ES 3.1, that's the new thing, and to represent all the progress we've made as a committee and as the standardization body, we're gonna rev the name, though, to ES 5.
[00:09:36] And we're gonna call it 3.1, we're gonna make it an official release we can call ES 5, which is why wasn't an ES 4. That's where ES 5 came from. And then we'll move on from there. And Brendan sends out an e-mail the next month. He's like, hey, we're working harmoniously now.
[00:10:16] So in 2008 Brendan kind of emits the idea of the harmony bucket, and 2009 ES 5 is officially approved. 5.1 is officially approved in June of 2011, and currently, so the ES 6 is finalizing right now. And they're still making changes if you believe it, around modules and around classes and stuff.
[00:10:50] So it's still moving, even though they're trying to finalize it. Maybe they'll finalize it in June of next year. Browser vendors are currently working on ES6, and the TC39 is, while they're talking about some of these last features for ES6, they're talking about ES7 already in and kind of nailing down the proposals for that version.