Introduction
As a professional and student of JavaScript, last couple of years have been quite exciting, as a lot of new features came and future releases and specifications are making things very interesting.
But as much as the JavaScript language is interesting, its vocabulary and terminologies and release history is a bit complex.
In this article, I will dive into these details with a bit of history.
History
JavaScript was developed by Brendon Eich in May 1995, while working in Netscape. He was asked to create Java like language for the web, but Eich decided to develop something that would be very easy to start with.
In the initial phase, it was named as Mocha, then officially renamed to LiveScript. Later, Netscape bonded with Sun and released it under the name JavaScript.
After a couple of years, Microsoft Internet Explorer took the language and came up with its own implementation Jscript.
Later, Netscape decided to deliver the language to Ecma International to set the standard and to guide the path of JavaScript and so the name EcmaScript came into the picture.
EcmaScript had few releases between 1997-1999 (EcmaScript 3) and after that, for almost the next decade, nothing new released. At that time, Microsoft Internet Explorer was dominating the world but it was not doing much to improve the language and so Firefox and other array of browsers took birth and the focus came back to EcmaScript.
Basic Vocabulary
JavaScript
JavaScript is a cross-platform, object-oriented, powerful but light-weighted programming language. Initially, JavaScript is developed as the core of web browser, a language that is used and understood by the web browser, but in the present day, it is being used in a wide array of applications including mobile, desktop, game and server side development.
With the variety of JavaScript based frameworks and libraries, JavaScript became one of the most used languages these days.
A true language of the future.
EcmaScript
Terminologies like JavaScript (Sun) and Jscript (Microsoft) have already been taken so when it came to be standardized, the name ‘EcmaScript’ was chosen, as the corresponding standard is hosted by ECMA International.
At present, practically both the terms JavaScript and EcmaScript are interchangeable. Usually, when people refer to language, they use the term JavaScript and when the refer to versions, it's EcmaScript.
ECMA-262
ECMA-262 is an official specification of the EcmaScript language. This has been maintained by ECMA International.
Ecma Technical Committee 39 (TC39)
Group of people who developed Ecma-262 including Eich and other.
Release History of EcmaScript
EcmaScript 1 and EcmaScript 2
First version of EcmaScript, i.e., EcmaScript 1 released in June 1997. It includes all the basic stuff like:
- Types
- Objects
- Operator
- Function
- Comments
- Expression
- Operators
And many more.
Next release that came in June 1998 focused on standardizing the specification and making it fully aligned with ISO/IEC 16262 international standard.
EcmaScript 3
In December 1999, a new version released as EcmaScript 3. This version was one of the biggest makeshifts as this is supported by all the browsers. The highlights are:
- Regular Expression
- Exception Handling (
try
/catch
) - Tighter definition of Errors
EcmaScript 4 (Abandoned)
EcmaScript 4 was developed as the next version but TC39 failed to agree on the feature set. In the end, the committee agreed on the following four points:
Quote:
1. Focus work on ES3.1 with full collaboration of all parties, and target two interoperable implementations by early next year.
2. Collaborate on the next step beyond ES3.1, which will include syntactic extensions but which will be more modest than ES4 in both semantic and syntactic innovation.
3. Some ES4 proposals have been deemed unsound for the Web, and are off the table for good: packages, namespaces and early binding. This conclusion is key to Harmony.
4. Other goals and ideas from ES4 are being rephrased to keep consensus in the committee; these include a notion of classes based on existing ES3 concepts combined with proposed ES3.1 extensions.
EcmaScript 5
A new version released in December 2009 and features are supported by most of the browsers. This version came with various changes that completely changed the way we look towards JavaScript like strict mode, JSON support etc. Highlights are:
- Strict Mode
- Library support for JSON
- Various new methods on Array and objects like
forEach
, filter
, reduce
, some
, etc. - Getter and Setter on Object
EcmaScript 2015 (ES6)
A new edition released in June 2015 as ES6 or EcmaScrip 2015 with a very wide range of features, code standard and syntax. Although till now, most of the browsers don’t support many of these features. The highlights are:
- Moving towards class based OOP (Object Oriented Programming) from prototype based OOP with the inclusion on a new set of keywords and concepts like Class, Module, Static and getter/setter.
- Block scoping variable and functions
- Arrow Function
- Inclusion of Promise
- Internationalization and Localization
- Typed Array
- Reflection and proxies (MetaProgramming)
EcmaScript 2016 (ES7) (The Work In Progress)
The final feature set of ES7 (EcmaScript 2016) has been finalized recently and seems to be a minor release. New features are:
- Include function on Array
- Exponential Operator
EcmaScript 2017 (The Work In Progress)
EcmaScript 2017 is in the very early stage as the feature set too is not finalized yet. But after the ES6, the roadmap looks quite clear as the focus would be on object oriented programming, better Meta Programming, SIMD type and inclusion on various other functions on Array and object and asynchronous programming, etc.
Sources and Related Reading
- http://www.2ality.com/2011/03/javascript-how-it-all-began.html
- https://en.wikipedia.org/wiki/ECMAScript
- https://mail.mozilla.org/pipermail/es-discuss/2008-August/003400.html