> 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/