by Michael Aranda
I ended up having to wade through a sea of ambiguous and seemingly conflicting results:
“ECMAScript is a standard.”
“ECMAScript is a specification.”
“ECMAScript is a language.”
Holding back the urge to cry, I bucked up and decided to commit to some painful yet productive research.
So get pumped.
Without further ado, let’s get started.
An organization that creates standards for technologies.
To illustrate an example of “standard” (though not one created by Ecma), think of all the keyboards you have ever used. Did the vast majority have letters in the same order, and a space bar, an Enter key, arrow keys, with numbers displayed in a row at the top? This is because most keyboard manufacturers base their keyboard design on the QWERTY layout standard.
This is a standard published by Ecma International. It contains the specification for a general purpose scripting language.
ECMA-262 is a standard like QWERTY, but instead of representing a keyboard layout specification, it represents a scripting language specification called ECMAScript.
Think of ECMA-262 as ECMAScript’s reference number.
A scripting language
A programming language designed specifically for acting on an existing entity or system
For a general idea of what makes a programming language a scripting language, consider the commands “walk”, “run”, and “jump.” These actions require something to carry them out, perhaps a person, a dog, or a video game character. Without an actor to perform these commands, “walk”, “run”, and “jump” wouldn’t make sense. This set of actions is analogous to a scripting language that focuses on manipulating an external entity.
The specification defined in ECMA-262 for creating a general purpose scripting language.
Synonym: ECMAScript specification
While ECMA-262 is the name of the standard, it represents the scripting language specification ECMAScript.
ECMAScript provides the rules, details, and guidelines that a scripting language must observe to be considered ECMAScript compliant.
A general purpose scripting language that conforms to the ECMAScript specification.
This analogy helps to explain a few things about browsers:
Differences in browser performance
Differences in browser support
The ECMAScript compatibility table is a good resource for answering those questions.
Synonyms: Host environment
It is the sixth edition of the ECMA-262 standard, and features major changes and improvements to the ECMAScript specification.
Synonyms: ES6, ES2015, and ECMAScript 2015
This edition of ECMAScript changed its name from ES6 to ES2015 because in 2015 Ecma International decided to switch to annual releases of ECMAScript. Accordingly, Ecma International also started to name new editions of the ECMAScript specification based on the year they are released. In short, ES6 and ES2015 are two different names for the same thing.
A transpiler that can convert ES6 code to ES5 code.
Developers can use the shiny new features that come with ES6, but may be concerned with cross-browser compatibility for their web apps. At the time of the writing of this article, Edge and Internet Explorer do not fully support features from the ES6 specification.
Concerned developers can use Babel to convert their ES6 code to a functionally equivalent version that only use ES5 features. All of the major browsers fully support ES5, so they can run the code without any issues.
One more interesting tidbit
Chicken or the egg
It sounds exactly like the time-travel trope of people being their own parent — a little wonky, but kind of fun to think about.
All good things
I know we’ve all had fun here, but that was a lot of information to digest. I’ll take this opportunity to say farewell.
Please feel free to leave any questions, comments, suggestions, or concerns below.
Thank you very much for reading!