My response to "CoffeeScript means giving up on JavaScript"
paulbjensen.co.uk
paulbjensen.co.uk
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.
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).
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.
There is no run-time interpretation, libraries or magic like in some other to-JS languages.
You still have prototypes, function scope, closures, etc. but with a (arguably) nicer and cleaner syntax.
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".
Understanding how heap/stack, memory is allocated and free'd can give you a good understanding of how ruby/objective-c works.
Same could be applied to Javascript and CoffeeScript.