ECMAScript Fight Results in 'Harmony'

  • By John K. Waters
  • 09/03/08

The fate of ECMAScript 4 (ES4) appears to be sealed and, according to Brendan Eich, chief technical officer of Mozilla and the creator of JavaScript, so is the rift between the two factions of Ecma's Technical Committee 39, divided for a year over the future of this standard. Last month the committee officially agreed to ditch plans for the proposed ES 4.0 specification to focus on a more limited, new spec based on the current standard ECMAScript 3.1 (ES3.1).

Eich dubbed this larger, successor edition to ES3.1 "ES Harmony." That name, he said, was also meant "to describe the united committee and the agreements we reached." In his widely read blog post announcing the Ecma Committee's decision, he declared that the switch to Harmony was "good news for everyone."

"[The committee's decision] does mean that some of the ideas going back to the first ES4 proposals in 1999, implemented variously in JScript.NET and ActionScript, won't make it into any ES standard," Eich wrote. "But the benefit is collaboration on unified successor specifications to follow ES3, starting with ES3.1 and continuing after it with larger changes and improved specification techniques."

ES4 would have been a major fourth edition to the ECMA-262 specification. Proponents of this path advocated an ongoing evolution that would requires new syntax and possibly even new semantics. They sought to include things like stronger support for specifying the type of each variable, which is a more structured approach that's required by languages such as Java. They were also favored support for more sophisticated namespaces or packages that would prevent conflicts when two developers inadvertently use the same name for different methods. Advocates for the ES3.1, which is based on the existing ECMA-262 Edition 3 specification, pushed for a more model evolution.

The Ecma TC39 meeting held in Oslo at the end of July ended with a resolution to focus on four tasks, Eich reports:

  • The shift to ES3.1, "with full collaboration of all parties," aiming for two interoperable implementations by early next year.
  • Collaboration 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."
  • The abandonment "for good" of several ES4 proposals, which the committee deemed "unsound for the Web," including: packages, namespaces and early binding.
  • Rephrasing other goals and ideas from ES4 to keep consensus in the committee, including "a notion of classes based on existing ES3 concepts combined with proposed ES3.1 extensions."

Comments

Add your Comment

Your Name:(optional)
Your Email:(optional)
Your Location:(optional)
Comment:
Please type the letters/numbers you see above