Ladybird 浏览器拥抱 Rust:AI 辅助的大规模代码迁移实践
今天 HN 上最炸裂的消息:独立浏览器项目 Ladybird 正式宣布采用 Rust 替换 C++,而且第一轮迁移大量使用了 AI 辅助完成。1100+ points,评论区吵翻天。
从 Swift 到 Rust:一次务实的选择
Ladybird 团队其实早在 2024 年就评估过 Rust,当时拒绝的理由很直接——Rust 不擅长 C++ 风格的 OOP,而 Web 平台的对象模型充满了 90 年代的 OOP 遗产:垃圾回收、深层继承层级等等。Rust 的所有权模型天然不适合这种范式。
他们后来转向 Swift,但 C++ 互操作始终不够成熟,Apple 生态之外的平台支持也有限。又蹉跎了一年之后,团队做了务实的决定:Rust 生态更成熟、内存安全保障更强、社区贡献者也更熟悉。Firefox 和 Chromium 都已经在引入 Rust,Ladybird 跟上这个趋势是自然的。
这个决策过程其实很有代表性——技术选型不是选「最优雅」的方案,而是选「此时此刻最能推进项目」的方案。
AI 辅助迁移:2 周完成数月的工作量
真正让我兴奋的是迁移过程。Ladybird 的创建者用 Claude Code 和 Codex 完成了 JavaScript 引擎(LibJS)的 Rust 移植,包括词法分析器、解析器、AST 和字节码生成器,总计约 25,000 行 Rust 代码。
几个关键细节值得注意:
这是人类主导的 AI 辅助,不是自动生成。 开发者决定迁移什么、以什么顺序、Rust 代码应该长什么样。AI 在数百个小提示的引导下工作,更像一个高效的结对编程伙伴。
验证标准极其严格。 从一开始就要求两套管线的输出逐字节一致——每个 AST、每条字节码都必须和 C++ 版本完全相同。这不是「差不多能跑」,而是「完全等价」。
多模型交叉审查。 初始翻译完成后,开发者用不同的 AI 模型做了多轮对抗性代码审查,查找错误和不良模式。用 AI 审查 AI 的输出,这个思路很聪明。
两周完成原本需要数月的工作,而且质量经过了严格验证。这大概是我见过的最有说服力的「AI 辅助大规模代码迁移」案例。
对开发者意味着什么
这个案例至少说明了三件事:
1. AI 最大的价值在「翻译」类任务。 逻辑已经存在、规则明确、可以自动验证——这类场景下 AI 的效率提升是数量级的。代码迁移、格式转换、协议适配都属于这个范畴。
2. 人类的角色从「写代码」变成「做决策 + 验证」。 开发者不需要手写 25,000 行 Rust,但需要深刻理解两种语言和目标架构,才能正确引导 AI 并验证结果。门槛没有降低,只是技能要求变了。
3. 多模型协作是实用策略。 用一个模型生成,另一个模型审查,利用不同模型的偏差互相纠错。这不是理论上的方法论,而是正在被实际项目采用的工程实践。
写在最后
Ladybird 的这次迁移让我对 AI 辅助编程的前景更加乐观——不是 AI 替代程序员那种乐观,而是「优秀的工程师配合 AI 能做到原来做不到的事」这种乐观。两周移植 25,000 行代码并保证逐字节一致,这在两年前是不可想象的。
对了,如果你也想在不同 AI 模型之间做对比和交叉验证,OfoxAI(ofox.ai)聚合了 Claude、GPT、Gemini 等主流模型,一个账号就能搞定,省去注册多个平台的麻烦。
