返回

文章详情

谢谢你,Deno

Hacker News2026年10月16日 00:52

所有帖子开源注册表Deno正在加入Cloudflare,并逐步减少其在运行时的投资。正因为它的存在,我们都变得更好了。2026年10月14日,Ryan Dahl上周宣布Deno团队将加入Cloudflare。Deno运行时将在接下来的一年中逐步终止,JSR将继续在Cloudflare的基础设施上运行,团队的新工作,根据Cloudflare的帖子,是将Deno的celld合并到workerd中。这一公告是在Deno 2发布两周年的日子里公布的。Bun十个月前加入了Anthropic。诱人的结论是,替代运行时实验结束了,Node凭默认胜出。实际上,生态系统获得了Deno推动的好处,只是并非来自Deno本身。竞争对健康生态系统至关重要。不幸的是,Deno在生产中从未真正达到临界质量;Node在2026年依然与2018年一样占主导地位。Deno所取得的成就,是重新振兴并施加了对现有者的压力,而这种压力并不仅仅单向。Deno开局时是一种干脆的改变。Ryan在2018年的JSConf EU上站起来,列出了他与Node不同的做法:默认拒绝权限、TypeScript作为一流输入、服务器上的Web标准API、仅ES模块、单个可执行文件。并且,明确指出没有npm,没有package.json和node_modules。依赖项是URL。幻灯片明白地指出:“没有必要列出依赖项。”我们中很多花了数年在npm和Node上的人,对于最后一点持怀疑态度(并且对于权限或TypeScript并不是怀疑,它们显然是好的),并在当时表达了出来。我们之前经历过,在热链接时代,页面从别人的服务器上拉取jquery.min.js,当它移动或被攻击时就坏掉了。一个URL告诉你某物的位置,而不是它是什么。一旦你关心的是,你测试的字节就是你发布的字节,你就需要一个完整性哈希和某个地方来记录它,而你已经重新发明了锁文件。Node TSC的Matteo Collina在2020年说过:“另一个left-pad事件在等待发生,但这次没有‘中心实体’可以修复它。”一些怀疑是出于防御,但最终恰恰是正确的。Deno 1.0在2020年按照最初的条款发布,然后在接下来的四年里逐步回撤。首先是deps.ts约定,一个重新导出每个URL的文件:名义上的清单。接着是lock.json,每个URL一个完整性哈希:一个锁文件。然后是导入映射,这样你可以再次编写裸规范。Deno自己今天的文档推荐使用HTTPS导入的注册表,因为它们“可能在不同文件之间漂移到不同版本”和“信任提供主机。”这些都是2018年的反对意见,以指导的形式重新表述。然后Bun出现了。Bun 0.1于2022年7月发布,采取了相反的策略:从零开始重建工具链以提高速度,但可以运行现有的npm包,读取package.json并作为node的替代品。大约六周后,Deno发布了“Deno即将迎来重大变化”,宣布npm:指定符,承诺在三个月内使80-90%的npm包工作,以及成为“最快的JavaScript运行时”的新目标。Deno将这一变化归功于用户反馈;时机表明Bun是一个重要因素。2024年10月的Deno 2,通过完整的Node和npm兼容性完成了这一工作。在作为Node生态系统替代品推出四年后,Deno已成为运行Node的另一种方式。这是正确的选择,也意味着生态系统不会在一夜之间抛弃十多年的依赖。Cloudflare的workerd于2022年开源,为同样的原因发展了自己的Node兼容层:因为包就是在那里。Node最终需要作出回应。自2018年以来,它已经发布了全局fetch,WebSocket,Web Streams和Web Crypto;一个稳定的测试运行器和--watch;--env-file和单个可执行构建;一个稳定的权限模型;默认开启的类型剥离;node:sqlite;以及require(esm)。Node的贡献者(许多是志愿者)做了艰苦的工作,倾听反馈并做出重大变化,他们对此应该得到许多赞誉,但我认为,如果没有其他三个运行时首先发布许多这些想法,那一切就不会如此迅速。成熟的开源项目很少缺乏好的想法。它缺乏紧迫感,而竞争者提供了这种紧迫感。标准工作也是在同样的压力下诞生的:WinterCG于2022年成立,因为几个严肃的运行时让“最低共同API是什么?”成为一个实用问题,现在作为Ecma TC55,它应该比下一个合并的任何运行时更持久。包管理器和注册表在其历史的大部分时间里,JavaScript的包生态系统是一种单一文化:一个客户端,一个注册表,以及一个非正式到足以保持有效无文档十多年之久的API合同。几乎所有的改进都来自于拒绝接受现状的人。Yarn(2016年)坚决要求安装是确定性的,并为我们提供了锁文件、工作区和离线缓存;npm 5发布了...

赞助内容

NordVPN Next-gen Antivirus

本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。

☕请我喝杯咖啡