Who is this book for?

You, if you want to learn Coffee-Script from the ground up. Maybe it is your first language or you know .Net, C++ or PHP. The book lays the foundation needed for complex web applications, game logic & algorithms.

If you already know some JavaScript then you might want to look at The Little Book on CoffeeScript and Eloquent JavaScript.

You can also cherry-pick topics; for example QuickCheck, Underscore, WebSockets or class inheritance.

cup of coffee

What's changed?

The third revision is an update to CoffeeScript 1.1.3 & Node 0.6.

The second revision had a new book cover and a correction on the existential operator.

The first revision had new examples in the Language Extras appendix on the do statement, bound functions, for ... when, and destructuring assignment.

seed of life

What's different from Eloquent JavaScript?

The main changes are the inclusion of QuickCheck, the discussion of inheritance and the modularity chapter with distributed systems. All the references and appendices on performance and the command line.

In Eloquent JavaScript there is much more on object prototypes and on Web, DOM, Browser events and HTTP.

Eloquent JavaScript
cat eyes

Something has gone haywire!

To see errata for the book or to report a mistake you have found use the issue tracker on github. Please refer to a page number from the Instructor edition since the problem could even be in one of my solutions.

Issue Tracker

So what's next?

The book is complete as it is, its aim is to introduce CoffeeScript as a full programming language.

What could require an update is WebSockets as the draft and web browsers change.

Some small programs and snippets will show up over on Goodies on occasion.

scenic path

Create your own improved book

The book source is in 'Smooth CoffeeScript.lyx'. You only need it if you want to create your own improved book.

Requires LyX 2.0 and an up-to-date installation of TeX. May require font substitutes. Look in the pdf files to see which fonts were used.