微软给 TypeScript 挑新编译器语言时选了 Go 不是 Rust,不少 Rust 开发者到现在还不服。这个月有人用 Rust 把同一个编译器又写了一遍:Owner.com 那个 3.7 万文件的仓库,同样开 4 个 checker,官方 Go 版要 61.4 秒、吃 36 GiB 内存,Rust 版只要 8.75 秒、6.1 GiB;Cloudflare 的说法是同样 worker 数下最多快 8 倍、内存少 70%。Cloudflare 博客Owner 博客
更离谱的是,写下这一版的人一行代码都没写。Owner.com 的 Max Schwenk 把活交给 Claude Opus 5.5:20 多个子 agent 并行开工,第二天早上他就拿到了能跑的类型检查器。Owner 博客
先别急着说 7 倍夸张,官方自己也没闲着。TypeScript 7 用 Go 重写后,完整构建普遍快 8 到 12 倍。tsrs 追的不是几年前的基线,而是一个本来就已经很快的对手。微软 TypeScript 博客

那为什么还要再套一层 Rust?不只是为了更快。Cloudflare 想把整套工具链塞进 Workers 和浏览器:Go 编译成 Wasm 时,垃圾回收器也得一起打包,Rust 不用,内存占用小得多。10 月 20 日,Cloudflare 和 VoidZero 把项目收进 Oxc,还要和 Theo Browne 的 tsc-rs 合并成一个包。Cloudflare 博客
真正的提速,跟“换语言”关系没那么大。8 字节指针压成 4 字节偏移、泛型成员按需构建、没人 import 的叶子文件提前释放、空闲 checker 去偷活干——这些内存布局和调度上的改造才是大头;TypeScript 团队成员 Dan Rosenwasser 在 Hacker News 上说,他们怀疑很多提速并不只来自语言选择,TS 7.1 的一部分优化反而是从 tsrs 回流上去的。所以“用 Rust 重写”从来不是自动加速键。Hacker News
AI 敢这么写,是因为这活有标准答案。官方从 JS 迁 Go 时留下了 15,197 条一致性用例,AI 每改一步都能拿官方输出逐字节对照,13,462 条基线里最后只有 4 条对不上。Owner 博客
但写出来只是开始,难的是跟。官方每发一版,移植版都得重新追一遍。Cloudflare 打算照搬维护 Vinext 的流程:每天早上让 agent 看改动、提 issue,每晚重跑一遍兼容矩阵。Cloudflare 博客

对普通开发者,最实际的变化是大仓库几十秒的类型检查可能很快变成几秒;对 Rust 程序员,这更像一份样本——Rust 赢的不是语法,而是你有没有把它的内存模型真的用出来。