Personalmente creo que javascript no es muy natural pero es un gran lenguaje. El principal problema al escribir código es nuestro desconocimiento sobre el lenguaje, nadie estudia a fondo como funciona javascript.
Después de la reflexión dominical veamos unos ejemplos como nos puede ayudar coffeeScript a escribir código:
En javascript es así
var cube, square; square = function(x) { return x * x; }; cube = function(x) { return square(x) * x; };
En coffeescript así:
square = (x) -> x * x cube = (x) -> square(x) * xEn javascript es así
var fill; fill = function(container, liquid) { if (liquid == null) liquid = "coffee"; return "Filling the " + container + " with " + liquid + "..."; };En coffeescript así:
fill = (container, liquid = "coffee") -> "Filling the #{container} with #{liquid}..."
Además de todas estas ventajas permite escribir clases:
class Animal constructor: (@name) -> move: (meters) -> alert @name + " moved #{meters}m." class Snake extends Animal move: -> alert "Slithering..." super 5 class Horse extends Animal move: -> alert "Galloping..." super 45 sam = new Snake "Sammy the Python" tom = new Horse "Tommy the Palomino" sam.move() tom.move()