jsHave you ever heard of ECMA Script? What about ES5? ES2015? ES2018? If you have even been on the periphery of the front-end web development ecosystem, you may have run into some of these acronyms before, but may have a less than clear picture of what they all mean. My hope is by the end of reading this article, you can confidently decipher the meaning of these different acronyms and understand how JavaScript came to the place we are today.

To begin, we need to start by defining ECMA Script. ECMA Script is a scripting language definition, defined by ECMA International, but you may know it by its more colloquial name – JavaScript (JS). Yes, ECMA Script is just the official name for JavaScript. So why do we call it that? If you have written in JavaScript before, you know that it is nothing like Java – with the exclusion of some syntax similarities – so why does it share a name?

How JavaScript Got It’s Name

Back in late 1994, Mosaic Communications (which eventually would be bought by AOL and then Verizon) released one of the first web browsers, Mosaic Netscape. Soon after they rebranded the browser to Netscape Navigator, which is widely recognized as the first widely used web browser. The developers needed a scripting language that could make websites more dynamic, rather than just having static html with styles. So, a new scripting language, LiveScript, was developed and released in the first iteration of Netscape Navigator 2.0 in September 1995, but was rebranded to JavaScript by the time the beta 3 version was released in December. This is widely believed to be a marketing ploy to take advantage of the increasing popularity of the Java programming language, which Netscape Navigator itself was built on.

Soon after Netscape Navigator was released, Microsoft joined the market with their first iteration of Internet Explorer (IE). Using reverse engineering of Netscape’s JavaScript implementation, Microsoft released VBScript and Jscript in 1996 to compete with Netscape. Even after a short few months, it became evident that the differences between the two browsers made it almost impossible for a developer to write a website that would run effectively in both IE and Netscape, so in September 1996, Netscape submitted the JavaScript specification to ECMA International to standardize on the language. Over a year later, in June of 1997, the first ECMA Script was finalized.

Standardization by ECMA International

A version of ECMA Script was released each of the following years until the year 2000. While version 4 was being worked on, Microsoft had staunchly refused to adopt the specification into JScript. As time progressed into 2007, multiple new players in the market, such as Adobe and Yahoo!, and the divergence of Microsoft as the browser industry leader at this point, caused ECMA Script version 4 to be scrapped due to unresolvable conflict and the ECMA being unable to agree on the specification.

This called for a summit in Oslo, Norway in the summer of 2008 with the goal of collaborating in order to move forward with the ECMA Specification. This summit was successful, and improvements on version 3 targeted for version 3.1, were defined in the new specification, ES 5 which is considered the lowest standard of JavaScript today. This was in 2009.

Fast forward a few years, version 5.1 was released in 2011, largely to conform with the third version of the ISO language specification. Then, a groundbreaking specification, ECMA Script version 6 was released in June of 2015. This specification ushered in a whole new set of features JavaScript developers had been waiting on, such as arrow functions, template literals, and enhanced scope variables with the introduction of the ‘let’ and ‘const’ keywords. This version is what is referred to as ES6. At this point in time, likely due to the significant disparity between the two specification versions, people began referring to version 5 as ES5 as well.

The Confusion Begins

After ES6 was released, the ECMA decided that it was better to refer to it as ES2015, after the year it was released. This further caused confusion among amateur web developers since ES5 matches the last digit of the year ES6 was released. To further add to the confusion, ES7 was released in 2016, so it is referred to as ES2016 as well. Each following year, ECMA Script has advanced a version, with the latest (ES10 or ES2019) being published just two months ago.

So, to break it down, here are the versions of ECMA Script, and their acronyms:

Version Name 1 Name 2
1 N/A N/A
2 N/A N/A
3 N/A N/A
5 ES5 N/A
6 ES6 ES2015
7 ES7 ES2016
8 ES8 ES2017
9 ES9 ES2018
10 ES10 ES2019


Applying This Knowledge

So, there you have it, a very brief history of ECMA Script. But now what? What does this knowledge empower you to do? Knowing what these mean can allow you to more effectively choose technologies and make development decisions to target the specification the browsers your user base requires you to support; maybe because your user base is still operating in IE 8 due to some antiquated hardware means you need to write a polyfill for that specific ES6 function you want to use, or maybe you need to use these acronyms to transpile your react site to be compatible with ES5 so it can be ran on a custom web browser.

Whatever the case, knowing what these acronyms mean can vest you the with the knowledge to decipher documentation, and further navigate the shifting world of JavaScript development.

Check back for future posts on using JavaScript for web development. Have questions? Join in the conversation below!