The prototyping efforts are appreciated, but can rarely be used in a 
comfortable way. (Compared to, say, HTML5.) I've thought a lot about how to 
feasibly use Harmony features in real-world code, but have fallen down every 
time. Here are some of the stumbling blocks I've encountered:
 
* Node.js with --harmony flag gets you collections, old proxies, and 
(significantly) block scoping. But Node does not make it easy to indicate "this 
file needs to be run with --harmony," or e.g. to require harmony-using files 
from non-harmony-using libraries. So this ends up being a nonstarter for 
library authors, leaving it only usable by application writers. Besides, the 
proxies are still old, which is really unfortunate. And the iteration rate is 
slowww: stuff like destructuring has been harmonized for a long time, but shows 
no sign of making it into V8.

* The same problems apply to desktop apps written with Chromium Embedded 
Framework. These will probably have more app code, but then if you want to 
factor any of it out into smaller redistributable modules, you limit your 
audience.

* SpiderMonkey has a lot of stuff that we would love to use, and a fairly fast 
iteration time. (Direct proxies are almost landed, according to my bugmail!) 
The spec is tracked pretty well, too. But SpiderMonkey has very little uptake 
outside of Firefox, and most code written for Firefox must be web-compatible, 
so nobody except Firefox extension authors gets to use its many features.

* Traceur seems to be coming along nicely, but its alignment with the spec 
leaves a lot to be desired. Destructuring just got fixed a few days ago, and 
they have a class syntax you have to avoid to write ES6-as-it-is--compatible 
code. They have features like private names that are not (really) in the spec 
yet, using speculative syntax (`new Name` was never harmonized, was it?). 
Monocle-mustache is in, somehow. Etc. It's ES6-like, but doesn't reflect TC39's 
actual progress, instead reflecting the Traceur team's interpretation of where 
TC39 might eventually, hopefully, end up. Subsetting might be a solution, 
assuming the semantics of the subsetted features are aligned with the spec, but 
determining that would require further investigation.

* And of course there's the usual elephant in the room, viz. Internet Explorer. 
We (Barnes & Noble.com) reached out to Microsoft about including some basic, 
already-harmonized features in IE10 for use in writing desktop apps in HTML5/JS 
as per their new Windows Runtime framework. (This was desired since we are 
using some of them in our existing Chromium-based desktop app, namely block 
scoping and weak maps.) But even as a "first class partner" (or something), 
they were unable to grant us this request. The attitude that I personally 
inferred was that ES6 won't make it into IE before a finalized spec is 
available. This not only stalls web progress, but also that of anything that 
embeds Chakra (a fairly common operation on Windows, about to become much more 
common with Windows 8).

> -----Original Message-----
> From: [email protected] [mailto:es-discuss-
> [email protected]] On Behalf Of Brendan Eich
> Sent: Wednesday, May 23, 2012 22:20
> To: Brandon Benvie
> Cc: [email protected] Steen
> Subject: Re: minutes, TC39 meeting Tues 5/22/2012
> 
> Play fair now. SpiderMonkey in Firefox prototyped let, const, generators,
> iterators (an earlier form), destructuring (close to final ES6),
> comprehensions, generator expressions, and more recently proxies, weak
> maps, maps, and sets. V8 joined in the proxies, weak maps, maps, and sets
> fun. The for-of loop from ES6 is in SpiderMonkey now. Most significantly,
> modules are under way in SpiderMonkey and V8.
> 
> We prototype as we go. V8 has kept stuff under a flag and that's fair --
> we may do likewise, certainly with new stuff likely to change, in
> SpiderMonkey. But saying nothing is coming out of TC39 is inaccurate.
> 
> If you mean classes are not being prototyped because 'const class' or
> equivalent is not part of the almost-at-consensus "maximally minimal
> classes" strawman, you're right. If we must have a way to fix the
> properties of a class instance as Waldemar wishes, then I predict classes
> won't be in ES6 and it will be hard to justify prototyping less than the
> full required (as yet unwritten) proposal that satisfies everyones'
> wants.
> 
> That is a shame, and a stain on TC39's escutcheon. But you should be
> accurate about the many other things we have done, which are coming
> along.
> 
> /be
> 
> Brandon Benvie wrote:
> > The last discussion point there is really important I think. I get a
> > strong sense of the general JS developer world feeling no connection
> > at all to this process, and much can be put directly on the sheer
> > timescale. We've seen 2 month browser version cycles come in force,
> > the "living standard" that is HTML5 and the as of recent rapid
> > movement of new APIs coming out to JS from not-TC39. People don't feel
> > connected to the things in ES6 because they rightfully can't envision
> > using them in an imaginable timeframe.
> > _______________________________________________
> > es-discuss mailing list
> > [email protected]
> > https://mail.mozilla.org/listinfo/es-discuss
> _______________________________________________
> es-discuss mailing list
> [email protected]
> https://mail.mozilla.org/listinfo/es-discuss

_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to