In-fighting saves JavaScript
John Resig announced some very good news about the future of JavaScript yesterday. The technical team at ECMA - TC39 - responsible for writing the spec for the next version of JavaScript (called variously ES4 or ES3.1) had effectively split in two, hindering any real progress towards producing a real spec. The result was that the group finally decided to jettison some of the ideas both camps had adopted and coalesce around a more evolutionary approach to JavaScript.
Despite whatever conflict might have caused this, the outcome is undoubtedly good for JavaScript developers everywhere. The ES3.1 spec add minor sugar while completely neglecting some of the glaring issues with the language. The ES4 spec, meanwhile, mutilated the language to the point of making it unrecognizable. ES4 would have both led to the removal of some of JavaScript’s most useful features while simultaneously telling the world to ignore JavaScript for another 5 years while the standard body in charge of it decided what they wanted it to become.
So thanks TC39, you’ve made a wise choice. Let’s hope your new middle path can fix the language without leaving its most powerful features behind.
Update: Douglas Crockford weighs in as well.

As a programmer, I am disappointed that ES4 has been derailed. It featured many concepts that would have increased the usability of JavaScript. It didn’t mutilate the language - it improved it significantly. From what I’ve heard, Microsoft were the main people behind the split purely because they didn’t want to see Adobe get a foothold in the market with Tamarin and the ActionScript 3.0/4.0 engines.
This is a terrible shame. JavaScript is horribly crufty and full of hackery. The addition of packages, namespaces, closures and so on would have made it far more stable and easier to debug.
This is a dark day indeed.
I agree that some change to JavaScript would really help the language. The “ES3.1″ initiative (which MS led) was way to limited to be useful. Some of the things ES4 wanted to do was really helpful.
However, the truth is that JavaScript has a lot more in it than most people realize. Thanks to the self-inspired nature of JS you can use almost any programming pattern you like, including classes and namespaces, without needed to wait on the ECMA working group to give their blessing. JS already has closures and lambda functions and while there are some rough spots that could use some cleanup (for example the fact that using {} brackets sometimes creates a new closure and other times does not is confusing), in general JS today is extremely powerful if you just learn how to use it properly.
Anyway, my opinion. Maybe ES4 was Adobe’s effort to take over JavaScript. ES3.1 was perhaps MS’s effort to stop its forward progress. I don’t know but clearly a middle path is best for the language itself and its developers.