There's no real comparison between CoffeeScript->JavaScript and Ruby->C.
Ruby doesn't have any necessary relation to C. Case in point: JRuby. The underlying language is just an implementation detail to provide an environment for executing Ruby code.
CoffeeScript has no executable environment. It is purely syntactic sugar for generating JavaScript code that gets executed in a JS environment (which itself is implemented in C or C++).
Agree. Using Ruby and Coffeescript. I'd say if you want to use Coffeescript well, because you like the syntax, you'd have to know Javascript and which Javascript is generated by every Coffeescript word.
I think a lot of the frustration comes from people thinking that CoffeeScript is proposing itself as being a replacement for javascript or even a full abstraction from javascript.
CoffeeScript is a tool you can use to write javascript more conveniently, and more consistently.
It is not a replacement for knowledge of, or usage of javascript. You're still going to have to know how javascript works and CoffeeScript never claims otherwise. People who either don't understand or are too excited by it's blissful syntax are the ones that do.
Are you Douglass Crockford or John Resig? Then you're probably gonna stick to straight javascript as you can already write consistently rock-star javascript. Are you an overworked dev just trying to write some js without mucking things up too much? Then whip out coffeescript and let it help you do that. Then check the source it generates to make sure everythings going well(and get better at JS by reading it).
The learning curve for CoffeeScript is so low and the benefits so high that it's a smart decision to use it. You're not giving up Javascript, the number one rule of CoffeeScript is that CoffeeScript is Javascript. I don't think anyone expects you to learn CoffeeScript before Javascript. CoffeeScript is basically a tool you pick up in an afternoon after you have spent the time needed to understand and wield Javascript.
You're not giving up Javascript, the number one rule of CoffeeScript is that CoffeeScript is Javascript.
What does this even mean?
CS has different syntax. You cannot take random CS code and drop it into a JS app and run it. CS needs to first be converted into JS, which wouldn't be necessary if CS were JS.
I feel like one key difference between Ruby being written in C and CoffeeScript being compiled to Javascript is the debug information. As the author of the attack on CoffeeScript mentioned, being able to debug CoffeeScript code requires you to understand the JavaScript debug output and translate that back into CoffeeScript. Other than that, I agree with all of your points.
This is what I was thinking as I read the article. Unless you have a full developer environment there seems to be a big practical difference between your VM being written in C and compiling to C.
Ruby doesn't have any necessary relation to C. Case in point: JRuby. The underlying language is just an implementation detail to provide an environment for executing Ruby code.
CoffeeScript has no executable environment. It is purely syntactic sugar for generating JavaScript code that gets executed in a JS environment (which itself is implemented in C or C++).
CoffeeScript is more comparable to GWT.