CoffeeScript is certainly one of those new technologies that you either love or you hate.
The home of CoffeeScript
Quite often you'll find that the home of a good project isn't nearly as up to date as some of the blogs screaming the praise - not so with CoffeeScript. The main site is every bit as chock full of detail as you could want.
Here you'll find they take you through every part of the language currently available in excruciating detail, and sometimes overwhelmingly so if you're just beginning. If this site is so comprehensive, why carry on with anything else then you may ask?
Well, two reasons really:
- Not everyone is as easily convinced when hearing about a technology straight from the horse's mouth as it were
- The site is very matter of fact and bare bones, focussing rather on syntax than reasoning. It assumes that you already know the reason you'd want to choose to use CoffeeScript and does not try to sell it to you, but rather just teach it to you.
This isn't a bad thing per se, just that beginners more often than not are looking for the why as well as the how, and we're aiming to satisfy that need.
For The Well-Rounded Rubyist
A rather controversial and opinionated move in the Rails world recently was to make CoffeeScript support automatic for all new Rails projects as the default client side language.
Regardless of whether or not you agree with the move, if you're coming at CoffeeScript from a Ruby perspective, then you're firstly probably going to fall head over heals for the syntax, but secondly, you'll want to take a look at this fantastic talk by Jeremy Ashkenas where he goes through the similarities between Ruby constructs and the CoffeeScript syntactic sugar.
This is a quality presentation put together by Bodil Stokke in HTML5 format and really doesn't need you to do much more than page through it and soak in the goodness. Interestingly, she's included an interactive JS panel where you can write and test your code right there! Very nice for trying out little snippets.
And if you're still stuck after paging through, then go ahead and just watch the presentation video itself where she spends an hour going through the slides in detail. This is seriously worth a look if you're hoping to get the history and gist of CoffeeScript quite quickly.
I particularly like this presentation because of its gratuitous use of lolcats - come on, who doesn't love a bit of lolcat in their CoffeeScript?
An introduction to CoffeeScript
If you're really looking for a very quick overview as the whether or not this new shiny toy is even worth your time, then this short write-up by Jon Galloway from the Herding Code Podcast will give you pretty much all you need to decide.
This post is packed full of useful links to further your research if you're still hungry, as well as some interesting background to the reasons and justification for the language's existence in the first place.
Far be it from the Microsoft crowd to stay away from this little gem - CoffeeScript is alive and well on the Windows platform and growing a steady following too.
Once again, Jan Van Ryswyck has outdone himself in this excellent series of posts, which take you by the hand, and guide you unerringly towards getting a good peek at the internals of CoffeeScript, but without overwhelming you.
In this six part series, he covers everything from your basic getting started, through all the various language constructs, how they hang together and when you would use them, as well as a few excellent nuggets towards the end that you may find very useful.
The Little Book on CoffeeScript
Of course, you'd have to go a long way to find a more well written, concise and well thought out piece of literature than The Little Book on CoffeeScript.
I would tackle this one last if you're new to all this, but once you really get into CoffeeScript, you'll more than likely find that this is the one reference that you keep open side-by-side with your code and will always refer back to.
And there you have it - all you need to get going with this new little toy. Let me know in the comments if I've missed anything or if you have other suggestions that would be equally good - and if your write-up is a good one, I'll merge it with the article for posterity with a credit for the find!
Until next time,