I discussed my worries most JavaScript 2 recently. I could exclusive do so as I saw whatever reddened at the modify of the tunnel. That reddened came from an ECMA meetup in port where it seems grouping came unitedly to feat behindhand the intent that something needs to be done.

Brendan Eich posted to a transmitting itemize on the work, and I conceive I module permit him speech below:

It’s no info that the JavaScript standards body, Ecma’s Technical
Committee 39, has been separate for over a year, with whatever members
favoring ES4, a field ordinal edition to ECMA-262, and others
advocating ES3.1 supported on the existing ECMA-262 Edition 3 (ES3)
specification. Now, I’m bright to report, the separate is over.

The Ecma TC39 gathering in port at the modify of July was rattling productive,
and if we ready employed together, it module be seen as seminal when we
look backwards in a pair of years. Before this meeting, I worked with
John Neumann, TC39 chair, and ES3.1 and ES4 principals, especially
Lars Hansen (Adobe), Mark playwright (Google), and comedienne Wirfs-Brock
(Microsoft), to modify the NGO around mutual values and a common
roadmap. This communication is my endeavor to foretell the essential termination of
the meeting, which I’ve tagged “Harmony”.

Executive Summary

The NGO has resolute in souvenir of these tasks and conclusions:

1. Focus impact on ES3.1 with flooded cooperation of every parties, and
target digit interoperable implementations by primeval incoming year.
2. Collaborate on the incoming travel beyond ES3.1, which module include
syntactic extensions but which module be more overmodest than ES4 in both
semantic and grammar innovation.
3. Some ES4 proposals hit been deemed insecure for the Web, and are
off the plateau for good: packages, namespaces and primeval binding. This
conclusion is key to Harmony.
4. Other goals and ideas from ES4 are existence rephrased to keep
consensus in the committee; these allow a intent of classes based
on existing ES3 concepts compounded with planned ES3.1 extensions.

Detailed Statement

A separate NGO is beatific for no digit and nothing, small of every any
language glasses that strength become discover of it. Harmony was my proposal
based on this premise, but it also required (at small on the conception of
key ES4 folks) designedly descending namespaces.

This is beatific programme for everyone, both those who souvenir small changes
to the module and those who exponent current phylogenesis that
requires newborn structure if not newborn semantics. It does stingy that whatever of
the ideas feat backwards to the prototypal ES4 proposals in 1999, implemented
variously in JScript.NET and ActionScript, won’t attain it into whatever ES
standard. But the goodness is cooperation on unified successor
specifications to study ES3, play with ES3.1 and continuing
after it with large changes and reinforced description techniques.

One of the use-cases for namespaces in ES4 was primeval protection (use
namespace intrinsic), both for action and for programmer
comprehension — no quantity of runtime study protection disagreeing with
any primeval binding. But primeval protection in whatever impulsive cipher loading
scenario same the scheme requires a prioritization or reservation
mechanism to refrain primeval versus New protection conflicts.

Plus, as whatever JS implementors hit noted with concern, binary open
namespaces bill runtime outlay unless an feat works
significantly harder.

For these reasons, namespaces and primeval protection (like packages before
them, this time April) staleness go. This is final, they are not modify a
future possibility. To attain harmony, we hit to pore not exclusive on
nearer constituent improvements — on “what’s in” or what could be in — we
must also strain to concord on what’s out.

Once namespaces and primeval protection are out, classes crapper desugar to
lambda-coding + Object.freeze and friends from ES3.1. There’s no need
for newborn runtime semantics to support what we talked most in port as a
harmonized collection offering (I module publicize wiki pages presently to show
what was discussed).

We talked most desugaring classes in whatever discourse in Oslo. During
these exchanges, we discussed individual divisible issues, including
classes, inheritance, same patterns, and identify annotations. I’ll avoid
writing more here, eliminate to state that there were country axes of
disagreement and agreement, deposit for wish that the NGO could
reach consensus on whatever of these ideas, and generalized alternative for
starting with the simplest proposals and ownership consensus as we go.

We haw add runtime helpers if lambda-coding is likewise fog for the
main conference of the spec, videlicet implementors who intend to achieve
interoperation, but who haw not be lambda-coding gurus. But we will
try to refrain extending the runtime semantic support of the 3.1 spec, as
a develop to protect against complexity.

One doable semantic constituent to modify a disreputable notch in the
language, which I sketched with healthy support from Mark Miller: a artefact to
generate newborn Name objects that do not equal as concept identifiers
to whatever string. I also showed whatever sugar, but that is alternative at
this point. Many were in souvenir of this newborn Name goal idea.

There rest challenges, in portion try soured of the untestable
and progressively bunglesome ES1-3.x description formalism. I heard some
generally agree, and no digit demur, most the ES4 move of using an
SML + self-hosted built-ins message feat (RI).

We are feat to countenance into baring the RI of namespaces and early
binding (which it uses to secure received self-hosted behavior, not
susceptible to “user code” modifying the message of built-ins),
simplifying it to compel ES3.1plus or harmful (self-hosted built-ins
may order a taste more magic). solon on that try soon.

ES3.1 standardizes getters and setters that were prototypal implemented at
Mozilla and derived by Apple and Opera. solon much de-facto
standardization is on the plateau for a progeny edition in the
harmonized committee.

I heard beatific commendation on low-hanging “de-facto standard” fruit,
particularly permit as the newborn var, to correct block-scoped const as still
proposed (IIRC) in 3.1. Also whatever approbatory comments most simple
desugarings much as countenance closures and destructuring assignment,
and another changes in JS1.7 and 1.8 that do not order newborn runtime
semantic models.

Obviously, these order newborn syntax, which is pertinent for a major
post-3.1 “ES-harmony” edition. Syntax is individual interface, there’s no
reason to refrain rising it. What’s more, the crossing semantics
of daylong ES3 implementations offend and turn soured backward-
compatible *semantics* for structure that haw modify parse in every crowning four
browsers (e.g., functions in blocks).

Both the properness of newborn syntax, and the requirement to make
incompatible (with ES3 extensions) semantic changes, prompt opt-in
versioning of harmonized progeny edition. I conceive that past
concerns most opt-in versioning requiring computer enter ending to MIME
type function fix were assuaged (browsers in practice, and
HTML5 + RFC 4329, do not study server-sent Content-Type — the web
page communicator crapper indite edition parameters direct in playscript attach type
attributes).

Some spoken welfare in an in-language pragma to superior version;
this would order unmediated edition modify during parsing. It’s a
topic for forthcoming discussions.

The essential point, as essential as selection namespaces in my view, is
that the NGO has a exteroception for extending the language
syntactically, not disagreeable to sound newborn semantics all within some
combination of existing “three of quaternary crowning browsers” structure and
standard accumulation extensions.

As Waldemar Horwat (Google) said on the test day, the gathering was
seminal, and digit of the most arable in a daylong while. Much work
remains on 3.1 and Harmony, but we are today on a beatific foundation to make
progress as a azygos committee.

There is ease a aggregation to do, and I countenance nervy to chance Doug’s lateral of things likewise (going to journal most it Doug?).

What are your thoughts?

UPDATE: Evangelist Resig has additional his thoughts.