有人把 TypeScript 的编译器、类型检查器和语言服务器整体搬进了 Rust,项目叫 ts-rust,别名 tsc-rs。更值得玩味的是作者的那句话:代码全部由 LLM 生成,他本人没读过。搬运的对象还不是跑在 Node 上的旧版本,而是微软用 Go 重写的那套原生实现——等于是给一次尚未完成的迁移又叠了一次迁移。五年前这被叫做转译玩具,今天它有了名字叫工程实践。
编译器是最不适合凭手感推进的软件。一个类型检查器错了,下游是成千上万个项目的构建结果;语言服务器卡住,编辑器里每个人都在等。传统路径是先有测试集、先有语义对照,再谈重写。而 ts-rust 的路径反过来:先生成,再让 TypeScript 自己的测试套件去拷问生成物。这其实聪明——编译器恰好是 LLM 最容易被验证的领域,因为对错由测试用例裁决,不由人主观判断。
真正的问题不在 Rust 还是 Go,而在“没读过代码”从丑闻变成了某种姿态。维护者需要对一份自己不理解的行为负责,出了问题只能靠 diff 和测试反推。短期看,这是拿巨大测试套件当安全网的务实赌注;长期看,它把开源协作里最基本的东西——有人真的懂这块——换成了别的。赌注是否划算,取决于 ts-rust 能不能扛住微软官方实现追赶的速度。

