What is ECMAScript?

ECMAScript is a standard general-purpose programming language that is conformed by Javascript and some other languages. It is the scripting language that formed the basis of browser-based Javascript and Node.js. ECMA is an acronym for European Computer Manufacturer’s Association, which develops standards for information technology and consumer electronics. Languages such as JavaScript, Dart-lang, and C# were standardized by ECMA.

Think of ECMAScript as Javascript without a host environment. Javascript has two major environments: browsers and Node.js. These environments add some APIs to the language. An example is the window object on Browsers and the fs module in Node.js. If you strip all external APIs from these environments, you get ECMAScript.

The code block below shows some core features of ECMAScript:

// Core ECMAScript
const student_name = "Hermione Granger";
const age = 12;
let fromHogwarts = false
if (student_name === "Hermione Granger"){
fromHogwarts = true
}

When used in the browser, it becomes browser-side Javascript.

Who created ECMAScript?

The original specification for the language was written by Brendan Eich at Netscape. The language was implemented in Netscape Navigator 2.0 and was called Livescript. ECMA International started the development of the first edition in 1996. There were 2 other implementations, ES2 and ES4, after the first. The 5th implementation, ES5, is the defacto standard of the language.

ES6 and ESNext

The 6th edition of ECMAScript created waves in the industry and led to the wide adoption of Javascript by web developers. ES6 was a 15-year effort that started in 1999 and got published in 2015. It included exciting new features such as rest and spread operators, classes, and template strings.

ESNext is the next version of ECMAScript at the time of writing. The current ESNext is ES2021, which will be fully published before the end of 2021. ESNext features are proposals that haven’t been finalized yet. When these proposals are finalized, they become new ECMAScript features.

The proposal of proposal development and feature addition is handled by Technical Community 39 (TC39) of ECMA International. TC39 is a group of Javascript developers, industry professionals, and academics that maintain and define new standards of ECMAScript.

Implementations of ECMAScript

  1. V8https://v8.dev/ is used in Chrome and Node.js, and is written in C++.

  2. SpiderMonkeyhttps://spidermonkey.dev/#:~:text=SpiderMonkey%20is%20Mozilla's%20JavaScript%20and,C%2B%2B%2C%20Rust%20and%20JavaScript. is used in Mozilla Firefox and written in C++.

  3. Rhinohttps://en.wikipedia.org/wiki/Rhino_(JavaScript_engine) is written in Java.