[00:01:18] And during that same period of time, a lot of things happened in the broader web ecosystem where, for example, Internet Explorer 6 had come out and then stagnated for more than 5 years. No updates, no changes to the web platform. And many people became very frustrated and started up whole new browsers.
[00:03:48] We wanna move the language forward to be a full class programming language and there a lot of features that we wanna add to language to do that. So that it can be seen as equal to any of other major programming languages. And so, there was a lot of disagreement about each individual feature and it took months and sometimes years for them to work out these differences.
[00:04:09] But the end result was that we didn't get an ES6 or ES2015, we didn't get that land until late 2015. So 2009 to 2015, we have 2009 to 2015 of 6 years. We had a decade of no change, and then six years since Java Script had been updated.
[00:04:34] And at that point when they landed ES6, and they had all these changes, and boy there was a lot of changes. Something like over 300 new features or tweaks from small things to giant whole new features, like modules and classes. Major stuff and even tiny little helper APIs and little syntax and stuff like that.
[00:04:56] So it's this big, big change that felt like it had been pending not for 6 years but for 16 years. There's this frustration like we've gotta force all of this stuff into the language. And naturally, there was a bunch of blow back. Like you just completely changed the entire language and now every blog post that I read I can't even understand what they're writing cuz there's all these like arrow symbols all over the place and dots dots everywhere.
[00:05:39] But we also don't show up with this massive load that we just dump on people and then nobody can process it and even to this day four years later, people are still reeling from the change set of ES6. And so in that ES6 process they also voted to say the healthiest thing for our language is not to stagnate.
[00:06:48] Now, just as a little bit of nuance there, they vote in the early part of the year, and then by mid year, it's officially ratified by ECMA, the organization that manages standards. So we at the current moment of this course or in-between, we have voted on what those specs are, but they have to be officially ratified.
[00:07:09] That's essentially a rubber stamp at this point, so we know what ES2019 is gonna look like. And they're already talking about things that are gonna happen in ES2020 and in 2021. Nobody knows when a feature is gonna land until it reaches the final stage. There are 5 stages of the TC39 proposal process from 0 to 4, and stage 4 means done, finished, shipped, it's complete.
[00:07:36] So anything that makes stage four by that earlier vote, January or February of a year, anything that has reached the stage four by the end of that meeting is in for that year. And if it's on stage three or before it's not in, but it'll still be on the next train or the next train or the next train.
[00:07:55] So they setup this process and said, let's keep proposals moving independently rather than having to keep everything in a gate. And let these proposals move as quickly or as slowly as is appropriate. Because some features we know pretty well, it's a small define surface area let's just move forward with it and some things are huge and it may take years for us to figure out.
[00:08:46] So they put in all of this structure and process to say, let's get on a better train, where every year are continually evolving the language. And that's where our status quo is today, that each year we see a variety of different features from tiny little tweaks, like in ES2019 they made some very nuanced tweaks to jsons.stringify.
[00:09:10] The way it handles Unicode character encoding, not something that is probably pressing on most developers minds, but important nonetheless. And then we have big features which one of them will talk about, like flat mapping, that's a big feature especially if your functional programmer. You love having the ability to do flat mapping, and so we get API then we get tiny little tweaks and everything in between.
[00:09:34] And so we're hoping that we never see either of the two things that have happened over the last 16 years. We're hoping that we never see a long period of time of nothing happening. And we're also hoping that we never see a year show up where just everything dumps on everyone and we're overwhelmed.
[00:11:03] There are a number of features that I'm very hopeful for like pattern matching, and the optional chaining operators so that you don't have to check for undefined at each level of a property access. Those are great features, they are in various stages and moving their way towards getting on the train.
[00:11:21] So those things will continue to happen for the language.