There's no real comparison between CoffeeScript->JavaScript and Ruby->C.<p>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.<p>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++).<p>CoffeeScript is more comparable to GWT.
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.<p>CoffeeScript is a tool you can use to write javascript more conveniently, and more consistently.<p>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.<p>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 <i>CoffeeScript is Javascript</i>. 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.
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.
I do believe that if you understand C, you can become a better programmer on those higher level languages.<p>However, this is like everything in life, you don't need to master C, or Javascript, or as the saying goes: "Too much is like not enough".<p>Understanding how heap/stack, memory is allocated and free'd can give you a good understanding of how ruby/objective-c works.<p>Same could be applied to Javascript and CoffeeScript.
The article he responds to is discussed here: <a href="http://news.ycombinator.com/item?id=3202828" rel="nofollow">http://news.ycombinator.com/item?id=3202828</a>