被神化的“秒级启动”,到底解决了什么真问题?
很多人第一次用Bun,第一反应是“吹的吧,能比Node快多少”。等真的跑起来才发现,原来要等3秒启动的脚本,现在200毫秒就跑完了。 这种速度差根本不是什么魔法。Bun从根上就换掉了Node.js那套基于V8 C++绑定的运行时架构——整个核心是用Zig写的,从内置模块、转译器到包管理逻辑,全在编译期就预打包成了单二进制文件,根本不需要在运行时现场做模块路径解析、ESM和CommonJS的格式转换。 它的性能优势从来不是“比Node快多少倍”的纸面跑分,而是把开发环节里那些无意义的等待时间全砍掉了。比如你在本地跑个测试,原来等Jest启动要2秒,写个测试用例等2秒,跑一次等2秒,一天下来光等这些破事就要耗掉半个多小时。换成Bun的话,这些等待直接消失。 当然,吹得越凶的东西,越不能忽略它的边界。
现在的Bun,到底抢了谁的饭碗?
过去十年的JavaScript生态,工具栈是散的:你要装Node当运行时,装esbuild或webpack做打包,装Jest或Vitest做测试,装pnpm或yarn做包管理,每个工具都要单独配配置,单独维护版本兼容。 Bun最狠的地方,是把这些东西全揉成了一个单文件。你下载完,不管是跑脚本、打包项目、装依赖、跑测试,全给你搞定,连配置文件都不用写。 根据去年底JS生态的开发者调研,已经有差不多15%的中型团队把Bun用到了非核心的CI流程里,比Deno的渗透率高了快三倍。
吹得越凶的工具,越容易藏着没说的风险
我见过太多团队,只要新工具一出来,就不管三七二十一全迁到生产环境,最后踩坑踩得爬不起来。Bun现在的问题,其实一点都不少。 第一个问题,就是治理结构的先天缺陷。Node.js背后有OpenJS基金会托底,核心代码的更新、安全补丁的发布,都是有流程、有社区监督的。但Bun从成立到现在,核心贡献者就那么几十个人,全靠创始团队自己主导,没有中立的第三方组织做治理。万一哪天团队融资烧完了,或者方向变了停更了,那些全迁到Bun的小团队怎么办? 第二个问题,是生产环境的兼容性暗坑。很多人现在用Bun,只在开发环境跑通了就敢往生产上放,根本没测高并发下的边界情况。去年有个做小众电商的团队,用Bun跑订单同步服务,大促当天遇到高并发的时候,内置的fs模块会随机出现文件句柄泄漏,查了整整一周才定位到是Bun的bug——这种问题在开发环境根本复现不出来,等真在生产炸了,损失可不是闹着玩的。 第三个问题,是供应链的中立性风险。Bun现在默认的包源是自己搭建的镜像,不是npm的官方源。 当一个工具从开发环节渗透到供应链环节,它的中立性就不再是技术问题,而是生态安全问题。如果哪天Bun的镜像被攻击了,或者因为合规问题被要求下架某个包,所有用它的团队的构建流程直接就断了,这个风险是没有任何机构能兜底的。 聊到这肯定有人问,那Bun到底值不值得用?未来几年能成什么样? 我不觉得Bun会取代Node.js成为JavaScript生态的绝对核心。毕竟Node.js背后是整个云厂商的生态投入——AWS、阿里云、腾讯云全把Node的runtime做进了Serverless的底层,这种生态惯性太大了,根本不是一个新工具能短期撼动的。 但它的位置,其实早就稳了。 未来2年,它会成为独立开发者、中小团队做新项目的默认选项——就像现在很多人新项目直接用pnpm一样,没人会特意提“我用pnpm”,因为这就是默认。 未来3年,它会把性能优势延伸到轻量AI应用的侧端。现在很多人做LLM应用的服务端,用Node跑的时候并发一高就卡,内存占用还高。Bun因为启动快、内存占用低,会成为很多AI代理、轻量RAG服务的首选runtime。 未来5年,JavaScript生态会彻底从“单runtime主导”的状态,变成“多runtime并存”的格局:核心的大型业务系统跑Node,边缘的轻量服务跑Bun,高安全要求的场景跑Deno,就像现在的编程语言生态一样,没人会说某一个工具能通吃所有场景。 工具从来不是越新越好。但当一个工具真的能把你从无意义的等待里解放出来,哪怕它现在还有一堆坑,也值得你花两个小时试一下。 毕竟谁愿意熬大夜等构建啊,对吧?作者|大讲堂
排版|大讲堂
审核|见微
大讲堂