There are basically a few arguments against using CoffeeScript and at the end of the article Ryan Florence suggests one to not use it. It basically boils down to these cases:
So yes, debugging is an issue. Hopefully this can be solved soon by SourceMap.
I agree, in fact I comprehend Verbally Readable !== Quicker Comprehension
quicker than I do the title. But the nice thing about CoffeeScript is that it’s just JavaScript so the lengthy wordy operators are optional.
You could always write in CoffeeScript:
one && two && three
instead of
one and two and three
Here’s an example from the blog:
scores = (student["assignment_#{@assignment.id}"].score for own idx, student of @gradebook.students when student["assignment_#{@assignment.id}"]?.score?)
Right, that’s not easy to comprehend. In this particular case I don’t blame the language but the author.
Sure the CoffeeScript documentation touts how it turns verbose JavaScript into “nice” and “sexy” one-liners but that doesn’t mean one should abuse it.
So does every other language. I think the good parts of the language outweigh the bad parts.
Spaghetti code itself is bad. I don’t care what language you write it in. It’ll always look like shit.
It seems like now we’re talking about preferring one type of spaghetti over another type of spaghetti — it’s still spaghetti.
Is that really a bad thing?
I still believe the expressiveness and useful features that CoffeeScript provides outweighs the biggest problem which is debugging.