都 2021 年了, 还用 CoffeeScript 写新项目

2021-07-12 14:51:12 +08:00
 tanrunhao

有好几年没写 CoffeeScript, 对上一次估计是 15 年左右,整整过去了 6 年.

今天重新拿 CoffeeScript 写小项目, 竟然发现如此丝滑.代码整齐好看, 因为是用缩进代替括号. 所以天然就有一种美感. 当然这里不是推荐大家用来起一个新项目, 毕竟埋下的坑让别人填是不道德(虽然用什么语言起的项目对于别人来说都是坑).

https://github.com/tans/luckybot

上面的微信抽奖机器人用 coffeescript 写的. 里面有编译后的 JavaScript 代码, 大家可以对比一下.

Coffeescript 133 行 Javascript 158 行

感觉整体好像没差多少行, 编译后的代码可能有一些优化. 一般个人感觉手写的 js 代码应该是 coffee 的 1.5 倍左右

行数少, 改代码的心理压力自然就少一点. 可能以前用过 coffee 来写生产的项目, 所以这次重拾 coffee 还是很顺畅, 几乎没遇到什么坑. 虽然这门语言不怎么维护更新了, 但是写写个人项目还是很爽.

4926 次点击
所在节点    Node.js
29 条回复
yuuko
2021-07-12 14:53:55 +08:00
还是 ts 爽,爽就完了
EPr2hh6LADQWqRVH
2021-07-12 14:58:14 +08:00
怎么说呢,曾经我也写 coffee, 但从来不会函数调用不带括号。

也许 coffee 最适合的场景是测试

无论怎样,比现在的 Vue React 之流,可读性是高多了,尤其是 React, jsx, 毫无可读性可言
tanrunhao
2021-07-12 14:59:13 +08:00
@yuuko ts 我实在不习惯, 年纪大学不动了. 不过现在的 js 开发体验确实友好很多, 在 vscode 上写代码有很多代码提示, 这些都是 ts 的功劳
yuuko
2021-07-12 15:04:45 +08:00
@tanrunhao ts 其实不用学,我就没怎么学过,ts 重构引用查找之类的很爽,即使不太熟悉的项目修改心里负担也没那么大。现在 js 提示即使好了很多,但也还是残废。
murmur
2021-07-12 15:13:01 +08:00
ts 的问题是完全失去了 js 的自由,如果你写 anyscript 干嘛用 ts,喜欢强类型去做后端写 java 不更好,教科书一样的语法和配套 IDE
tanrunhao
2021-07-12 15:16:36 +08:00
哈哈, 怎么都变讨论 ts 了. 我没有实操过 ts, 但是有时候确实很不喜欢类型, 甚至也不喜欢 orm 层. 比如用 mongo 的时候, 搞一个 orm, 还不如直接去用关系型数据库. 完全失去了灵活性.
shpkng
2021-07-12 16:29:13 +08:00
歪个楼,Wechaty 这一套吃相是真的难看,文档稀烂,成天就是想让人花高价买 token
Jirajine
2021-07-12 16:35:33 +08:00
不喜欢静态类型是个人偏好,不喜欢类型那就完全无法理解了。
guoliim
2021-07-12 16:39:28 +08:00
ES6 = instanceOf(CoffeeScript)
hervey0424
2021-07-12 16:49:17 +08:00
现在去学 CoffeeScript 算不算 49 年入国军?
yuuko
2021-07-12 16:50:14 +08:00
@murmur 大佬,真的是无处不在,无处不杠,我喜欢
tanrunhao
2021-07-12 16:52:08 +08:00
@shpkng 我不觉得,wechaty 的 token 收费是高一点,数量大应该可以找他们谈吧。 毕竟服务器硬件要成本,而且 token 可以是不同供应商啊。 当然用来做个人项目就不太合适, 我这个机器人的试用 token 过期,就找找免费 web 协议的那个能不能用。
tanrunhao
2021-07-12 16:53:18 +08:00
@hervey424840 现在就不推荐学了, 我是把压箱底的玩具拿出来玩一下而已。
shpkng
2021-07-12 17:01:05 +08:00
@tanrunhao 200 一个月叫“高一点“的话只能说有钱确实不一样。wechaty 这套开源只开源了一个调 webrtc 的库,实际上真正的微信 api 一个都没有。那套 web 的协议可以说是完全没法用,除了最简单的仅基于对话消息的功能,其他任何东西都是不能用或者不可靠的,连用户 id 都取不到
shpkng
2021-07-12 17:03:24 +08:00
这种表面上说是开源框架,实际上开发者一定要付高额月费才能使用的,很难认同
Immortal
2021-07-12 17:07:50 +08:00
@shpkng #15
Wechaty 开源的是一个 Puppet 抽象层 统一了对外的 API 而已
核心 Puppet 才是具体实现,除了微信还能对接其他 IM,但有统一的 API 接口,这才是他想开源的东西 你理解错了
tanrunhao
2021-07-12 17:08:38 +08:00
@shpkng 你是不同意他们打着开源的旗号来卖 token 是这个意思吗?

因为我观察微信的机器人市场, 要不自己硬件来模拟 ipad 和这 window 软件,这个不适合我这种新手。 要不都是花钱购买远端机器人托管服务,然后使用提供的 api 来开发。
至于整体市场价格我不清楚,200 贵是相对其他供应商? 有没有便宜稳定的推荐一下。
zxCoder
2021-07-12 17:10:03 +08:00
@murmur 同意 就是瞎折腾
IvanLi127
2021-07-12 17:27:17 +08:00
@murmur 失去自由就失去自由呗,你说这话是想限制别人的自由吗?
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

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/789015

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX