Cloudflare 正式宣布 Deno 团队整体加入,目标是推动 cellid 与 Cloudflare 的 workerd 合并,让 Workers / Durable Objects 编程模型能够轻松实现自托管。

说实话,挺感慨的。Deno 的开发要逐渐停下来了,以后 Deno 就交给开源社区去维护了。我记得 beta 版本才刚出来没多久,这剧情推进得也太快了。还是 Node.js 和包子 Bun 稳啊!

继去年年底 Anthropic 收购 Bun 之后,前端娱乐圈又迎来一个大新闻。这个圈子的消息确实有意思,不知道 Vue 那边会怎么样,会不会也被收购?毕竟 React 在 AI 时代优势太明显了。
其实 Deno 走到今天这个结局,已经相当不错了。现在 AI 爆发的前夕,编程界绝大部分领域只会留下第一名和第二名,第三名基本都要凉透。要么被卖掉,要么未来慢慢被挤掉。卖给这样一家超大规范的云厂商,算是很明智的选择了,不亏!

可能 Deno 的很多设计思想确实超越了这个时代,只是没被大多数人理解。但 AI 来了之后,这些都不重要了——现在没多少人手敲代码了,都是让 AI 去写。生态足够大,再烂也会被广泛使用。再说了,Node.js 和 Bun 本身也真的不差。Deno 走了一条纯粹的、略显孤独的技术路线。
消息已经落地,Deno 基本要告别历史舞台了。白嫖的 Deno Deploy 六个月后也要关闭了。本来 Deno 也不算特别火,所以影响面反而没那么大。AI 时代就是这样,马太效应被进一步放大,强者越强。Cloudflare 这次的动作,估计是想大干一场,股票怕是要涨疯了。
Deno 为什么没起来?
他们最开始的时候确实有点“作死”的味道。最初完全不兼容 Node.js,那姿态基本就是“Node.js 好烂,我们重写一个吧”。你用 Deno 时间久了,甚至会忘掉怎么用 Node.js,回头一看满屏的 require() 看得人头疼。
Node 和 Deno 底层都用 V8 来执行浏览器兼容的 JavaScript,然后各自添加自己的 API,把它当作后端语言来用。但 Deno 作为后来者,如果一开始就选择兼容 Node.js 生态,现在也不至于过得这么惨。
Deno 本身确实是个好产品,但好又怎样?没有生态一样死。没有生态的产品注定走不远。我们用你,是为了实打实地解决前端痛点,而不是制造新的前端痛点!人家 Bun 就做得很好,尽力兼容 Node.js 生态,现在很多产品的文档上,已经直接给出了 Bun 的安装命令。
归根到底,还是因为团队太理想化了。现在确实没有理由再用 Deno 了,大家可以在命令行里执行 brew uninstall deno 来卸载它了。
Deno 也有值得记住的地方
不过 Deno 有一个点做得非常好:2018 年诞生之初就支持直接运行 TypeScript。相比之下,Node.js 直到 2024 年才开始逐步支持,以前还得靠 tsx、tsc 之类的工具来转译。即便是现在,Deno 对 TS 的支持也远远好过 Node.js。
现在这个局面挺残酷的。Deno 其实没做错什么,但 AI 不会去用它。以后世界的多样性会越来越少啊——当然,也可能是前沿公司一直都没把它当作默认选项。

最后再说一句:Rust 重写后的 Bun 比 Node 和 Deno 都轻量得多,我推荐大家多用包子 Bun!(也挺尴尬的,Rust 写的 Deno 完了,Zig 写的 Bun 又用 Rust 重写了……)
这场运行时之争,确实到了收尾阶段。生态兼容性终究比技术洁癖更贴近开发者的真实需求,你觉得呢?
|