The Story Behind ES4

Doug misspeaks, Brendan responds forcefully, Chris weighs in, Brendan lashes out some more, and Dion naively asks, “can’t we all just get along?”

*sigh*

Ok, here’s what happened according to the record:

  • ES4 design starts in October of 2005
  • Doug (Yahoo) joins the discussion in June of 2006, is worried about Microsoft’s support
  • Pratap (Microsoft) goes on record in July of 2006 saying that ES4 will be in IE after version 7
  • Design continues unabated
  • Doug and Pratap registers concern about the size of the spec in March of 2007
  • An ES 3.1 proposal is made in April of 2007, but work stalls
  • A few weeks ago, Doug states that TG1 is “split” on ES4 at the The Ajax Experience conference (a statement that’s not necessarily accurate)
  • Some interpret his remarks as saying there’s a secret coalition between Adobe and Microsoft to force ES4 through and co-opt the standards process
  • Acrimony erupts

What really happened, near as I can tell (warning, speculation ahead):

  • Pratap wasn’t in close communication with his developers and superiors internally at Microsoft early on in the process. Once he finally got feedback internally, he found out that they didn’t like it. Stuck between a rock and a hard place, he tried to work out a compromise resolution in “ES 3.1″, but people further up the chain at Microsoft caught wind of what’s going on in ES4 and put on the brakes. Microsoft went into radio silence until everything spilled out onto the web.
  • Brendan sees what’s coming, and knows it’s not good. If Microsoft has put the brakes on ES4, it means they’re going to split off and go in their own direction. He’s concerned because it puts the future of web application development in jeopardy. This is looking all-to-familiar to him, so he responds with vigor to try and “rally the troops” to fight an unfair turn against several years of dedicated, hard work. His responses are clearly filled with heartfelt passion.
  • Chris’s job is as much political as it is technical. And he’s reeeally good at it. His job is to make sure that Microsoft has a valid stance in the eyes of web developers, even when opposing viewpoints are valid. It’s his job. He may truly believe everything he’s saying; then again, he could be putting up cover for a deeper strategy internally at Microsoft. We can’t know, because he gets paid well to speak well, and he’s good at it.

My thoughts:

  • On purely technical grounds, ES4 is an excellent proposal. It is well-engineered, precise, and balanced. (It is also extremely nuanced, which makes it hard to judge at-a-glance. This is not “a new Java.”)
  • Brendan’s passion is coming off as wild-eyed fanatacism. This is turning lots of people off. Is this a political, personal, or technical battle to him? It’s hard to tell from the tone of his comments. Now, where’s that middle ground again?
  • Chris Wilson is smooth. He’s got a silky smooth voice, and gosh darn it if I don’t just want to be his friend, even if I don’t trust him.
  • Chris wants: stability, interoperability, security, and functionality, in that order. Yet after repeated requests to provide specific, detailed, technical reasons why ES4 doesn’t address all four of those priorities (which it does, IMHO), no answer. I have yet to see a single detailed explanation of how ES4 would “break the web.” Not from Chris, Doug, or anyone else at Microsoft. Would love to see such discussion, truly. Send me links if you know of any.
  • Abject fear is not constructive criticism, and it’s not a strategy. There has got to be discussion about the flaws of this proposal that goes deeper than “I’m afraid of it.”

And if you think there’s some safe “middle ground,” I can only say: I doubt it. Language design (or at least, *good* language design) takes a long time, and Microsoft hasn’t even started drafting their ideas yet. Even if they truly believe that what they’re doing is the right thing for the web, by forking now they’re damning the web to stalled evolution and non-interoperability for at least the next 5 years, probably longer. (It’ll take 1-2 years to get the forked version out the door, another 1-2 years before any convergence between browsers can happen, and another 1-2 years before there’s significant market share for interoperable code. And that’s best-case.)

So think about that before weighing in against ES4. Do you want the status quo for the next 5+ years? I sure don’t.

In parting I’ll point out: no design will be liked by every developer, and that’s precisely the problem here. Not everyone can get what they think is best in this case. But, without support from all vendors, *no one* will get what they think is best. All vendors participated without reservation in the ES4 design until March of 2007. And even after reservations were spoken, no active participation to resolve the outstanding issues has occurred since. Given that, it hardly seems fair to say that ES4 is attempting to do something that will “break the web.” Quite the opposite.

18 thoughts on “The Story Behind ES4

  1. Tinus says:

    Very insightful. I think ES4 and ES3.1 are both good *enough* proposals and call me naive but I think nobody wants a status quo.

  2. Interesting behind the scenes rundown. Personally I would love to see what the ‘stewarts of JavaScript’ people don’t like about the proposal. All I’ve heard is that it’s ‘too big’ or some variant of. Doug is a terrific writer and speaker – would be lovely to have his opinion beyond ‘I don’t like it’. As far as the overview goes I think the authors did a good job of explaining the functionality but an overview and some arguments for these changes could have been more in-depth.

  3. Chris Double says:

    Some of the arguments for the changes seem to be outlined in the proposals page of the wiki:

    http://wiki.ecmascript.org/doku.php?id=proposals:proposals

    There are also various discussions linked to from those. It would be nice to have a ‘rationale’ document for the various features though, collecting all this information together.

  4. Sean McEligot says:

    I long for strong optional static typing ever time I work in javascript, but I’m of mixed opinion here too.

    Past experience tells me that standards don’t work unless they come from the already working ideas. Let a bunch of people try there ideas in the wild, and then make the best one the standard.

    The other way, we just get somebodies cool idea that they’re testing out on us (CSS,C++).

    I don’t think we’re going about this the right way anyway. What we need is a standard browser virtual machine so developers can use any language they want. Then you slowly add to the API, as good ideas take hold in.

  5. Wayne says:

    Sean has the right idea. There is no reason that browsers should be parsing and interpreting programming languages. It’s just another layer of complexity pushed out to the browser when it doesn’t have to be.

    If browsers just executed standard high-level virtual machine instructions we could use any language we want. We wouldn’t have any syntax incompatibilities between browsers. The representation of the code would be compact and fast to load. And browser incompatibilities (and they will exist) can be dealt with by the compiler rather than by the developer in code.

  6. Kris Zyp says:

    Sean and Wayne: The bytecoded VM approach has certainly been suggested by a number of people, however browsers still must handle ES3, so you would basically end up with two language/VMs and that are together probably heavier than ES4. Also, bytecode is not nearly as readable, which is not really conceptually the direction of the open web. Still the idea has some appeal…

  7. * Charts, lists get more interest
    * UGC http://publishing2.com/2007/10/26/the-user-generated-content-myth/

    I won’t speak for Chris, and will leave the whole ES4 debate alone for a moment, but wanted to provide some context around “break the web”. When IE7 made the dramatic improvements to CSS support, masses of web pages that had depended on buggy IE6 behavior broke. I dealt with literally hundreds of top web sites to help them update their sites to be more standards conforming. It’s really not fair to claim that IE team has impure motives, when the team was willing to take such a hit in customer sat and compat in order to advance web standards. Yes, you can say it’s nobody to blame but MSFT, but my point is that all the evidence and past 2 years of history point to a real commitment. There is *no* evidence of hostility to web standards, just speculation about motives that seems to be based on trying to win an argument.

    So, leaving ES4 alone, I have direct personal experience of this as PM for XML when we decided not to go with 1.1 (we stuck with “boring old status quo” of 1.0, and XML is still thriving). I also have experience with the whole “upgrade” from VB to VB.NET. I think both are instructive examples of the kinds of tradeoffs that need to be carefully considered. I have detailed my thoughts on these two cases at the comments to Haavard’s post: http://my.opera.com/haavard/blog/2007/11/02/ars-technica-mozilla-the-bad-guys-fighting-microsoft-the-good-guys.

    Again, I am not trying to say the “revolution” proponents have no merit. And I don’t have a strong position either way at this point. But I think people want a whole lot more than “the other guy has secretly bad motives!” in order to make an informed opinion.

  8. evil() says:

    @Neil “Brendan

  9. evil() says:

    @Neil “Brendans passion is coming off as wild-eyed fanatacism”.

    Im not sure about that, he sounds more frustrated than anything.

    @Wayne “If browsers just executed standard high-level virtual machine instructions we could use any language we want [...] code would be compact and fast to load.”

    Javascript is a good intermediate language, see Haxe, Lazlo, GWT. Whats more it already compresses well (whitespace and gzip/deflate). An AST binary representation is intended for JS3 but should IMHO be disabled by default.

    @Joshua “Its really not fair to claim that IE team has impure motives”

    Oh look, its Microsoft being ironic by playing the victim and asking for fairness again!

    What really isnt fair is for Chris Wilson to begin spreading outright lies and accusing the MS rep of being shouted down (– please pity us poor victims at Microsoft).

    Its also not fair for you to trot out stuff like; “speculation about motives that seems to be based on trying to win an argument”. What else is their to go on? Microsoft has been participating in ES4 for years; where are the technical objections on the wiki?

    We can all be sure that Brendan is not being duplicitous when he talks the future of the open web but this outcome is clearly NOT in Microsoft’s commercial interest.

    @Joshua “I think people want a whole lot more than

  10. evil() says:

    @Joshua “I think people want a whole lot more than /the other guy has secretly bad motives!/ in order to make an informed opinion”.

    I strongly agree with this and look forward to Chris Wilson substantiating his allegations (breakage, MS being shouted down) with some evidence. Otherwise I think the informed opinion _has_ to be made based upon context and motivation (of which were all painfully aware).

    PS: The onclick spam thing and quote handling on this blog are either broken or braindead.

  11. Brendan Eich says:

    I’m not wild-eyed (my hair is short too). But yeah, I’m frustrated, yet not surprised. There’s more going on than I can substantiate with public information in our wiki, although that’s quite enough for anyone paying attention to figure things out.

    Microsoft has been contacting Ajax gurus, showing some kind of doc that we in TG1 have not yet seen, and trying to build blog spin against ES4 (I’ve heard this directly from several people I trust who were among those solicited). They’ve also apparently invited some well-known, independent web developers to Redmond to hear (under NDA) about what’s coming in IE8. Joshua may deny this, but I’m hoping he’ll try for a benign explanation. I can’t imagine what it would be.

    On top of this, there appears to be trouble coming ES4′s way within Ecma, caused by pay-to-play members (Mozilla is not one such), mainly Microsoft. More when I know more, and can say more without breaking a situation that is not otherwise fatally broken already. I truly hope Ecma will show its independence and do the right thing.

    /be (clear-eyed as ever, with still with zero tolernance for spin and FUD)

  12. Chris Wilson says:

    Brendan, why can you not imagine there is a benign (even beneficial to web developers) purpose to us asking a few representative web designers and developers to give us their feedback about what we’re doing in the next version of IE? Isn’t that a good thing?

    As for “trying to build blog spin,” I’d like you to elaborate. I’ve certainly told people they should read the ES4 proposal and make up their own mind, and make their opinion known.

  13. Brendan Eich says:

    Chris: because it should not take an NDA to learn what is coming in IE8. If it does, it makes people worry about proprietary additions being rolled out through Windows Update, forcing de-facto standards, possibly with patent encumbrances.

    What’s more, NDAs can have nasty termination clauses. Open-source developers whom I know generally cannot sign them.

    Elaborating on the blog-spin campaign requires that the individuals contacted by Microsoft blow the whistle publicly, not just tell me. The message to them was sent before the ES4 overview was posted to http://www.ecmascript.org/ — from what I’m told it seemed to be fishing for negative blog posts.

    You may not have known about this personally. I don’t know, and it doesn’t really matter. The point is that an incompatible (as far as we can tell) fork of ES3 was being shopped around quietly by Microsoft, more than a month ago, without being presented to the Ecma TG1 group.

    Given the agreements from March and April, and your false complaints about someone (me?) ignoring the minority dissent, I think this stinks. Why weren’t the wiki’d ES3.1 proposals updated after April? Why the covert op to draw out negative comments on ES4 in blogs? If you didn’t know about this, ask around. Someone at Microsoft did.

    /be

  14. Whoa There says:

    Wow, Joshua Allen, you keep doing it, don’t you?

    That XML thing again. Wow. You “conveniently” forgot that ES4 will not break existing sites. How… “convenient”.

    “There is *no* evidence of hostility to web standards”

    ROTFLMAO

    Oh, and you are NOT a victim, Allen. Stop pretending to be one.

  15. [...] saturation (it is now available to develop on in over 94% of market) is showing the power of the ES4/Javascript2 based Actionscript3 language and how it is inspiring developers to new levels of [...]

  16. [...] | 1 days ago JavaScript2の新機能 ~その2~ First saved by soulim | 4 days ago The Story Behind ES4 First saved by fritz | 9 days ago Web Axis Powers vs Javascript First saved by siamgx | 37 [...]

  17. [...] ES4 (and it’s not done yet — we just released a reference implementation update), the history nicely reconstructed by Neil Mix should make clear that it has been a long time coming, most of the [...]

Comments are closed.