It's not easy at all. I mean, if you are filling in the generated scaffolds, it may be easy. But when your coworkers start using all the nasty routing DSL tricks and the myriad of helpers, it stops being easy. Thing is, it's too big and rich for its own good, and let's not speak of the development practices it encourages.
Let's not confuse matters here: in both those languages an initialization-assignment will introduce a new binding within function scopes. In CoffeeScript it will always be the parent scope's binding, which means that you must take extra care not to introduce variables used in scopes above, or below, at any given time.
On the other hand, confusing both concepts is bad because it makes it harder to reason about scope, and it has been the cause of much confusion regarding closures in Python and Ruby.
> It seems these days that everybody not only wants to be able to do anything they want, but no matter how outlandish, annoying, or potentially dangerous, it needs to be socially accepted.
Like being a woman or having treated mental illnesses. I now remember why I keep coming to this website, it's just hilarious.