aka. Seshpenguin
title: Async/Await, and why I love JS in 2019 author: Seshan Ravikumar type: post date: -001-11-30T00:00:00+00:00 draft: true url: /?p=146 classic-editor-remember:
I think I have a crush on ECMA…
Also this most may be somewhat controversial… you can yell at me in the comments below.
Considering I now have a job as a React/JS developer… I work with JS a lot. Probably more than what some may consider a healthy dosage of JS. Maybe you think any JS is too much JS…
But wait! Does JS deserve all the hate? In 2019, I don’t think it does.
If you are not too familar with JavaScript, you’ve probably heard the terms ECMAScript, ES6, ES2015, etc. What the heck is Ecma?
Ecma International is a standards organization, similar to others such as the ISO, IEEE, etc. Ecma’s job is to maintain standards, which are basically just really long, verbose, and somewhat boring documents that describe things.
What does that have to do with JS? Here’s the thing: JS is used everywhere, and by a lot of people. Somehow all these implementations of JS have to be coordinated, so that everyone’s idea of JS is the same (what we don’t want is a repeat of the 90’s browser wars: websites only worked correctly on certain browsers). So, Ecma to the recuse, created a standardized version of JavaScript. The ECMA-262 (aka ECMAScript) standard did exactly that!
JavaScript then, is an implementation of ECMAScript. Why the standard itself isn’t just called JavaScript? Trademark, and other historical reasons.
This is probably a good time to note: JavaScript is not Java! Yes, they sound similar, but are considerably different languages.
So then, what about ES2016, ES2017, what are those?
Since ECMAScript (ES) is a constantly evolving language, each year a new version of the ES standard is released. The first edition of ECMAScript, ES1, was released wayyyy back in 1997! Since ES6 (released in 2015), Ecma used the year the standard was released instead of the edition. Thus, ES6 == ES2015.
So, in relation to JavaScript, which is the actual implementation of ECMAScript that you and I use, you’ll commonly hear things like x browser supports ES2015, or, you can do this thing since ES2019.
When we say something supports an ES version, we mean that the JS implementation follows that specific standard version. Think of it like a Pizza. All Pizzas are Pizzas, but some Pizzas are Cheese, some are Cheese+Pepperoni, Cheese+Pepperoni+Bacon… JS is JS, but some JS implementations are ES2015, ES2017, etc.
If a browser, for example, supports ES2019, that also means it supports all versions of ES before it, since each successive standard is based on.
I also don’t think that Pizza metaphor made any sense, but I am pretty hungry.
I think a lot of peoples hate for JS makes sense back before, say, ES2015. JS was a much simpler language, it didn’t have all the features of it’s bigger siblings (Java, C++, etc), it was pretty slow, and the “ecosystem” (we’ll get back to this) wasn’t very big.
Things have changed! Since ES2015, there have been so many new features added, frankly too many to be listed here. Not only that, the ecosystem has matured significantly. Ecosystem?
The JS ecosystem really consists of two things. One is the community, and two is the libraries. Both have