原文:https://www.zhihu.com/question/22323967
回答1
javascript本身已经很简单了,如果你作为一个前端,用Ruby的语法去写javascript,给自己额外的人肉编译负担,哦呵呵,不是没事找抽么?coffeescript、haml和sass之流,适合习惯Ruby、Python语法的程序员用。我打死也不会去用coffeescript和haml。至于sass,css里没有变量,没有可编程的写法,后来借鉴sass而诞生的less和借鉴less而进化的scss,都可以很好地扩展css的功能。less和scss这两个踩着sass肩膀上的产物,已被前端业界广泛接受。
如果自我感觉很时尚喜欢用coffeescript随便,跟风学习各种很潮的工具,不如把心思花在如何专研javascript上。
最近也开始在写node程序。我想主力语言是javascript的Node.js开发者不喜欢coffeescript还是占多数的,更多的还是尝尝鲜,然后弃之。
回答2
视觉上清晰的代码,不一定是执行效率最高的的代码;运行效率高的代码,则未必易于编写和阅读。比较一下 array.forEach 和 for 循环就可以发现这一点。
Coffescript 本身非常简洁,编程时视觉上非常舒服,代码清晰有效。这也是为什么 ES6 和 Swift 都有借鉴 Coffee 的地方。
Coffee 编译出来的 JS 代码可读性差,但是那可都是 JS 最佳实践的编程方式:性能最好,但是最啰嗦。
所以就看你自己的选择了。 GitHub 内部都要求新的 JS 项目都用 Coffee 写呢。
总体来说,视觉上和逻辑上的一致性是未来语言的方向,花括号,分号,甚至函数参数的括号,大部分都是给机器“看”的,不是给人看的。对人友好才是一个语言发展的方向。
很多反对 CoffeeScript 的 JS 程序员为 ES6 添加的各种特性欢呼,例如 Fat Arrow, splat, assignment
destruction..., 并且坚定地实践。其实这些都是 Copy 自 Coffee。ES6 用得越多,其实离 Coffee 就越近一步。
回答3
coffee在服务端node环境下的效率,与JS一样快甚至更快。
coffee还有一个编译的过程,更快的原因往往在于语法上的优化。也就意味着可以尽可能避免人为手写JS时造成影响性能的结构
或 逻辑。
要用到项目中,需要考虑:
1. 团队成员的学习成本(总不能自己充当人肉翻译机吧)
2. 项目的维护成本(coffee发展的持续性,某天突然不commit了,后人维护就糟了个糕了)
另外,es6 与 coffee 有相似的地方,可能某个
风头会盖过 另一个。
来自 不是牛逼的node.js开发者 的一点感想。