Dean Edwards asked me in a comment on the IEBlog what I personally thought of the ES4 proposal. ('You say that "Microsoft" think that the web is best served by the creation of a new language. Your name is at the bottom of this article. What do *you* think?' - I'll let the FUD comment bounce off.  Damned if we do, damned if we don't say anything.)  Consider the rest of this post to be only my opinion, because I haven't even run it by the other people on the team.

In a way, I'd say it's somewhat immaterial what I personally think, because I am not and have never claimed to be a programming languages expert. Yes, I used to be a developer; but just because I know how to drive a car doesn't qualify me to design one.

On the other hand, I DO know what principles I would place on a new car, and how I would prioritize them (off the top of my head for my primary car: safety, emissions, fuel economy, handling, passenger comfort, cargo space, acceleration) to a qualified car designer.  I've spent a lot of time over the past year with a few people at Microsoft who DO know a thing or two about language design, including those who participate on the ECMA TG-1 committee.

*I* think there are two approachs to take to moving the state of "programming language for the web" forward.  One of them is to evolve Javascript in place (pardon me for collapsing ECMAScript, JavaScript, JScript et al together; it's just easier, and one cup of coffee is not enough for me to be prepared to play semantic games).  That requires one set of principles - ensuring stability of the ecosystem as it is today should take priority, furthering the interoperability of implementations (which is a problem today), enhancing performance and security, and then cool new language functionality.  Those are the priorities I think should be placed on evolving Javascript.

As I understand it, on the other hand, the ES4 proposal introduces a lot of new language functionality that essentially changes the character of the language.  I don't personally have a problem with that language as a language - but I think grafting that different-in-character-language together with a compatible-and-performant implementation of the Javascript of today is both super-hard (if even possible) to get right, and is ignoring the bigger problems of language-for-web, namely interoperating with all the script that is out there.  (I'd also take on other challenges first if I were redesigning Javascript - e.g. domain-aware security as a language tenet.  That's Monday-morning quarterbacking the ES4 design as a new language proposal though.)

My point is that it's a fallacy to think that you're evolving Javascript if your expectation is that the scripts will have a different type param, and be handled by a separate runtime (i.e. the ScreamingMonkey approach).  That doesn't seem like it will have good interop to me, at least not in a world where mashups and separate code components from disparate places (all of which are some variant of ES3 today) are the norm. 

Sadly, this seems to be turning into an "ES4: yes or no" battle.  That's unfortunate, because I don't think anyone should settle into the trenches, and I don't think the other Microsoft guys ever intended to say "everything about ES4 is bad".  It's been pointed out that we haven't made an alternate proposal - well, I'd kinda hoped we could work it out together.  "Open to input" should be the way of the web, should it not?  I think it's a shame that dissenting opinion has been hidden from view, and not publicized; certainly, I think the Microsoft response hasn't been very audible, but that's partly because we've been trying to figure out if it's just us - but of course, us trying to understand what other people think of the proposal in detail has also generated some apparent conspiracy-theorism.  I also think it's a shame that the response to any dissent has equated to shouting the dissenters down.  The string of blog posts over the last week, and the immediate and somewhat incendiary comments from ES4 proponents, has been a good example of that.

Hey, everyone can have an opinion.