> function call syntax doesn’t need parens except if a 0 parameter method
Function call syntax doesn't require parens so to make multi-line calls punctuation-free. Especially if some args are objects.
> commas are largely optional both in arrays and function parameters. How do you parse: [f, f(), f a b c]
Well commas are not optional.
> implicit returns are a terrible idea
They're especially elegant in writing declarative code. It takes some getting used to though.
> the @ syntax refers to either a ‘static’ method or an instance variable depending on the context.
Agreed.
These are all tradeoffs though. For me, they struck the right balance between ambiguity (very little) and expressiveness.
LiveScript in comparison was much more sugary (which I preferred): https://livescript.net/
Well, guess it's Reason for me now :D
Reading other people's CoffeeScript on the other hand...
I’ve not had this experience. I’ve found the ambiguity in coffeescript a maddening adventure in syntax confusion.
- function call syntax doesn’t need parens except if a 0 parameter method
- commas are largely optional both in arrays and function parameters. How do you parse: [f, f(), f a b c]
- implicit returns are a terrible idea.
- the @ syntax refers to either a ‘static’ method or an instance variable depending on the context.
- I have to do a double take for the object literal syntax every time