Overview of ECMAScript Development
ECMAScript (ES) is the standardized specification for the JavaScript language. Its evolution is a story of technical progress and community collaboration. Here is the timeline of its major versions.
Early Versions: Laying the Foundation
- June 1998: ECMAScript 2.0 released, primarily editorial revisions.
- December 1999: ECMAScript 3.0 released. This version introduced core features like regular expressions and exception handling (try/catch), quickly becoming the widely supported industry standard and dominating for nearly a decade.
The ES4 Controversy and the Harmony Project
October 2007: ECMAScript 4.0 draft released. It aimed for a large-scale, radical upgrade of ES3, introducing complex features like classes, modules, and type annotations. However, its overly ambitious design caused a major rift between key browser vendors (Yahoo, Microsoft, Google) and Mozilla, led by Brendan Eich (JavaScript's creator).
Unable to resolve the conflict, July 2008, ECMA decided to halt ES4 development and reached a compromise named "Harmony":
- Release a set of pragmatic improvements to existing features as ECMAScript 3.1.
- Shelve the more radical ideas for future discussion.
Soon after, ECMAScript 3.1 was renamed ECMAScript 5.
ES5: The Dawn of Modern JavaScript
- December 2009: ECMAScript 5.0 officially released. It introduced strict mode (
'use strict'), object property accessors (getter/setter), array iteration methods (e.g.,forEach,map), and the JSON object, significantly enhancing the language's functionality and security. - June 2011: ECMAScript 5.1 released, becoming an ISO international standard (ISO/IEC 16262:2011).
Concurrently, the Harmony project was split:
- More mature ideas continued as JavaScript.next, which later became ES6.
- Less mature ideas were deferred further (JavaScript.next.next).
ES6 (ES2015) and the Annual Release Cycle
To enable more orderly language evolution, TC39 (Technical Committee 39) introduced a new standardization process.
- March 2013: ES6 draft feature freeze.
- December 2013: ES6 draft released, entering feedback period.
- June 2015: ECMAScript 2015 (ES6) officially released. This was a landmark version, introducing revolutionary features like classes, modules (import/export), arrow functions, Promises, destructuring, and let/const, marking the beginning of modern JavaScript development.
Starting with ES2015, ECMAScript adopted an annual release cycle, with versions named by year (e.g., ES2016, ES2017). This allows new features to be integrated into the standard in smaller, faster increments.
TC39 and the Standardization Process
The ECMAScript standard is developed by the TC39 committee, whose members include major browser vendors and tech companies (Apple, Google, Microsoft, Mozilla). Any new proposal must go through a public review process with multiple stages (Stage 0 to Stage 4) before becoming part of the standard, ensuring broad community participation and consensus.
Note: This content is updated for the modern context. The ECMAScript standard continues to be updated annually; developers should follow the latest ES202x features. For legacy projects, understanding the differences between ES5 and ES2015 remains crucial.