Brendan Eich (2013-07-26T16:35:24.000Z)
domenic at domenicdenicola.com (2013-07-26T21:12:58.582Z)
Domenic Denicola wrote: > From: Brendan Eich [brendan at mozilla.com] > >> I proposed arrow functions and championed them into ES6. As the strawman history shows, eliding () and {} were both supported at first: > > Right, I remember `{}` being optional at least; in fact the genesis of this thread was me working with Traceur this morning and getting complaints when I tried `() =>`. I certainly don't blame you for making them mandatory to gain consensus! It was hard enough to get arrow functions through. I'm not worried about blame (*I* blame me on this :-P), but there's a lesson here. Not everyone can swallow CoffeeScript as solid and *long-standing* precedent. Too few even know it on TC39, but that's not just a criticism of TC39ers -- it cuts both ways since CoffeeScript is not old or widely studied compared to other languages. More below. > I started this thread hoping we could get some reconsideration, now that arrow functions have been a consensus reality for so long that it's hard to imagine ES6 without them. I find it especially baffling that there's such a negative reaction given the time-tested nature of optional `()`/`{}` in CoffeeScript. Optional parameter list is an easier sell since `=>` is very unlikely to start a statement, while `=>` may well end one and lack of semicolon means that the statement continues. This is the "lack of ASI where I expected it" hazard I mentioned in reply to Oliver. But again, "time-tested" and CoffeeScript make some of us old-timers laugh. FTR, I like CoffeeScript and Jeremy was kind enough to let me co-present at JSConf 2011 in Portland. However, it is young. One company I advise tried it, and found that its "unsyntax" bit back in this way: code that compiled and seemed to do one thing did something quite different. This happens with JS due to ASI; it also happens just due to the C syntax heritage. But it happens more often with CoffeeScript, from what I hear.