Jeremy Ashkenas' underscore.coffee vs his underscore.js (the tie to go along with jQuery's tux)
From Michael Hunger's look at CoffeeScript on InfoQ:
- Python style significant whitespace
- implicit parentheses
- no semicolons
- String continuations
- concise function literals
- YAML style object literals
- everything is an expression (returns a value)
- all variables in local lexical scope, no pollution of global scope
- simple assignment and variable declarations, destructuring assignments
- switch statements compiled to if-then-else chains
- chain comparisons
- named parameters
- variable arguments lists (splats)
- literate programming (write the code within its documentation)
- pythons range, array and object comprehensions
- existential (elvis) operator
-
explicit
strong binding of current self to function
with
=>
Hashrocket operator - fast and working class based inheritance support , based on the google.inherit approach
- support for static inheritance and automatic delegation to superclass methods
- heredocs, multiline strings, literal regexps, string interpolation/substitution
- Cake a simple build system similar to Rake
- <script type="text/coffeescript"> tags, minified coffescript compiler for inline use