
The Little Book on CoffeeScript - protez
http://arcturo.github.com/library/coffeescript/
======
wallfly
"The Little Book.." was the first instructional text I read on CoffeeScript,
i.e. beyond Coffee's home page hosted on GitHub.

I followed up with the following free e-book, which I highly recommend:

Smooth CoffeeScript

<http://autotelicum.github.com/Smooth-CoffeeScript/>

~~~
js4all
Very nice. That book seems to be complete on every aspect of CoffeeScript.

------
barmstrong
I love CoffeeScript. The only thing that seems unintuitive about it is how
functions get defined, and perhaps the meaningful whitespace (no 'end' on
blocks).

I've always wondered why they made coffee-script syntax so close to ruby
without going all the way. "Write javascript in ruby" would have been a killer
feature and tagline, but instead we're 80% of the way there with occasional
expectations still being broken and new quirks to learn. Anyway...still a huge
improvement overall so don't want to sound negative. Just something I was
curious about.

~~~
michaelchisari
I don't think a direct translation of Ruby -> Javascript would have made much
sense, though. It makes much more sense to custom mould a new language to the
needs of Javascript, than to try and fit Ruby into a whole new context.

I started looking into making a parser that took CoffeeScript and parsed it
into PHP, and the farther I got spec'ing things out, the less the CoffeeScript
syntax made sense for the context of PHP. So it would make more sense to start
new, and create a new syntax that fits better. I'm assuming the same process
may have occurred for CoffeeScript.

Anyways, as someone who greatly prefers Python over Ruby, I love using
whitespace for blocks.

~~~
fizx
Ruby has a 6000 LOC yacc parser for the grammar. I would bet that Coffee's
grammar is smaller, tighter, and less full of perlisms.

~~~
InclinedPlane
[https://github.com/jashkenas/coffee-
script/blob/master/src/g...](https://github.com/jashkenas/coffee-
script/blob/master/src/grammar.coffee)

------
exogen
I realize the situation may have been different when the Applications chapter
was written, but I would be careful of the subtle jQuery.tmpl "endorsement" in
the "JavaScript templates" section.

jQuery.tmpl is unmaintained, slow, and very broken. It may be worth changing
the example.

~~~
maccman
Yes, you might be right there. Eco would probably be a better choice
(CoffeeScript syntax). I'll see if I can find time to change it.

------
latch
Excellent work. FWIW, from my experience with The Little MongoDB Book, people
love epub format.

~~~
maccman
Any suggestions on how to go about converting it (Markdown) to epub?

~~~
latch
Well, I went from markdown to pdf using pandoc/latex/markdown2pdf and then I
think I used calibre.

However, I just tried taking one of your html files and converting it directly
to epub (again, using calibre, which is free)..and it did a pretty good job.

I think if you can merge the chapters together and spend a bit of time
tweaking it, you'll end up with a nice ebook.

~~~
scq
Calibre can convert directly from markdown to epub:

    
    
      ebook-convert ebook.txt ebook.epub --formatting-type markdown
    

or you can use the UI.

------
kevinpet
I was excited when I saw the title, disappointed when I started reading the
book. I'm hoping someone with sufficient expertise can write a guide to
coffeescript that doesn't defer to "just like javascript, except X". That is,
something that talks about coffeescript, covering it from start to finish,
without distracting with talk about javascript.

~~~
secoif
You can't talk about coffeescript without talking about JavaScript, and that's
the whole point of coffeescript: "it's just JavaScript". You need to know both
languages to use it effectively.

~~~
Volpe
I don agree with that. Sure knowing JavaScript is helpful in debugging. But
you can be very effective with coffeescript without knowing too much about
JavaScript.

~~~
secoif
I guess you could, but you'd be making life harder for yourself, and other
developers. Consider a website mockup by a designer with html/css experience
and one without: the one with no html/css experience may be designing a total
headache, and be completely oblivious to that fact.

------
codabrink
Is there a good way to compile this into an ebook? I'd love to have this on my
kindle.

~~~
mhitza
Here's my PDF conversion of the book <http://dl.dropbox.com/u/6746847/little-
coffee.pdf>

The links point to URL's though.

------
wavephorm
Why is this language continually hyped to no end on HN?

~~~
michaelchisari
Although it dignifies your question, I'd say it's because it's the first
breath of fresh air in client-side development people have had in a long time.
Having a real choice in that space is a big deal.

Do you have specific criticisms of CoffeeScript? That would probably have made
for a more productive comment.

~~~
wavephorm
It just wreaks of fanboyism when every comment or question that doesn't give
praise to coffeescript is downvoted.

~~~
starwed
Ok, point to a specific comment/question that you think was unfairly
downvoted.

~~~
kevinpet
The top level comment starting this thread seems to be a valid enough question
to have generated some discussion, but it's showing grayed out to me.

~~~
starwed
It got real answers.

I imagine it was downvoted for its aggressive wording, coupled with the
poster's later commments about 'fanboyism'.

~~~
p9idf
The answers which the question received, in addition to an insult, were that
CoffeeScript removes bugs and mis-features, "is a breath of fresh air", and
delights programmers by letting "the underlying awesomeness of Javascript
shine through." Hardly real answers.

It is perhaps to-the-point, but I don't think it is aggressive to point out
that CoffeeScript frequently shows up on the front page of HN. I am guessing
that the comments about fanboyism and unfair down votes came as a response to
a down vote, so the initial down vote couldn't be justified on those grounds.

As to the original question of the why CoffeeScript is so popular on HN, I too
would like to know.

~~~
michaelchisari
_Hardly real answers_

You seem to have missed this part of my response:

    
    
      Having a real choice in that space is a big deal.

~~~
p9idf
You are begging the question. You can't just say that CoffeeScript provides a
real choice without explaining what differentiates CoffeeScript from
Javascript and makes the choice viable.

~~~
starwed
Shockingly, some people might not feel the urge to write out an essay length
post discussing the differences between JS and CoffeeScript.

Yet, they might still be moved to give a short, high level answer to the OP's
question.

Those fucking _bastards!_ :)

