ImaginativeThinking.ca


A developers blog

What the Heck is it JavaScript or ECMAScript?

By: Brad

Hi Brad, I’m pretty new to JavaScript however I keep seeing it referred to as ECMAScript; what gives?

ThinkingPig

I hear you, I think I can help clear things up. Back in the mid-1990’s Netscape was one of the leading web browsers and they were looking for a way to support dynamic web pages. That is they were looking to be able to render web pages which were not just simple HTML documents but sites which were interactive. The idea was to allow for scripts to be run when a web page was rendered which would respond to user input.

To achieve this goal of an interactive web Netscape invented LiveScript; an in-browser scripting language which would later be renamed to JavaScript.

Between 1996 and 2000 JavaScript matured as a language quite a bit, so much in fact that Netscape submitted it for standardization with the European Computer Manufacturers Association (ECMA) with the specification called ECMA-262 and ISO/IEC 16262.

At the time Microsoft was also in the browser business and was also wanting an interactive experience for users of its Internet Explorer web browser so they too developed an in-browser scripting language; They called theirs JScript which was similar yet still different then JavaScript. Since the standardization of a language is a big deal towards global adoption Microsoft didn’t want JavaScript to be the defacto in-browser scripting language so they worked with Netscape and the ECMA to help craft the standard. What this meant was that the ECMA-262 standard did not end up simply being JavaScript but rather a combination of JavaScript, JScript, and whatever compromises and alterations the committee saw fit to implement in the standard. This new language born from the ECMA-262 standard was called: ECMAScript.

Today ECMAScript, ES for short, and JavaScript are two different entities; ECMAScript is the standardized language and JavaScript tries its best to remain compliant with the ECMA standard. What this means is that when the ECMAScript committee updates the standard with new features any language claiming to be compliant with the standard, such as JavaScript, JScript, ActionScript, etc, must update to incorporate the changes. This is not unlike C++ where the language is standardized and that standard is controlled by a committee who releases new updates to the standard every so often; When the C++ standard is updated it forces C++ compilers such as Visual C++ or Gcc to update in order to remain compliant with the latest version. At the time of writing JavaScript is at version 1.8.5 which is compliant with ECMAScript 5 (ES5). There is a newer version of the standard ECMAScript 6 (ES6), also referred to as ECMAScript 2015 (ES2015) and the next version ECMAScript 2016 (ES2016) was finalized in June 2016.

So to answer your question the two terms could be used interchangeably however there is a distinction: when you see ECMAScript or ES it is referring to a standardized language and when you see JavaScript it is referring to a language which is compliant with the standard. There are many languages which are compliant with the ECMAScript but JavaScript is one of the most widely used.

I hope that answers you question, if you have any follow up questions or comments feel free to leave them below and I’ll try to answer them as time permits.

Until next time think imaginatively and design creatively

Brad

My interest in computer programming started back in high school and Software Development has remained a hobby of mine ever since. I graduated as a Computer Engineering Technologist and have been working as a Software Developer for many years. I believe that software is crafted; understanding that how it is done is as important as getting it done. I enjoy the aesthetics in crafting elegant solutions to complex problems and revel in the knowledge that my code is maintainable and thus, will have longevity. I hold the designation Certified Technician (C.Tech.) with the Ontario Association of Computer Engineering Technicians and Technologists (OACETT), have been certified as a Professional Scrum Master level 1 (PSM I) and as a Professional Scrum Developer level 1 (PSD I) by Scrum.org as well as designated as an Officially Certified Qt Developer by the Qt Company. For more on my story check out the about page here

Feel free to write a reply or comment.