- ES6 support for modern browsers…
- ES7 new features are…
- ES2015 deprecated changes…
- ECMAScript 2017
What are all these different terms?
Well, they are all actually referring to a standard, called ECMAScript.
“ECMASCript is a standard.”
“ECMASCript is a specification.”
“ECMASCript is a programming language.”
To illustrate the meaning of “standard”, think of all the keyboards you have ever used.
The vast majority of keyboards used Latin characters in the same order, with F1 to F12 placed in the top, a big space bar in the bottom.
Why are they all seem designed the same way? That’s because most keyboard producers are using the same QWERTY layout.
No, Ecma didn’t create QWERTY standard for keyboard, the credit belongs to someone else. But Ecma did create a standard for general purpose scripting language, called the ECMA-262.
ECMA-262 is a standard like QWERTY, but instead of laying down specs for a keyboard, it lays down the specification for a scripting language.
That specification is what we know as ECMAScript. To make things easier, please do visit this link for ECMA-262 document.
Let’s break things down a bit. So far we know:
- Ecma-262 is a document reference number for ECMAScript language specification
- Programming / scripting language that adheres to Ecma-262 automatically implements ECMAScript specification.
So that means there are more than one programming language that implements ECMAScript?
You hit it right in the eye. Two other well known ECMAScript implementation are:
- ActionScript, the Flash scripting language for Adobe Flash Player. This scripting language had lost its popularity, and Flash will be officially discontinued by 2020.
The current stable release of ES version at the time of this writing is ES2018 or ES9.
Now what is TC39?
Some of them are from well known tech giants like Google, Facebook, Apple, Microsoft, Intel, Paypal and Mozilla. They are the ones working to finalize ES versions.
Why ES versions are confusing?
Yeah, I do found it confusing as to why sometimes ES version is referenced by edition and sometimes by year. This stuff just make you go nuts.
So as always, I do some research on it, and it turns out that in 2015 the TC39 committee make a commitment to release a new version of ES every year.
With this commitment, they also decided to change ES official naming to use the year of release number rather than edition number. You can use this table for reference:
So yeah, sometimes developers called ES by edition name, sometimes by year of release.
You just have to get used to it. There is also ES Next, a name reserved as a placeholder for the next version of ECMAScript.
So since ES9 has been released, the ES.Next is ES10 or ES2019.
So ES2015 must be important then?
Yeah, ES2015 is an evolved version of ES standard that has been developed since 2011.
This new version must step up the programming language into a level where developers can use it for the modern browsers.
Is there anything else I should know?
One more thing. The implementation of ES in the browser is fragmented and the support for ES6 is pretty unreliable outside of popular browsers like Chrome, Firefox, Edge or Safari.
Even modern browsers like Chrome or Safari had just recently accomodated full support of ES6. If your users are using less known browser or haven’t updated their browser for the last 9 months, you’re toast. (Or worse, still using Internet Explorer.)
The most popular tool for generating ES5 code from ES6 is called Babel. We will learn about it later.