Specification
The Nobility of Specification Work
Shelley on Sunday, 2008-08-17- JavaScript: Specification
Hank Williams responded to the recent ECMAScript Harmony announcement with a post titled, Ru Roh! Adobe Screwed By EcmaScript Standards Agreement. In it, he writes:
Adobe provided support to the standards body in helping to define the standard, and most importantly, in creating an open source virtual machine called Tamarin that would run EcmaScript 4.0. But they did all of this before the standard was officially sanctioned. EcmaScipt 4.0 was nothing more than a draft proposal. But Adobe needed to make this bet because they needed a better language than the early ActionScript was, and the existing template, JavaScript, hadn’t moved substantively forward in years.
And so Adobe released Tamarin, the EcmaScript 4.0/ActionScript 3.0 running virtual machine, and a raft of products based it...Unfortunately, while the technology of EcmaScript 4.0/ActionScript 3.0/Tamarin is compelling, the politics sucked.
Adobe and Microsoft are bitter rivals, and the last thing Microsoft would be willing to accept is wide-spread adoption of a language that is strategically critical to a competitor...And so this meant EcmaScript 4.0 was stillborn.
At the end of his writing, Hank summarizes Adobe's plight, now that it has been betrayed:
the interesting question is what will Adobe do now. The technology they have is no less impressive today than it was a few days ago. But they are now totally on their own, which wasn’t exactly the plan.
Poor, poor Adobe. Lost in the wilds of the web, all alone.
Balderdash.
Hank is correct with his assessment of the politics and rivalry, (though not all decisions were political in nature). But he's incorrect about his assumption that ECMAScript 4 is dead. Certain pieces of pre-existing ECMAScript 4 effort are not being pursued, true, but there will be an ECMAScript 4, they same as there will be a 5, 6, and on and on, as browsers and other applications that support ECMAScript evolve over time.
That's really been the issue all along: there's a group within the ECMAScript community that has been pushing a much more aggressive course in the development of the next specification release than other players have been comfortable with. By other players, I don't mean only Microsoft— Google, Yahoo, Opera, Apple...all of the companies impacted by ECMAScript have agreed, with relief, that an interim specification release with full browser company support is the wisest course, with more cautious development in the future.
In addition, Hank also overplayed the nobleness of Adobe's contribution of Tamarin, as well as the company being "screwed" in this decision. For one, Adobe agrees with the Harmony effort, while managing to get its digs in about the superiority of its offering, as implemented in Flex et al.
Make no mistake: Adobe knew it was throwing the cat among the pigeons when it contributed Tamarin. In 2006, I expressed my concerns about Tamarin:
So what do I think of all of this? I think it's exciting, I love the canvas element and I'm interested in many of these other innovations, it's good to revisit HTML, but I wouldn't be me if I also didn't note concerns: HTML element bloat; confusion as to direction of standards and where people should be heading; vastly incompatible web pages as browsers desperately try to keep up with all the changes; frustrated web page developers and designers also trying to keep up with changes; and a growing dominance of Mozilla/Adobe in regards to JavaScript and whether this could lead to a non-neutral ECMAScript 4.x, which does no one any good.
In a way, Hank's biggest misunderstanding is his assuming that any of the other organizations involved with ECMAScript are somehow more "noble" than Microsoft in their involvement. Frankly, that's a naive assumption. The best we can interpret all of the organizations' involvement in the development of the ECMAScript specification—any specification, really— as being based on enlightened self interest. I wouldn't trust any organization that says otherwise.
No, Adobe took a gamble, and the gamble didn't pay off. It will now shrug its shoulders, reflect on the ubiquity of Flash, and continue its merry course. Forgive me if I don't greet its noble stoicism at being stood up at the prom, with tears in my eyes and murmurs of "poor baby".
Interesting comment in the Adobe post in answer to another comment:
Unfortunately, standards aren't also the smartest things. Dumbing down is often a fact of standardization. We haven't let that stop us from innovation in the past; we won't in the future.
Yes, trying to establish a standard that is implemented in all the major browsers is really a dumb thing to do. What we should be doing is picking a winner in this little contest, and then celebrate by increasing the number of torturous cross-browser hacks for the next two decades. That's the ticket: let's show everyone how really smart we all are by continuing our worst practices. As long as we call it "innovation" why, it's all right.
Yes, it's all right.
Harmony
Shelley on Thursday, 2008-08-14- JavaScript: Specification
Harmony is a very good thing.
For some time now, the ECMAScript working groups have been split into two camps: one supporting ECMAScript 4, another ECMAScript 3.1. The former was a more radical leap forward in ECMAScript (JavaScript), while the latter favored more incremental progress.
Ajaxian, John Resig, Simon Willison, and a host of others are referencing an email by Brendan Eich to the lists for both efforts about a new, combined effort dubbed "Harmony".
Eich writes:
It's no secret that the JavaScript standards body, Ecma's Technical Committee 39, has been split for over a year, with some members favoring ES4, a major fourth edition to ECMA-262, and others advocating ES3.1 based on the existing ECMA-262 Edition 3 (ES3) specification. Now, I'm happy to report, the split is over.
The Ecma TC39 meeting in Oslo at the end of July was very productive, and if we keep working together, it will be seen as seminal when we look back in a couple of years. Before this meeting, I worked with John Neumann, TC39 chair, and ES3.1 and ES4 principals, especially Lars Hansen (Adobe), Mark Miller (Google), and Allen Wirfs-Brock (Microsoft), to unify the committee around shared values and a common roadmap. This message is my attempt to announce the main result of the meeting, which I've labeled "Harmony".
Executive Summary
The committee has resolved in favor of these tasks and conclusions:
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.
The rest of the email then gives the details.
As one can read in comments out and about, not everyone is pleased by this new accord, as they don't see that the new effort represents enough progress. However, without accord from all the major browser developers, there is no progress: only variations of pretty chaos.
I must admit, being somewhat conservative — or perhaps, after having worked with JavaScript since the first glimmerings over 12 years ago, exhausted with dealing with browser differences — that I'm happy we're going for simpler changes, implemented broadly. This is a good thing.



