3 ms·
The language offers features so that you can use them well. Any bit of syntax can be abused. `))))))`, for example ;) Optional braces around object literals al
by jashkenas 13y ago
The language offers features so that you can use them well. Any bit of syntax can be abused. `))))))`, for example ;)
Optional braces around object literals allow you to write lines like this:
rectangle x: 10, y: 15, width: 500, height: 500
... and having newlines separate elements in lists makes a ton of sense in a language where whitespace is significant:
requires = [
"jquery"
"underscore"
"d3"
]
... and also helps with the famous trailing-comma-in-IE error and comma-first controversy.
If you're writing something that's convoluted enough that the features aren't helping you ... don't use 'em.
- sandover 13y agoHi Jeremy, if you'll please pardon the the somewhat flame-y tone above -- and the Coffeescript language is 'done' so these subjects are mostly moot anyway -- my experience has suggested that: - optional braces cause more ambiguity (manifesting as either strange parse error messages on the front side, or bugs on the back side) than is warranted by the need to write: rectangle { x: 10, y: 15, width: 500, height: 500 } - newlines separating elements of a list is good, but it's really confusing to me why the following program would/should work with no comma after the "a": foo = (a, b, c) -> console.log a, b, c foo "b", "a" "r" Plainly, it _does_ work, but to me it feels like using a hole in my sweater to scratch an itch on my elbow.
- duckduckblert 13y agoI don't know coffeescript, but I'd guess it's because the first comma indicates "this is an argument list," so the next few items get treated with list/array syntax rules where commas aren't required. (Had this comment thread left open in my browser since Friday. Noticed no one replied so I figured "why not," even though I might be wrong :V)