Axel Rauschmayer wrote:
It would be interesting (although perhaps not feasible) to do readability studies on these and other syntax matters.

Very true, that would add a different quality to the discussion. But I wonder if even that would change the strength with which people feel (positively or negatively) about CoffeeScript-ish syntax. I think that CS has a syntactic style that is quite different from JS (probably for the better, just imagine how confusing things would be once ES6 is in wider use...). That’s why I’m not sure that mixing the two styles is a good idea. And that’s why I prefer Allen’s proposal over arrow syntax.

You mean do (params) {stmts}? The objection there (from dherman and me at least) is that "do" means immediately-invoke as in do expressions, IIFE sugar (CoffeeScript's do, useful for capturing var bindings in a loop), and Smalltalk do: selectors. It does not mean "defer" -- "do later".

It's a bit of an abuse of an existing keyword. It helps to have a keyword in front, but not any keyword. Rather "fn" but will that really win adoption given the "function" legacy.

Jeremy Ashkenas tweeted “For the record, I too favor [block lambdas] if arrows in JS will need curlies to delimit blocks. Curlies or arrows, not both.” This is another blow (I mentioned two yesterday) against

  (params) -> {stmts}

If we *only* add

  (params) => assign-expr

and put this at the AssignmentExpression level in the grammar, then we almost have consensus. The remaining issue is agreeing that (expr) covers (params), forever. I'm hopeful we'll manage to reach consensus there.

Then the (separate) do-expression strawman, with full TCP, composes fairly nicely (four chars linkage):

  (params) => do {stmts}

The lack of unbound-this and non-TCP function body, i.e., the lack of thin-arrow, means users have to reach for plain-old-function still. This may be ok. Kevin's numbers say ~10% cohort.

Fat-arrow-only (plus do-expressions) looks like the minimal and likely winner.

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

Reply via email to