On Dec 7, 2008, at 11:43 PM, Michael Day wrote:

Hi Brendan,

I say 1 trumps 2 for the reason given in the last paragraph: human programmers first, meaning the fat bell curve (sorry, Schemers).

I agree with this; there are all sorts of clever things that implementors can do that don't necessarily need to be exposed as features in the language standard.

However, as Eugene Lazutkin pointed out, is omitting 'this' and 'arguments' a sufficiently compelling improvement to justify introducing a whole new language construct?

I believe this is Waldemar's view too, which along with his objection to the completion-value hazard leads to the "improve functions through strict mode or a new version" approach.

There's a lesser goal I didn't list: make function syntax thinner. 'function' is eight whole letters, plus four chars of parens and braces, plus 'return'. Wherefore expression closures in JS1.8 -- they save the braces and 'return' overhead. But to fix expression closures to be bottom-up unambiguous we would require at least parens around the body-expression.

More concise function syntax is not a goal solely, or even exclusively, to support user-defined control abstractions. It's a good in its own right unless you consider every use of a function expression in JS today to be a control abstraction in the Smalltalk block sense (I do not).


In some cases in strict mode 'this' will be undefined instead of being the global object, does this come close enough to omitting 'this' for functions which are not methods?

Not really -- strict mode does not change the ability of |this| to be rebound in the absence of Function.prototype.bind usage, which has its costs, and which apart from overhead in implementation terms, takes too long to say in the language to be likely as a default practice. Sure, Ajax libraries use it well, but it's still observed more in the breach looking at the whole of "web JS".

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

Reply via email to