History of ECMA (ES5, ES6 & Beyond!)
Tags: javascript, es6, codenewbie, webdev
Published: 2020-06-14 07:28:32

# Introduction

As a JavaScript newbie, I found the use of acronyms ES6, ES 2015 and ECMAScript 7, etc. very confusing. In this article, I will breakdown the ES abbreviations and give you a brief history of ECMAScript.

# What is ES?

ES stands for ECMAScript. An association of European manufactures was formed in Brussels on April 27, 1960, to bring in a set of standards in operational techniques such as programming and other input & output codes. The association was formed to draw-up the by-laws and rules for standardization. They were referred to as the *'European Computer Manufacturers Association'* or otherwise popularly known as ECMA.

JavaScript was developed by Brendan Eich of Netscape; initially, it was named Mocha, later LiveScript, and finally JavaScript. The name 'JavaScript' was chosen in the hope of capitalizing on Java language's popularity.

Netscape had submitted JavaScript to [ECMA International]([https://www.ecma-international.org/](https://www.ecma-international.org/)) for standardization. This resulted in the new language standard known as the ECMAScript. And that, ladies & gentlemen is the history of ECMAScript or popularly known as ES.

# So What's ES5, ES6, etc.?

ES followed by the number is referencing an edition of ECMAScript. So far, there have been ten editions of ECMAScript published.

## ES1 to ES4

I won't go into the details of the first four versions, mainly because I feel it isn't very relevant as of today. However, if you are interested to know more,  you can find them online.

The only thing that might interest you is that every year the committee met and released a new version of ECMAScript standard. So, the releases ES1 to ES3 were annual from the years 1997 to 1999. However, ES4 was completely abandoned due to political differences.

## ES5

On December 2009, nearly 10 years later, ES5 was released. 

### Notable Features

Addition of the 'strict' mode, a feature allowed to check for correctness of JavaScript code.

## ES6

This is pretty much the starting point for all confusion. All you need to remember is this → ***ES6 is the same as ES2015!!***

After it was initially released in June 2015, it was known as ES6, but then later the committee wanted to keep the release in par with the year it was releasing and hence it was renamed to ES2015. Subsequent releases were also named according to the year of release such as ES2016, ES2017, etc.

ES6 or ES2015 was one of the most important releases due to a number of features released to bring JavaScript in par with other modern languages.

### Notable Features

- Class declarations (class Person() { ... })
- Introduction to Modules - import * as moduleName from '.filename'; export const Person
- Iterators for...of loops
- Function Expressions ( function() ⇒ { ...}())
- Collections such as Maps, Sets
- And many more..  You can read about the entire list [over here]([https://www.ecma-international.org/ecma-262/6.0/index.html](https://www.ecma-international.org/ecma-262/6.0/index.html))

## ES7 (ES2016)

ES7 or officially known as ES2016 was released on June 2016.

### Notable Features

- Async/Await for asynchronous programming.
- Block Scoping of variables & functions.
- Destructuring patterns of variables.

## ES8 (ES2017)

ES8 or officially known as ES2017 was released on June 2017.

### Notable Features

- Async/Await Constructors.
- Features for concurrency and atomics.

## ES9 (ES2018)

ES9 or officially known as ES2018 was released on June 2018.

### Notable Features

- Rest/Spread operators for variables (three dots ... identifier)
- Asynchronous Iteration
- Promise.prototype.finally()

## ES10 (ES2019)

ES10 or officially known as ES2019 was released on June 2019.

### Notable Features

- Array.prototype.flat
- Changes to Array.sort
- Object.fromEntries

## ES.Next

ES.Next is a dynamic term that refers to whatever the next version at the time of writing. 

# Conclusion

I hope this article clarifies what the terminologies ES or ECMAScript means and what the number following the word ES indicates. So, if anyone refers to ES6 or ES2015, remember they are referring to the same version.

Thank you for taking the time to read this article. Please leave your comments, feedback on what you think about this article. Also, don't forget to share it with your friends.

If you like this, you may also be interested in:

- [All about JavaScript Objects]([https://dev.to/skaytech/javascript-objects-31lb](https://dev.to/skaytech/javascript-objects-31lb))
- [All about JavaScript Functions]([https://dev.to/skaytech/all-about-javascript-functions-1l5f](https://dev.to/skaytech/all-about-javascript-functions-1l5f))
- [Immediately Invoking Function Expressions - IIFE]([https://dev.to/skaytech/iife-immediately-invoking-function-expressions-1164](https://dev.to/skaytech/iife-immediately-invoking-function-expressions-1164))
- [Module & Revealing Module Design Pattern]([https://dev.to/skaytech/js-design-patterns-module-revealing-module-pattern-30c6](https://dev.to/skaytech/js-design-patterns-module-revealing-module-pattern-30c6))