About the Author
- “CoffeScript reminds me of VB…and nobody likes VB”
- “CoffeScript is not a language”
It’s hard for me to look at function(). I like significant whitespace. These are stylistic arguments that are really uninteresting. There are more than a handful of valid language features that CoffeeScript provides that make choosing it a no-brainer for me.
There are similarly a thousand inconsequential, stylistic arguments that can be made against writing CoffeeScript. But there are handful of really valid ones. Interestingly, those arguments seem to become more relevant as time elapses.
Discourse’s main reason for the switch was to encourage more contributions to its substantial open-source product. Some questioned whether this was valid. Does CoffeeScript really discourage some people from contributing? I can say from experience, yes.
We took this discouragement as sour grapes. We posted CoffeeScript for two reasons. We wanted to support and disseminate something we really loved using, and CoffeeScript is really, really easy to learn.
The most compelling anti-CoffeeScript argument for me is complexity in integration. CoffeeScript compilation is always going to require extra machinery. As seamless as this has become, it’s still a liability. Right now, it’s obvious to me that the benefits of writing CoffeeScript outweigh the costs of integrating it. But is that always going to be the case?
- Destructuring Assignment
- String Interpolation
- Loops and Array Comprehensions
- Default Arguments and Splats
- Arrow Function Definitions
- and More!
In the thread Yahuda Katz states that the differences in ES6 are large enough that they could warrant a completely new redesign of CoffeeScript. It’s not a patch or upgrade level solution. All of a sudden writing CoffeeScript could become a very real liability.
We <3 CoffeeScript
I don’t know what the future of CoffeeScript is. I do know that even if CoffeeScript died tomorrow, it will have done it’s job and fulfilled its destiny. That makes me happy.