40 万美元没做完的移植,2.4 万美元两周收工

40 万美元没做完的移植,2.4 万美元两周收工

TypeScriptRustLLMAgent

数据源:GitHub 仓库 README + 作者推文 + HN 讨论

2026 年 10 月 7 日,Theo Browne 开源了 ts-rust 仓库,它对应的 npm 包名为 tsc-rs。这是一个巨大的代码移植工程,目标是把微软用 Go 重写的 TypeScript 7 编译器、类型检查器和 LSP 整套系统移植进 Rust。项目保持了上游的算法结构、行为模式、命令行以及 API,将代码状态严格固定在了 2026-09-29 的 TypeScript 7.1.0-dev(revision 673a5f17d713)。在同一个开发任务上,两个前沿模型家族交出了相差一个数量级的耗时与开销账单。

API 账面标价四十万,实际订阅支出两万四

作者最初的尝试依赖 GPT-5.6 Sol 与 GPT 6 Astra 模型。这两个模型在多个月的 /goal 长期循环里跑了相当于超过 40 万美元 API 定价的 token,产出了 130 万行 Rust 代码,最终死死卡在 84% 的兼容性无法突破。换用 Claude Opus 5.5 之后,整个移植工程在两周内收工。作者在 X 上写道:「烧了约 40 万美元的 Codex token,什么也没换来;烧了约两万美元的 Opus,两周搞定了」。

这 40 万美元是按 API 零售价折算的面值,实际落到 Opus 账上的开销,是依靠高阶订阅额度跑出的约 24,047 美元。这个数字等同于单用户 200 美元周额度计划的 925% 到 983%。超长工程的成败瓶颈在于模型能不能把上下文坚持住、敢不敢在发现旧产物不可用时清空重来。同样一件事按 API 零售价结账会先击穿小型团队的资金链,这也是它只在订阅额度里跑得通的原因。

两次移植尝试的 token 花费与耗时对比 图:两次移植尝试的 token 花费与耗时对比。来源:@theo / X

抛弃 130 万行代码,把推翻重来当成决策

在引入 Opus 5.5 后,模型并没有在 Astra 留下的 130 万行代码上继续缝补。它直接判定那些代码处于不可用状态,另建了一个 crate 从零重写。仅仅 10 小时后,它就拿出了具备基础可用性的 v0 版本,进度立刻超过了前一个模型长达数周的挣扎。

在几十万字上下文的重压下,模型主动清空垃圾产物并另起炉灶的果断,决定了项目会不会死在半途。在长生命周期的生成任务里,代码补丁的叠加只会带来难以预料的级联错误。推倒重来的效率远高于在一堆错误代码上继续打补丁,推翻重来打破了人类开发者固守沉没成本的工程直觉。

181,711 个上游测试接管防线

在这个拥有 572 个 star、5,963 次提交的 MIT 许可仓库 README 警告区,作者留下了一句话:「我一行代码都没读过」。这份 README 的主体分割线以下内容甚至全由 Claude Code 撰写。他敢于将一行未读的巨无霸工程直接发布,底气建立在 181,711 个从 Go 版本移植过来的测试已全部通过。

在验证环节,TanStack Query core 与 Hono 的诊断输出与 Go 版逐条一致,语言服务器与 API 在 oracle 测试集上的答案也与上游重合。在测试了 120 个开源仓库后,命令行输出仅在极少数已知问题处存在差异。巨型 LLM 产物的可信度全靠上游坚固的测试套件拦截,代码阅读这种基于人类认知带宽的审查方式已经被剔除出了信任链路。

ts-rust 社交预览卡 图:ts-rust 仓库的社交预览卡。来源:GitHub

没有跑赢 bun,但拿下了内建 Effect 诊断

作者在 Apple M4 Pro 芯片上用 hyperfine 运行了 5 次取中位数,得出了明确的性能定位。在六个开源项目的类型检查中,tsc-rs 的几何平均速度是 tsc 7 的 1.61 倍。在 375 万行代码的 VS Code 项目上,tsc 6 用了 54.56 秒,tsc 7 用 6.84 秒,tsc-rs 压到了 4.20 秒。由于目前发布的预览包还没有开启 PGO 与 BOLT 优化,正式版的实测速度会更快。不过,Bun 提供的 bun check 跑完 VS Code 仅用 1.62 秒,依旧是全场最快的存在。

在涉及特定业务逻辑的诊断时,架构合并的优势显现了。在 T3 Code 包含的 5 个项目合计测试中,不带 Effect 检查时 tsc-rs 用时 7.25 秒,对标 tsc 7 的 16.10 秒;带 Effect 诊断(代码 377xxx)时 tsc-rs 用时 11.13 秒,对标 tsc 7 加 @effect/tsgo 的 21.07 秒。Effect 诊断作为内建功能被整合进主流程,省掉了第二遍扫描的开销。只需敲入 npm install -D tsc-rs 安装,开发者就能获取完整的内建诊断链。

平台边界与计算账本引发猜疑

作为起步初期的实验品,tsc-rs 目前有严格的使用边界。它只支持 Linux x64 静态链接和 macOS arm64 架构,Windows 与 Linux arm64 环境还没有提供支持。已知问题包括在部分 monorepo 结构中会抛出 TS6059 报错(提示文件不在 rootDir 下),以及 tsc -b 偶尔会产生陈旧输出。前五个被提交的 issue 里,有四个复现的其实是上游 TypeScript 自身的行为。当移植工具的行为像素级复制上游时,上游的缺陷也会原封不动地沉淀为特性。

在 Hacker News 的讨论里,工程实现的细节让位给了更深层的分歧。有人敲起计算器,指出 40 万美元足以雇佣一个水平出色的真人工程师来处理,但实验者更愿意把资金投向算力集群;有人下场纠正,点出 40 万只是折算的 API 面值,实耗只有 2.4 万。还有人提出质疑:花费巨额算力的实验项目,开发者连代码都不扫一眼就发布,动机并不纯粹。有人甚至认为这份 README 本身就是打给 Claude Code 的硬核广告。编码门槛降到只需支付订阅费,软件工程的讨论重心也从如何构建代码转到了机器算力与人类报酬的换算。

参考链接:

  • Theo Browne 在 X 上的声明
  • pingdotgg/ts-rust 仓库 README
  • 社区关于 AI 重写 TypeScript 的讨论