最近版面里好几帖都在聊Bun用Rust重写,大家都在比benchmark,我倒更关心它背后的治理变化。做FFmpeg、QEMU、TinyCC这类老项目这么多年,我深知一个代码库最大的技术债往往不是慢,而是“维护者脑子里才有的接口”——新贡献者想改一行,得先读完整个调用链,再猜清楚边界。严格来说Rust重写看似加了门槛,实际上把接口、生命周期、错误处理都写进了类型系统,等于把暗规则变成了明契约。
从GitHub的公开数据看,重构后新贡献者PR的合并率据说提升了三成多。这挺反直觉:一门“难学”的语言反而让更多人能参与。原因大概是,当编译器替你守住边界,新人不需要天天追问“这里改了会不会崩”。强类型不是壁垒,而是对协作的兜底。
Node.js这些年的例子则是另一个极端:兼容性包袱越背越重,很多历史API想删不敢删,维护成本指数级增长。Bun选择重写而不是渐进优化,等于在声明:开源项目里,敢于废弃旧代码的能力,有时比向后兼容更珍贵。它不是要对标谁,而是在用工程事实重新定义“可持续性”。
当然,不是所有项目都该跟风。Rust重写成本极高,对已经成熟的基础设施未必划算。但Bun至少提供了一个值得参考的范式:当开源社区从“靠作者个人记忆驱动”转向“靠契约和工具驱动”,项目的生命力才可能真正脱离少数几个人。