Hacker Newsnew | comments | show | ask | jobs | submit login

If you need to break, the built-in way is to use every or some, not forEach.

Yes, Yehuda is a Rubyist and that colors his presentation. But let's rise above ad-hominem arguments. You invoke blub but your argument in defense of JS is pretty much blubby, where it doesn't miss something already in JS (some and every).

Shorter and/or better function or lambda syntax and semantics have been on the agenda for years. Just shortening 'function' is not enough. Various half-baked proposals having failed, last year I went through detailed design exercises for both CoffeeScript-inspired (Dart took some of that inspiration)

http://wiki.ecmascript.org/doku.php?id=strawman:arrow_functi...

and Ruby- (but really Smalltalk; also E)-inspired

http://wiki.ecmascript.org/doku.php?id=strawman:block_lambda...

The latter won on many technical points, even though it's not yet in Harmony. It may make it.

Briefly, arrows require a new grammar validation formalism (not LR(1) with special rules for ASI and lookahead restrictions), arrows leave users confused about when to use fat-arrow, and @jashkenas vouches "arrows or curly braces, not both". Blocks win by requiring no new standard parsing algorithm for validation, and more: for refactoring, iteration with built-in control effects (break/continue/return), and guaranteed |this| inheritance -- all owing to TCP.

BTW, Rust has Ruby-like blocks now.




Applications are open for YC Winter 2016

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | DMCA | Apply to YC | Contact

Search: