Bun 发布了不安全的 AI 代码
Bun 最近发布了一个大规模的 Rust 重写版本。团队使用 Claude AI 编写了其中大部分代码。这次重写为代码库增加了超过 13,000 个 unsafe 代码块。
在系统编程中,unsafe 代码会绕过内存安全规则。一个 unsafe 代码块就是一个风险。而在 AI 生成的代码中出现一万三千个代码块,则是一场危机。
团队在发布此版本时也没有配备并发垃圾回收器。这使得在多线程工作负载下的内存管理变得十分困难。
我理解对速度的需求。小团队必须快速行动,才能与 Node.js 和 Deno 竞争。但速度不应以牺牲谨慎为代价。
一个 unsafe 代码块是对内存访问有效性的承诺。如果代码是由 AI 编写的,那么就没有人类为这份承诺签字背书。
AI 代码本身并不坏。然而,如此大规模地使用 AI 来生成 unsafe 代码是危险的。
运行时(runtime)不仅仅是一个简单的库。它是你整个应用程序的基石。当你选择一个运行时,你就是在选择信任它。
由于对稳定性的担忧,一些开发者正在回归 Node.js。这就是发布实验性基础设施所带来的后果。
我每天都在使用 AI 工具。我把 AI 代码当作初级工程师写的代码来对待。它需要与风险程度相匹配的代码审查。
JavaScript 运行时中多线程带来的风险是巨大的。那 13,000 个代码块需要 13,000 个充分存在的理由,而不是 13,000 个盲目的批准。
高速的 AI 生成需要同样高速的代码审查。
Bun 具有巨大的潜力。团队也做了令人印象深刻的工作。但如果只有雄心而缺乏谨慎,就会造成隐患。
我们不应该停止使用 AI。我们必须确保审查力度与潜在的影响范围相匹配。AI 无法理解犯错所带来的代价。
你会在生产环境的应用中运行 13,000 个 AI 生成的 unsafe 代码块吗?你对信任 AI 处理基础设施的底线在哪里?