原文:https://www.zhihu.com/question/22323967

回答1
javascript
本身已经很简单了,如果你作为一个前端,用Ruby的语法去写javascript,给自己额外的人肉编译负担,哦呵呵,不是没事找抽么?coffeescripthamlsass之流,适合习惯RubyPython语法的程序员用。我打死也不会去用coffeescripthaml。至于sasscss里没有变量,没有可编程的写法,后来借鉴sass而诞生的less和借鉴less而进化的scss,都可以很好地扩展css的功能。lessscss这两个踩着sass肩膀上的产物,已被前端业界广泛接受。
如果自我感觉很时尚喜欢用coffeescript随便,跟风学习各种很潮的工具,不如把心思花在如何专研javascript上。
最近也开始在写node程序。我想主力语言是javascriptNode.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 CoffeeES6 用得越多,其实离 Coffee 就越近一步。

回答3
coffee在服务端node环境下的效率,与JS一样快甚至更快。
coffee还有一个编译的过程,更快的原因往往在于语法上的优化。也就意味着可以尽可能避免人为手写JS时造成影响性能的结构 或 逻辑。
要用到项目中,需要考虑:
1. 团队成员的学习成本(总不能自己充当人肉翻译机吧)
2. 项目的维护成本(coffee发展的持续性,某天突然不commit了,后人维护就糟了个糕了)
另外,es6 与 coffee 有相似的地方,可能某个 风头会盖过 另一个。
来自 不是牛逼的node.js开发者 的一点感想。

posted on 2017-07-14 12:55  马兹  阅读(3401)  评论(0编辑  收藏  举报