1
ine181x 2013-08-29 10:06:31 +08:00
转换出的代码是符合javascript的最佳实践的。另外就是语法糖。
|
2
chuangbo 2013-08-29 10:07:19 +08:00
官网首页不是写了么。。摒弃了 Javascript 糟粕,保留了精粹,不容易进坑。
缩进这种问题就不需要讨论了。 |
3
lichao 2013-08-29 10:10:24 +08:00
也只是在 ruby 圈很流行,但是我看它有时候转换出来的 js 有点啰嗦
|
4
akinoniku 2013-08-29 10:12:29 +08:00
其实就是把JS好用的地方提炼出来了,再加点语法糖
除非你很熟悉JS,不然COFFEE的执行效率大概会比手写的高,而且优雅 但是如果你真的很熟悉JS的话,你手写JS出来的代码应该也是跟coffee编译出来的没差 所以选COFFEE还能省键盘。。 我觉得大概就是这样 |
5
anson0370 2013-08-29 10:25:41 +08:00
光一个 `->` 和 `=>` 我就笑醒了……嗯 省键盘而且提高开发效率不是挺好的么
用缩进分块的做法和 python 一样 根本不是什么问题 习惯习惯就好了 |
6
nigelvon 2013-08-29 10:27:47 +08:00
貌似coffee出来之前就精通js的用coffee的人很少。
|
7
chrisyipw 2013-08-29 10:40:31 +08:00
根据 @kurtis 的话,感觉你是把 Coffee 和 JS 给分离了(看成是不一样的语言)。
其实你说的基本就是 Coffee 的全部了,除此之外,真没啥好说,编译的代码用 JS 也可以写出来,JS 的坑也可以靠经验填上,而且执行效率相差无几,所以就只有语法糖的问题。 Coffee 的语法糖很甜,因为参考的是同样以语法糖很甜出名的 Ruby,相比之下 JS 就太烦人。 我日常写项目是用 Coffee + CodeKit / uglify,编译后会有 source map,调试不成问题,所以,写起来舒服确实让我很爽。 |
8
0bit 2013-08-29 10:45:49 +08:00
Coffee 的语法糖简直是懒人的福音
|
9
zhujinliang 2013-08-30 08:57:43 +08:00
我是懒得学coffee script。。。js写的很顺手了,干嘛学个别的语言结果转出来还是js。。。
同理less,不过看起来less要比coffee有意义的多 |
10
kurtis OP js 里面有 可以直接 编译像LINQ 一样的语句吗? 我觉得LINQ很天马行空。
|
12
coolicer 2013-08-30 09:20:30 +08:00
coffee不利于团队交流,如果用那每个人都要学习,目测只有个人使用者比较多
|
13
kurtis OP |
14
jacobbubu 2013-08-30 09:38:09 +08:00
知乎上回答过类似问题。你知道,这种问题很容易挑起争论的:)
|
15
anson0370 2013-08-30 09:51:00 +08:00
coffee 已经够好学了,为了提高生产率这点学习成本很便宜
|
16
istef 2013-08-30 09:58:02 +08:00
作为懒人我还是很喜欢 coffee 滴,写个 class 就得 function(){ return {}} 实在有点儿难受。缺点是,用 coffee 可能会影响对 javascript 本身的理解。。。
anyway,写代码就是图个爽啊 |
17
luikore 2013-08-30 10:24:45 +08:00
用 coffee 就不会踩到下面的坑:
ie7 最后一项多个逗号, ie8 splice, 该写 === 的地方写成了 ==, undefined 被别人覆盖了, 漏写个 var 使得变量泄漏到全局作用域... 就算是很有经验的 js 程序员也常常掉这种坑里, 学习 coffee 是物有所值的 |
18
clowwindy 2013-08-30 10:31:02 +08:00 2
|
21
yaroot 2013-08-30 10:52:06 +08:00
为什么不用js: http://guide.roylang.org/en/latest/introduction.html#what-not-just-write-javascript
coffee只停留在语法糖阶段, 学习成本相当低的 但如果会函数式语言的话, 更好的选择会很多: lispyscript, livescript, clojurescript, js of ocaml等等 |
22
davepkxxx 2013-08-30 11:20:43 +08:00
我还是觉得调试起来稍显麻烦
|
23
kurtis OP 我记得 teambation 用node写的。 好像他们要求程序员要会coffeescript.
估计生产力提升效果肯定是有的,就是,我还是不能习惯强制“排版”的语言。 顺便诚恳的问一句:如何用coffeescript 写有多重函数嵌套的程序? f1(a1,b1, fuction (a2,b2, function (a3,b3) { doSth31(); doSth32(); }) { doSth21(); doSth22(); }) ); |
24
wandou 2013-08-30 16:22:57 +08:00
用过一段时间,列表解析很爽很强大,模板功能也不错。
|
25
wb14123 2013-08-30 17:43:44 +08:00
@kurtis
f1 = (a1, b1, f2) -> f2 = (a2, b2, f3) -> doSth21() doSth22() f3 = (a3, b3) -> doSth31() doSth32() |
27
kfll 2013-08-30 19:39:30 +08:00
- ruby 程序员终于可以开始干前端了!
- 前端程序员终于可以不写花括号了! |
28
gaicitadie 2013-09-02 16:35:42 +08:00
一直不喜欢CoffeeScript的飘过
|
29
zkd8907 2013-09-02 17:01:08 +08:00
万年JavaScript死忠表示什么脚本都替代不了JavaScript。
|
30
yakczh 2013-09-02 17:15:35 +08:00
不欢迎的路过
|
31
FrankFang128 2013-09-02 17:36:29 +08:00
我和你的感觉一样,对coffee的语法感到迷惑。
|
36
fwee 2013-09-03 10:42:26 +08:00
coffee要是不依赖缩进就完美了
|
37
cin 2013-09-03 10:46:50 +08:00
用了一段时间coffee又默默地换回了js, 感觉js各种美:(我病了?)
|
40
kurtis OP |
42
behappy 2013-09-04 10:28:07 +08:00
正确的缩进能增强程序的可读性。
|
44
luikore 2013-09-04 12:02:32 +08:00
@kurtis 一个是手动括号+(编辑器)自动排版, 一个是手动排版+(语言)自动括号, 后者对各种编辑器的适应能力更好...
|
45
luikore 2013-09-04 12:04:09 +08:00 2
抗拒coffee的大部分理由都是: 宗教体验...
|
46
dreampuf 2013-09-04 12:25:29 +08:00
Coffeescript提供一层足够好的抽象,使之更多针对JS的拓展,变得可行,比如 yield (Ice-coffeescript)
语法糖带来的表达能力是会带来编写&维护上的量变 |
47
chloerei 2013-09-04 12:43:40 +08:00
我刚接触 CoffeeScript 的时候困惑过,不知道这样增加一层值不值得。于是我坚持了半年写 JavaScript,发现确实有很多累赘的代码或容易忽视的错误,发现 CoffeeScript 真的好,现在转写 CoffeeScript 了。
|
48
gdzdb 2013-09-04 15:48:25 +08:00
个人对coffee无感。
感觉就是用另外一种格式来写javascript而已,增加学习成本。 |
49
lidashuang 2013-09-04 16:46:41 +08:00
@gdzdb 就是另外一种格式写js,coffee的官网也说了,coffee技术javascript。我感觉增加的学习成本对以后的收益来说是可接受的
|
50
kaifengjin 2013-09-04 16:48:10 +08:00
因为号称很容易学,大家都爱走捷径
|
52
arzusyume 2013-09-05 09:07:22 +08:00
我觉得coffee构造OOP相对比较直观一些
语法上比较单一至少可以强制让队友的代码规范些 最重要的是单行if可以不用纠结{}的问题... |