JavaScript is a great language, but not everyone likes writing in it. Thus, people and organizations have started to write languages that transpile (transpiling keeps the same level of abstraction, compiling decreases the level of abstraction) into JavaScript, that they feel are nicer to write in than JavaScript. CoffeeScript is one example, another is Microsoft's TypeScript.

CoffeeScript is a little language that compiles into JavaScript. Underneath that awkward Java-esque patina, JavaScript has always had a gorgeous heart. CoffeeScript is an attempt to expose the good parts of JavaScript in a simple way.

The golden rule of CoffeeScript is: "It's just JavaScript". The code compiles one-to-one into the equivalent JS, and there is no interpretation at runtime. You can use any existing JavaScript library seamlessly from CoffeeScript (and vice-versa). The compiled output is readable and pretty-printed, will work in every JavaScript runtime, and tends to run as fast or faster than the equivalent handwritten JavaScript.

You should learn CoffeeScript if you like programming in JavaScript, and want to experiment with a different way to write it. With transpiled versions of JavaScript (ECMA 2015, TypeScript, etc) becoming more popular, this is a valuable skill for a coder.

(Info taken from

Help us explain this better! File a GitHub issue at if you have suggestions, or submit a patch with improvements to the file.

Try It!

If you've downloaded the command-line client and have CoffeeScript installed on your machine, then go ahead and fetch the first problem.

exercism fetch coffeescript

In order to be able to submit your solution, you'll need to configure the client with your Exercism API key.

exercism configure --key=YOUR_EXERCISM_KEY

When you've written a solution, submit it to the site. You'll have to configure the command-line client with your exercism API key before you can submit.

exercism submit PATH_TO_FILE