Recs.
Updated
SpecsUpdate
Pros
Pro Syntax for humans, not compilers
CoffeeScript adds syntax that is not only more terse than javascript, smoothing over the rough edges, but also enforces a more human readable syntax to the point where a non-programmer can understand some logic.
Many programmers that are not used to coffeescripts syntax will find it foreign if they don't read the single page API, but generally it is quick to understand and although self documenting code is a myth coffeescript is definitely very close.
if hungry then eat food for food in fridge when food isn't poison and it isn't bedtime
Seems a lot more concise and comprehensible to many programmers and most others than the alternative syntax:
var food, i, len;
if (hungry) {
for (i = 0, len = fridge.length; i < len; i++) {
food = fridge[i];
if (food !== poison && it !== bedtime) {
eat(food);
}
}
}
Pro Adds useful features
Syntactic add-ons like unless
keyword, the existential operator ?
, and
, or
, and class
, and one-line conditionals are little things that can make a big difference by being used all over. They make the code more expressive, elegant, and readable.