内容提要
开发者Theo利用AI智能体将TypeScript编译器移植为Rust版tsc-rs,性能比原版快11.4倍。OpenAI路线耗资超40万美元,兼容率仅达84%;Opus 5.5仅用2周、约2.4万美元即完成移植。项目以18万移植测试作为标准答案,但代码未经人工审阅,长期维护存疑。这表明:在验证标准明确的任务上,AI已能完成工业级移植,瓶颈正从编写代码转向定义验证与长期维护。
延伸解读
性能优势与竞品对比
tsc-rs 在六个真实项目上几何平均比 tsc 6 快 11.4 倍,比 Go 版 tsc 7 快 1.61 倍。但 Bun 新发布的 bun check 更快,几何平均达 20.9 倍,比 tsc 7 快约 2.95 倍。在带 Effect 诊断的场景中,tsc-rs 内置诊断,一次检查同时得到 TypeScript 与 Effect 结果,比 tsc 7 加 @effect/tsgo 方案快约 1.89 倍,且无需第二遍。这些数据表明,Rust 移植版性能提升显著,但并非最快,读者需结合自身技术栈评估。
AI 移植的成本与路线差异
同一任务,OpenAI 路线(GPT-5.6 Sol 加 GPT 6 Astra)花费超 40 万美元,写出 130 万行 Rust,数月后兼容率卡在约 84%;Opus 5.5 路线仅用 2 周、约 2.4 万美元,10 小时得到可运行 v0。作者使用 Claude 订阅账号,消耗量折算为 200 美元套餐每周额度的 925% 到 983%。这是单次实验,变量众多,但成本相差一个数量级、结果相差一个层级,提示长程工程任务中模型与工作流选择可能比榜单分数更重要。
移植本质与验证闭环
tsc-rs 并非从零发明,而是对 Go 版 tsc 的逐行移植,固定上游修订并逐项对照。它依赖 181,711 个从 Go 版移植的测试全部通过,语言服务器和 API 在 oracle 测试集上与 Go 版一致,在 120 个开源仓库上命令行输出差异仅限于已知问题。这种“带答案的翻译”让智能体有可自动判分的标准答案,从而在 2 周内达到工业级兼容。验证能力成为此类任务最稀缺的资源。
已知问题与使用建议
README 标明这是早期版本,已知问题包括:monorepo 中可能多输出文件;tsc -b 下可能误报 TS2307;tsc -b --watch 可能以内部错误退出;编辑器长时间编辑内存缓慢增长;--version 打印的是移植的 TypeScript 版本而非 npm 版本。平台仅支持 Linux x64 和 macOS arm64。代码未经人工审阅,维护状态不明。若在生产环境使用,建议先在 CI 中并行运行,与现有 tsc 结果对照后再决定是否切换。
Q&A
tsc-rs 是什么?它和微软的 Go 版 tsc 有什么关系?
tsc-rs(仓库名 ts-rust)是 pingdotgg 组织下的开源项目,MIT 协议,定位为 TypeScript 7 编译器(tsc)的实验性 Rust 移植版,包含编译器、类型检查器和语言服务器。它并非从零重写,而是对微软原生 TypeScript 编译器(Go 实现)的直接移植,保留了 Go 版的算法和行为,命令行参数与 tsc 保持一致。
tsc-rs 的性能到底比原版快多少?
在六个真实项目上,tsc-rs 的几何平均速度比 tsc 6 快约 11.4 倍,比微软 Go 版 tsc 7 快约 1.61 倍。在带 Effect 诊断的场景中,tsc-rs 比 tsc 7 方案快约 1.89 倍。但 Bun 新发布的 bun check 更快,几何平均达到 20.9 倍。
为什么 OpenAI 路线花了 40 万美元却卡在 84%,而 Opus 路线只花 2.4 万美元就成功了?
OpenAI 路线(GPT-5.6 Sol 加 GPT 6 Astra)按 API 价格花了超过 40 万美元,写出 130 万行 Rust,历经数月 /goal 循环,始终未能超过约 84% 的兼容率。Opus 5.5 路线仅用 10 小时得到可运行的 v0,总共约 24,047 美元,历时 2 周。作者原以为 Opus 会沿用之前 Codex 模型写的代码,结果它从零开始,却用十分之一的时间走得更远。
tsc-rs 为什么能做成?它有什么特殊条件?
关键原因是它有一份可自动判分的标准答案:项目是对 Go 版编译器的逐行移植,仓库把上游版本固定在某个修订上,与 Go 版逐项对照。官方状态显示 181,711 个从 Go 版移植来的测试全部通过,语言服务器和 API 在 oracle 测试集上与 Go 版一致,在 120 个开源仓库上命令行输出差异仅限于已知问题。智能体不是在凭空猜测,而是在对着可执行、能自动判分的标准答案做翻译。
tsc-rs 目前有哪些已知问题和风险?
已知问题包括:monorepo 中可能多输出文件;tsc -b 下可能报 TS2307;tsc -b --watch 可能以内部错误(退出码 70)停止;编辑器长时间编辑内存缓慢增长;--version 打印的是移植的 TypeScript 版本而非 npm 版本。此外平台覆盖有限(仅 Linux x64 与 macOS arm64),没有人读过代码,维护状态不明,安全性、可维护性和长期演进难以靠测试覆盖。
这个项目证明了什么?对 AI 编程有什么启示?
它证明了几件事:一、有“判分器”的任务,智能体已能做到工业级,验证能力正成为最稀缺的资源;二、模型之间的差距在长程任务上被放大;三、“写代码”不再是瓶颈,“定义问题”和“验收”才是;四、成本曲线被重新定义;五、带来了新问题——谁对这份没人读过的代码负责。瓶颈正从编写代码转向定义验证与长期维护。