No more modes?

Brendan Eich brendan at
Thu Oct 14 10:02:47 PDT 2010

On Oct 14, 2010, at 8:51 AM, Mark S. Miller wrote:

> On Thu, Oct 14, 2010 at 8:29 AM, Brendan Eich <brendan at> wrote:
> On Oct 14, 2010, at 8:12 AM, Mark S. Miller wrote:
> > On Wed, Oct 13, 2010 at 5:35 PM, Brendan Eich <brendan at> wrote:
> > On Oct 13, 2010, at 4:31 PM, Mark S. Miller wrote:
> >
> >> Recently, I met with the Google V8 team for two full days. One message that came through loud and clear, that I said I would relay to the list, is "please, no more modes."
> >
> > If this is an attempt to avoid <script type="harmony"> (harmony a placeholder for something more RFC4329-conformant), it's not going to work.
> >
> > Declaring what the conclusions of discussions must be is not helpful. I am raising an issue. Let's discuss it.
> The shoe seems to be on the other foot, to be blunt. You knew about and previous work -- did you raise the issue? It seems you met for two days with V8 folks and came back with "no more modes", ignoring the work we'd done in TC39 on exactly why opt-in versioning seems required, and how it might work. That is less than helpful.
> Sorry for being grumpy,
> Apology will be accepted once you stop being so grumpy ;).

I could try a different tack:

Forget all that went before in TC39, the world started with your meeting with the V8 team (who've done awesome technical work, although nothing for the evolution of the language -- but no matter!).

I'm intrigued by this "no more modes" idea! Tell me more. How do you avoid sending syntax errors to downrev browsers without fallback automation of some kind, in script or in the markup (or both)?

Does this help? It didn't really do much for me (see below for why).

> I really am surprised by your tone here.

Try to see the other guy's point of view.

I see the desire for no more modes. As an implementor I share it.

However, the fallback or graceful degradation issue remains. If we have no new scrip ttype (RFC4329 version parameter on type="application/ecmascript", e.g.), then we have a problem.

Also, and this is not a minor point: Collin Jackson and I did some work on versioning in TC39, and we've discussed in many meetings and wik-page setting the problem of new syntax in Harmony vs. old browsers that do not parse it. This was an issue even in 2008, which IIRC was when (May TC39 meeting at Adobe San Francisco) the idea Hixie and Maciej advocated, of standardizing error correction for keyword-introduced statement forms analogous to if and while statements was discussed and found to be flawed (by Waldemar Horwat and Lars Hansen).

There's a fairly rich history here. We ignore it to our detriment, and at some loss of happiness on my part over starting the world afresh because the V8 team wishes for no more modes.

To be super-blunt, and this is nothing personal since you are doing great work on TC39, Google is a big company with many agendas.

On one hand we have V8 team folk, never participating in language evolution, indeed developing in stealth mode for two years and therefore implementing web-compatible junk like foo.arguments on function foo (my fault, the "junk" blame goes to me) instead of perhaps (or even while remaining stealthy) working to get this junk off of the public web, and now wanting "no more modes", which verges on "freeze the language", which is tantamount to stagnation.

On the other hand, we have many different groups at Google working to advance such things as sandboxed native code on the web!

Forgive me for objecting that such innovations constitute "modes" or versioning in a very big way. A version parameter on <script type="application/javascript"> is much simpler and easier to standardize and implement interoperably among the browser vendors!

So, again not picking on you, I'm a bit unapologetically skeptical, if not grumpy or hostile, to a "no more modes" pitch that ignores both the work we've done in TC39 and the larger context of web evolution, in which even Google is willing to make major version-like changes.

Most of all, I'm committed to the web not stagnating, but evolving sensibly and interoperably among various actively developed browsers. This still favors Harmony with opt-in versionin, in my view, over a "no more modes" attempt to predict the future or simply freeze ES5 as it is.

> I did not raise this issue before because I do not feel strongly about this issue. I also had never had a multi-day meeting with the V8 folks before. In the previous meetings and conversations we've had, they never communicated this objection to me. During that recent two day meeting, they did convey this objection, emphatically. This was new information for me. Now it is new information for you. Can we please calm down now?

I will be as calm as a cloud. The objective issues: no syntax error, fallback of some sort that doesn't require user-agent sniffing, no freeze-the-future-at-ES5, remain. Now what?

[snip the rest of my message, which you cited without comment...]

Really, I am truly sorry if I am distracting from the substantive issues by objecting to the form and substance of your original post. But, I don't think the "politics" are immaterial, and we should probably sort them out. But to avoid more dancing around the substantive issues:

Would you or Erik please address the problem of avoiding syntax errors in old browsers, and allowing content authors to switch to fallback content without user-agent sniffing (ideally without another round trip, although that is state of the art today: document.write of a script tag, e.g. as done by Google analytics). These are the problems that "no more modes" does not begin to solve.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the es-discuss mailing list