So it's a cleaner, more intuitive way to deal with promises, and before this we use promises and callbacks, but I'm sure many of you remember the nightmare code that would kind of result from very complicated projects. So it was, you know, a godsend when they introduced this. We also introduced objectentries and objectvalues, which was pretty cool, but before this we were live on a four in Loop. Es9 introduced a rest and spread properties, so this allows you to copy or combine arrays more concisely- very pythony.
Asic iterators and generators were also notable features of this release. So it allows promises to enter operate with more generators in a more controlled manner. So it works the regular way as a regular iterators, but they return a promise for an object and then finally we have promisef. Finally, it's a new instance method, so when the promise is settled, it runs whether or not it is resolved or rejected. So really great for running writing like cleanup code, regardless of the outcome of the promise, and then regex improvements. So es10, we're at 2019. It provided the flat and flap map methods for arrays.
No longer will you need to have to wrestle with reduce or concat. But, more importantly, one of my favorite features that were introduced is try catch binding, so you can catch an error even when the error is not specified. This is probably one of my favorite features and I use it all the time because I'm an anxious programmer. So with es11, optional chaining was introduced, as well as the double question mark operator, which is called knowledge coalescing.
So it's a logic operator that checks for knowledge values. So these two things, when used in conjunction, reduce the number of error cases and improved efficiency and handling variables. Specifically, with optional chaining, it checks to make sure that each one is, you know, valid before continuing on. So that was also really awesome. You didn't have, to like write a 10 level if statement, making sure each one existed before you kept going. And then es12, the last one before we continue. So we're at 2021. Now we have numeric separators, which improves the readability for big numbers.
You can use an underscore to break up big numbers and promise not any. This is a promise combinator. It resolves as soon as any one of the promises is fulfilled, any single one of them. The rest of them can reject. They will still return, okay, it will only reject when all the promises are rejected. So these are some pretty cool things that were introduced only two years ago, right? So let's talk about some of the newer things that were introduced last year and this year. So, despite the fact that they were introduced last year, not everyone really knows how to use them, even though even if they've heard of them.
But now you can use the away keyword outside of the async functions at the top level to wait for a promise to resolve. So, while using a top level weight in the module, where one module Imports another one, the execution of the parent module will wait when the execution of the child one is finished. So I made an example here. So the top one is how we do it before. You kind of wrap it in like an anonymous async function, which looked quite ugly, but for the new one. The bottom one worked and I'm sure a lot of you have tried to write the bottom one before. They implemented the feature. But now it's real and now you can do it like that. So this is actually one of the most popular features that they implemented last year. We also have private class methods and Fields. That were implemented last year, so this can improve the encapsulation of your code and prevent accidental access to sensitive data.
But yeah, static class Fields: this means they are shared between all instances of said class and they can only be accessed by other static methods. So that was introduced last year as well. And last but not least, we have the dot at method for indexing. So the common practice before was to write array arraylength minus n, where n is the nth item from the end, or array dot slice negative n, which is hard to read for the first one or has performance issues for the second one.
But you know now, with the creation of dot at, this also works for Strings. It's better for negative indexes and it's better for error handling too. But yeah, traditionally we've been using square brackets to access everything, and now we can access it using dot app, which is safer and handles more edge cases. I think cool. So now that we are done with last year's releases, we can talk about es14, which was just released two months ago actually. So these are the list of the features that were released this year and I can talk a bit more about these. So we have five new array methods- very exciting- and I didn't want to dedicate a slide to each of them, so I put them all here. But essentially we have two sorted.
And, yeah, a more accessible AI. So there's going to be another Workshop about it in two days and you guys should probably go because I think there's going to be a lot of AI stuff happening in the next couple years and it's going to be very exciting. So I stole some of the data from the report and we can talk about how our favorite Frameworks are doing. So it's about is introduced in 2019 and is currently the most interesting front-end framework in the world right now, and you can kind of see that it took View and react spot, as they both kind of took a couple percentage points of a dive.
Angular has, unfortunately, given driven quite a bit low, lower, and Ember has always just kind of been chilling there and I expect Amber to continue chilling there for quite a bit. Yeah, so really exciting to see how things go and really cool to see spell, you know, continue to gain more ground in market share as time goes on, so that is really exciting. Now, usage of rendering Frameworks: it's really cool to see the increase in usage of all kinds of rendering Frameworks. Nextjs is obviously the biggest and most popular one and, you know, still remaining at the top, but it's really cool to see that a couple new Frameworks have also jumped into The Fray, with nux, Gatsby, remix and Astro also gaining a lot of points.
But yeah, so it's a pretty easy readme and it actually is a lot less intimidating than I thought it was when I took a look at it. So if you ever thought about actually, you know thinking, you know I have a really good idea for another array sorting operator, then now is your time to shine, right. So yeah, that's actually all I had today. Hopefully you guys learned at least one new thing, and thank you very much for listening. [applause].