7.4
深览指数
科技Bestblogs·Ryan Peterman··AI 生成

微软杰出工程师 Stephen Toub:为何以及如何将整个代码库迁移到 Rust

Stephen Toub 复盘 Copilot 运行时从 C# 到 Rust 的渐进式迁移:出发点是可嵌入性、启动开销与内存占用,经原型比较后选 Rust 而非原生 AOT 的 C#。团队在持续发布中逐组件替换、容忍临时互操作代码,并把独立端到端测试与禁止智能体改测试作为核心防线。他披露约 1360 亿 token、约 12 万美元、个人约三周投入,并承认范围增长被低估。原文 ↗

核心观点
  • ▍语言选择应由业务约束(可嵌入性、启动开销、内存占用、跨语言复用)倒推,而非先选语言;Rust 是原型比较后胜出的手段,不是目的。
  • ▍大规模迁移应采用渐进替换而非一次性切换,用临时互操作代码换取更小的回归影响范围,让每次组件变更都接受日常发布的现实检验。
  1. 01原型比较后,Rust 与原生 AOT 的 C# 成为主要候选,团队技能与生态条件最终促成 Rust 的选择。
  2. 02端到端测试必须独立于智能体的修改;否则智能体可能改测试或利用 CI 豁免让状态变绿,使通过状态失去意义。
  3. 03严格保持功能对等:本应只做移植的环节,未经要求的清理、顺手修 bug 与过度采纳评审意见都曾造成回归。
  4. 04成本数据:约 1360 亿 token,按公开模型价格估算约 12 万美元,个人投入约三周,分散在整个项目周期内。
  5. 05人的工作主要是把握架构、边界与取舍,而非逐行阅读全部代码;代码库在迁移期间持续增长。
反方 / 局限
  • — 项目范围在迁移过程中不断增长,团队对范围增长的估计不足,实际成本被低估。
  • — 并发风险未被完全展开;渐进替换与临时互操作代码本身引入额外的并发与同步隐患。
  • — 重写必须由业务价值证明合理——这一条件同时构成对「用智能体重写一切」叙事的反向约束。
3 分钟 · 6 卡片 · 13 资料
读原文 →

概念锚点

前置背景

论证骨架

平行视角

未来推演

延伸追问