有好几年没写 CoffeeScript, 对上一次估计是 15 年左右,整整过去了 6 年.
今天重新拿 CoffeeScript 写小项目, 竟然发现如此丝滑.代码整齐好看, 因为是用缩进代替括号. 所以天然就有一种美感. 当然这里不是推荐大家用来起一个新项目, 毕竟埋下的坑让别人填是不道德(虽然用什么语言起的项目对于别人来说都是坑).
https://github.com/tans/luckybot
上面的微信抽奖机器人用 coffeescript 写的. 里面有编译后的 JavaScript 代码, 大家可以对比一下.
Coffeescript 133 行 Javascript 158 行
感觉整体好像没差多少行, 编译后的代码可能有一些优化. 一般个人感觉手写的 js 代码应该是 coffee 的 1.5 倍左右
行数少, 改代码的心理压力自然就少一点. 可能以前用过 coffee 来写生产的项目, 所以这次重拾 coffee 还是很顺畅, 几乎没遇到什么坑. 虽然这门语言不怎么维护更新了, 但是写写个人项目还是很爽.
1
yuuko 2021-07-12 14:53:55 +08:00 via Android
还是 ts 爽,爽就完了
|
2
EPr2hh6LADQWqRVH 2021-07-12 14:58:14 +08:00
怎么说呢,曾经我也写 coffee, 但从来不会函数调用不带括号。
也许 coffee 最适合的场景是测试 无论怎样,比现在的 Vue React 之流,可读性是高多了,尤其是 React, jsx, 毫无可读性可言 |
3
tanrunhao OP @yuuko ts 我实在不习惯, 年纪大学不动了. 不过现在的 js 开发体验确实友好很多, 在 vscode 上写代码有很多代码提示, 这些都是 ts 的功劳
|
4
yuuko 2021-07-12 15:04:45 +08:00 via Android
@tanrunhao ts 其实不用学,我就没怎么学过,ts 重构引用查找之类的很爽,即使不太熟悉的项目修改心里负担也没那么大。现在 js 提示即使好了很多,但也还是残废。
|
5
murmur 2021-07-12 15:13:01 +08:00
ts 的问题是完全失去了 js 的自由,如果你写 anyscript 干嘛用 ts,喜欢强类型去做后端写 java 不更好,教科书一样的语法和配套 IDE
|
6
tanrunhao OP 哈哈, 怎么都变讨论 ts 了. 我没有实操过 ts, 但是有时候确实很不喜欢类型, 甚至也不喜欢 orm 层. 比如用 mongo 的时候, 搞一个 orm, 还不如直接去用关系型数据库. 完全失去了灵活性.
|
7
shpkng 2021-07-12 16:29:13 +08:00 1
歪个楼,Wechaty 这一套吃相是真的难看,文档稀烂,成天就是想让人花高价买 token
|
8
Jirajine 2021-07-12 16:35:33 +08:00 via Android
不喜欢静态类型是个人偏好,不喜欢类型那就完全无法理解了。
|
9
guoliim 2021-07-12 16:39:28 +08:00
ES6 = instanceOf(CoffeeScript)
|
10
hervey0424 2021-07-12 16:49:17 +08:00
现在去学 CoffeeScript 算不算 49 年入国军?
|
12
tanrunhao OP @shpkng 我不觉得,wechaty 的 token 收费是高一点,数量大应该可以找他们谈吧。 毕竟服务器硬件要成本,而且 token 可以是不同供应商啊。 当然用来做个人项目就不太合适, 我这个机器人的试用 token 过期,就找找免费 web 协议的那个能不能用。
|
13
tanrunhao OP @hervey424840 现在就不推荐学了, 我是把压箱底的玩具拿出来玩一下而已。
|
14
shpkng 2021-07-12 17:01:05 +08:00
@tanrunhao 200 一个月叫“高一点“的话只能说有钱确实不一样。wechaty 这套开源只开源了一个调 webrtc 的库,实际上真正的微信 api 一个都没有。那套 web 的协议可以说是完全没法用,除了最简单的仅基于对话消息的功能,其他任何东西都是不能用或者不可靠的,连用户 id 都取不到
|
15
shpkng 2021-07-12 17:03:24 +08:00
这种表面上说是开源框架,实际上开发者一定要付高额月费才能使用的,很难认同
|
16
Immortal 2021-07-12 17:07:50 +08:00
@shpkng #15
Wechaty 开源的是一个 Puppet 抽象层 统一了对外的 API 而已 核心 Puppet 才是具体实现,除了微信还能对接其他 IM,但有统一的 API 接口,这才是他想开源的东西 你理解错了 |
17
tanrunhao OP @shpkng 你是不同意他们打着开源的旗号来卖 token 是这个意思吗?
因为我观察微信的机器人市场, 要不自己硬件来模拟 ipad 和这 window 软件,这个不适合我这种新手。 要不都是花钱购买远端机器人托管服务,然后使用提供的 api 来开发。 至于整体市场价格我不清楚,200 贵是相对其他供应商? 有没有便宜稳定的推荐一下。 |
20
jiyinyiyong 2021-07-12 19:22:11 +08:00
缩进好缩进好, 我来安利另一个基于缩进的 compile-to-js language 了 https://github.com/calcit-lang/calcit_runner.rs/blob/main/src/cirru/calcit-core.cirru
|
21
impl 2021-07-12 19:36:37 +08:00 via Android
rails 还在用 coffee ?
|
23
tanrunhao OP coffee 的作者好几个项目都很不错 ,很有创意,只是后面发展都有更好的替代品。backbone.js underscore 的库也很好用 曾经都很火。
|
24
msg7086 2021-07-13 00:48:31 +08:00 via Android
写惯了 Ruby 的人写 Coffee 是真的舒服,我现在都特别想用 Coffee,只是公司项目肯定要考虑别人的感受,不能用。
|
26
towry 2021-07-13 08:43:36 +08:00
看着好难受,感觉积木要塌的样子
|
27
apeople 2021-07-13 10:26:13 +08:00
不觉得这代码有什么可读性
|
28
7075 2021-07-13 10:59:41 +08:00
ts 是大势所趋
|
29
tanrunhao OP |