If you've followed the standardization process at all, it may seem as if the ECMAScript technical committee is jumping the gun. After all, the version of the standard that current browsers support is only ECMAScript 3.
But don't worry; no one could accuse the ECMAScript committee of undue haste. On the contrary, the real question -- given how badly a revision of the standard was needed -- is why it took the ECMAScript technical committee 10 whole years to approve one.
"I think it was actually good that we waited some of those years," says Yahoo's Douglas Crockford, one of the leading figures in ECMAScript development.
In 1999, when ECMAScript 3 was approved, it was still very much a Web 1.0 world. Forget about AJAX; lots of Web applications still ran on CGI scripts. The idea of writing full-blown productivity applications that ran in the browser would have been laughed off as a pipe dream. "The Web wasn't stable," says Crockford. "There were too many versions of too many browsers, and only two browser makers at that time. There were just too many bugs in it, so it was not stable enough that you could write applications."
As the years wore on, however, the stability of the Web improved. New vendors entered the field, and the increased competition encouraged browser makers to fix nagging bugs. Soon, major software vendors were eyeing the Web as a platform for serious application development.
But developers' eagerness to exploit the Web led to a whole new problem for the ECMAScript committee. Now, new ideas began pouring in from every side. Ambitious proposals bogged down the draft ECMAScript 4 standard with pages of new documentation. As its complexity grew, browser vendors began to worry that implementing the entire standard was becoming infeasible -- and a standard that can't be implemented is virtually worthless.
Finally, after months of bickering, the ECMAScript committee brought the gavel down. In August 2008, the ECMAScript 4 initiative was formally scrapped. Taking its place was a much less ambitious effort, which was dubbed ECMAScript 3.1 but has since morphed into ECMAScript 5.
Measure twice, cut once
To Crockford, the failed ECMAScript 4 effort was a setback, but a necessary one. As he wrote in 2008, "the only thing we [the ECMAScript community] have to fear is premature standardization." By avoiding expensive mistakes, the ECMAScript 5 standard has yielded a productive compromise.