UPDATE: Dave Thomas, not the Ruby one, has some good criticisms on ECMA 4 in a blog post. Brendan Eich also recently posted some news and thoughts on ECMA 4. The ECMA TG1 group has also put out a reference implementation of ECMA 4.
UPDATE2: On another note, re-reading this article my tone and tenor towards Microsoft was a little harsh, more rant than anything. I tend to have a large latent frustration with Microsoft, especially with regards to IE. I guess don’t blog while pissed off, is probably a good rule to follow.
Surprise, Surprise, Microsoft is spreading FUD about the proposed next version of Javascript, ECMA 4. The Microsofties have been purposely vague about there criticisms on ECMA 4. As this is a requirement for FUD, quoting from Wikipedia: “FUD is generally a strategic attempt to influence public perception by disseminating negative (and vague) information.”
Brendan Eich, the CTO of Mozilla, has done a good job of rebuffing the falsehoods, as he calls it. Brendan specifically targets Chris Wilson a member of the Internet Explorer dev team. Chris Wilson explained his reluctance on ECMA 4(ES4) in a blog post: “as the mashup development pattern would require interoperation of current ES3 scripts as well as supposed new ES4 scripts. With the ScreamingMonkey plan, this clearly won’t work well – as they’ll be run in different runtimes”. This is a mischaracterization of ScreamingMonkey, developed by the open source community and Mozilla, it is meant as a backup plan only to bring ES4 to IE. In the potential case Microsoft decides not to support ES4 at all. ScreamingMonkey is a solution not the problem, and it is certainly not an excuse for Microsoft to not implement ES4 in the first place. ScreamingMonkey will only be implemented if the IE team fails to adopt the ECMA 4 standard. As Brendan Eich has explained: “I’ll make a promise: if Microsoft truly embraces ES4 and ships it in an IE beta, I’ll put ScreamingMonkey on hiatus”.
Chris Wilson goes on to say, “but even without it(ScreamingMonkey) I expressed my skepticism that ES3 scripts won’t suffer if run through an ES4 engine.” It seems like Microsoft and the IE team has already made up their mind. Now ES4 is supposed to be reverse compatible with ES3. Maybe Chris Wilson is correct and it will “suffer” as he says. However, he doesn’t give any details as to why nor has anyone from Microsoft really explained there position in detail. As the saying goes, it is time to put up or shut up.
However, I think this debate is just hiding the real underlying issue. Microsoft doesn’t care about the open web. They know they missed their opportunity with Web 1.0, and that has brought them Google and company. I don’t think they want to make this same mistake again. There is an advantage here for Microsoft. Holding back ECMA 4 adoption, spreading FUD, acting like changes will break the web, and in the end making really no changes or advancements to Javascript. As big changes and advancements would cut into Microsoft’s plans with Silverlight.
And look what the last “advancement” Microsoft brought to the open web and what it did for them. XMLHttpRequest or Ajax, originally developed for IE 5 to enhance Outlook Web Access, was quickly incorporated into Mozilla 1.0 and other competing browsers. Ajax quickly exploded and has brought Microsoft nothing but grief in a powerful and growing Google platform: Google Maps, GMail, Google Docs; a slew of new competition named Web 2.0; and bunch of other web-based technologies to numerous to name, all which REQUIRE Ajax.
Ajax has seemed to help everyone, but Microsoft and it is easy to see why. With Ajax, applications which were only viable on the desktop in the past, now become possible on the web. Ajax has begun to make the web the platform, not the operating system to potential detriment of Microsoft share.
Of course, web-based technologies can’t completely compete yet. Which goes back to my original point, and explains why Microsoft would want to stifle innovation here. If the movement is towards better, faster web based applications. Microsoft wants no part, unless your using Silverlight.