John Resig, creator of jQuery and an evangelist for Mozilla, which was one of the major forces behind ECMAScript 4, said in a blog post Aug.13, “First, you can forget a lot of what you learned about ECMAScript 4, previously. Many of the complicated concepts contained in the language have been tossed. Instead there is a considerable amount of effort going into making sure that new features will be easily duplicable through other means.”
Doug Crockford, a Yahoo engineer and a member of the Ecma technical committee focusing on advancing ECMAScript, said in an Aug. 14 blog post:
“Some of the features that were in ES4 were reasonable, so a new project, called Harmony, is starting which will look at adapting the best of ES4 on top of ES3.1. The success of this project will depend on the ability of TC39 [the Ecma technical committee drafting the standard] to do a better job of managing the tradeoffs between innovation and stability, and adopting a discipline for managing complexity. Simplicity should be highly valued in a standard. Simplicity cannot be added. Instead, complexity must be removed.“
Meanwhile, some have characterized the move toward Harmony as a loss of face for Adobe because ECMAScript 4 was to be based on Adobe’s ActionScript 3. Yet, “The folks who have written it this way have gotten it wrong, not least of all because they haven’t been sitting in the meetings and haven’t seen how the resulting differences come from good faith disagreements, not simple strategic posturing,” Russell said. “ES4 (as outlined last fall) wasn’t Adobe’s language, and there was no chance that ES3.1 would have ever been as tepid as many assumed Microsoft wanted it to be.”
Indeed, Russell said ECMAScript 4 was not ActionScript 3. “Major changes to the semantics of Adobe’s initial contribution ensured that any truly compliant ES4 implementation from Adobe would have required many concessions, including the inclusion of a client-side compiler,” he said.
Tug of War
Russell in his even-tempered argument added:
“Microsoft can still hold the web hostage to their ailing WSH VM [Windows Script Host virtual machine] by continuing to ignore its performance, regardless of bug fixes and syntactic updates. Doesn’t matter if it’s amputation or debilitating arthritis, crippled is crippled. For what it’s worth, my interactions with the Microsoft reps on TC39 give me no reason to believe that they won’t be improving their VM. And Adobe can still choose to implement a language which implements an ECMA spec. They can do this any time they damn well please. It may not align so cleanly with their current technology road map, but it’s absolutely feasible…“
Well put, Alex.
In his post, Resig described some of the history leading up to Harmony, noting that there was tension between the ECMAScript 3.1 and 4.0 groups. Essentially, Microsoft and Yahoo were pushing for minor changes and bug fixes to ECMAScript 3 and started the ECMAScript 3.1 effort as a step toward ECMAScript 4.
“These two groups continued to work side by side, but a struggle was inevitable,” Resig said. “The ECMAScript 3.1 group wanted to add changes to the language that would affect the result of ECMAScript 4. This struggle over the past year finally came to a head this past month at the meeting of TC39 (the committee responsible for both ECMAScript 4 and ECMAScript 3.1). Dubbed ‘the Oslo meeting,’ this discussion between the two groups saw an ultimate conclusion: The two efforts had to be merged, otherwise neither one would succeed.”
Dave McAllister, an Adobe engineer familiar with the process, said in an Aug. 15 blog post:
“Unfortunately, as is the case with many standards, the situation became a tug of war. Standards aren’t just about the good of the community; they are also now recognized as competitive advantages. A new standard for ECMAScript thus became mired in a morass of bickering, infighting, and sometimes out and out name calling; the politics of competition. It became clear that members could not arrive at the consensus needed to allow a decade of advancements to be incorporated into the next generation of ECMAScript.“
Mike Chambers, also an Adobe engineer, blogged that “ActionScript 3 is not going away, and we are not removing anything from it based on the recent decisions. We will continue to track the ECMAScript specifications, but as we always have, we will innovate and push the Web forward when possible (just as we have done in the past).” Indeed, “ActionScript 3 isn’t changing and we are not going to dumb down future versions of ActionScript,” Chambers said. “We are going to continue to innovate on the Web with the Flash Player…”
Russell said Adobe gets it. Based on the McAllister and Chambers posts it would appear Adobe does. But mostly it seems Ecma gets it. Let’s just hope this attempt at Harmony does not get mired in yet another tug of war.