2026-07-05
Ekin Ertaç 不会 Rust。但他用 AI 写了一个 PHP 运行时引擎——用 Rust 写的——跑通了 WordPress,通过了 PHP 官方测试套件的 17%。
你觉得这是"AI 写代码"能力的证明,还是反面教材?
我说不好,但这个故事太有意思了,忍不住想拆开看看。

一个"不会 Rust"的人,怎么写出 Rust 引擎的
先说说背景。Ekin 是一个 PHP 开发者,不是系统程序员。他的目标不是"学习 Rust",而是"看看 AI 能不能帮我完成一个大型项目"。
他选的项目是:用 Rust 从头写一个 PHP 运行时引擎。没错,就是像 Zend Engine 或者 HHVM 那种东西——能解析 PHP 代码、执行、和 Apache/Nginx 配合、处理请求的那种正经引擎。
你猜他写了多少 Rust 代码?
一行都没写。或者说——一行手动 Rust 代码都没写。全部是 AI 生成的。他用 AI 生成 Rust 代码,复制粘贴,然后让 AI 修复编译错误,再复制粘贴,再修复……循环往复。
这听起来就像在堆沙堡。但结果出乎意料。
跑通 WordPress 意味着什么
WordPress 驱动了互联网上超过 40% 的网站。它是一个庞大的、古老的、满是 hack 的 PHP 应用。能够渲染 WordPress 首页——哪怕只有首页——已经说明这个引擎能够处理 PHP 的核心功能:变量、函数、数组、类、命名空间、模板语法、会话管理、数据库连接。
17% 的 PHP-src 测试通过率乍看不高。但 PHP 的官方测试套件有上万个测试用例,覆盖了各种边界情况。许多引擎在这个百分比上卡了很久。
HHVM(Facebook 的 PHP JIT 引擎)早期也花了大量人工调优才达到高通过率。而 Ekin 的引擎——几乎是 AI 一对一生成的。
等一下,这意味着什么?意味着 AI 已经能够生成一个能跑通真实世界应用的编译型运行时了?
我原本以为这只是个玩具
说实话,看到"HN 上只有 13 分"的时候,我的第一反应是——又一个 AI 生成的玩具项目。GitHub 上这类项目太多了:AI 写的操作系统、AI 写的数据库、AI 写的编译器……大多数连 hello world 都跑不通。
但 Ekin 的博客里写得很诚实。他不是在吹牛,而是把整个流程——包括所有失败——都记录了下来。
最让我头疼的部分是类型系统。PHP 是动态类型,Rust 是静态类型。这两者之间有个巨大的鸿沟。

这个鸿沟怎么跨过去的
举个例子。PHP 里你可以这样写:
```php
function add($a, $b) {
return $a + $b;
}
echo add(1, 2); // 3
echo add("3", 4); // 7(字符串自动转数字)
```
但在 Rust 里,你必须在编译时知道类型。你没法写一个函数既接收整数又接收字符串。
Ekin 的做法是:让 AI 在 Rust 里实现一个动态类型系统——类似于 `enum Value { Int(i64), Float(f64), String(String), Array(...), Object(...), ... }`,然后所有操作都基于这个 Value 类型做运行时类型检查和转换。
这其实就是在 Rust 里用 `enum` 手工模拟 PHP 的 Zval。本质上是个简单的思路,但实现起来全是细节——运算符重载、内存管理、引用计数、垃圾回收……每个都是坑。
他说 AI 在这个过程中犯了无数次错误,特别是在内存管理方面。Rust 的借用检查器(borrow checker)特别严格,AI 生成的代码经常违反生命周期规则。每次编译失败,他就把错误信息贴回给 AI,让 AI 自己修复。
你看,这个工作流本身就已经很有意思了。Ekin 的角色更像是"项目经理 + QA"而不是"工程师"——他负责给 AI 描述需求、评估输出、提交失败的编译错误让 AI 改。
然后呢?17% 通过率,到底说明了什么
我的看法是——这既是好消息也是坏消息。
好消息:AI 确实能够跨语言、跨范式地生成可运行的工程级代码。Ekin 的引擎不是一个 demo,它能渲染真实页面。这意味着 AI 辅助开发的下一个阶段可能不是"AI 帮你写函数",而是"AI 帮你写整个模块"。
坏消息:17% 的通过率意味着还有 83% 的事情搞不定。而且随着复杂度增加,AI 的修复能力会指数级下降。当测试从一个函数增加到一千个函数时,AI 的上下文窗口不够用了,修了 A 打破了 B 的情况会越来越频繁。
我合上笔记本,喝了口水继续看。
跟传统方式比,值吗?
Ekin 自己说了一句话我很认同:如果目标是"得到一个生产级的 PHP 运行时",那用 AI 生成的效率远低于手写。但目标不是那个——目标是"看看 AI 的上限在哪里"。
他把这个项目比作"人类第一次用 AI 代替脚手架去盖一栋楼"。现在这栋楼虽然后院塌了、窗户漏风、二楼还没建完,但它确实立起来了。
我原本以为 AI 写代码的能力已经被吹过头了……后来发现,能吹的部分和不能吹的部分其实要分开看。像写一段 CRUD 接口这种常规工作,AI 确实已经做得很好。但写一个完整的、有复杂交互的系统,AI 的产出就像这篇博客里的引擎一样——有个模样,但到处漏水。
搞不好再过两年,情况就不一样了。
对普通开发者的启示
你不需要成为"AI prompt 专家"才能用好 AI。
Ekin 的做法其实很简单:用自然语言描述需求,把编译错误喂回去。没有复杂的 prompt 工程,没有 RAG,没有 agent 编排。就是最原始的"生成-反馈-修复"循环。
但有个前提:你得知道自己要什么。Ekin 是一个有经验的 PHP 开发者,他知道 PHP 引擎"应该"怎么工作、每个功能该有什么行为。AI 生成的东西对不对,他有能力判断。
这个"判断力"才是 AI 时代最核心的能力。不是写代码,不是调模型,是判断输出是否正确的眼光。
问:如果让你直接把 AI 生成的代码上线,你敢吗?
反正我不敢。
这就是 17% 通过率告诉我们的:代码能跑,不表示代码是对的。你需要测试、需要人工审查、需要理解每一行 AI 生成的代码到底在干什么。至少目前还不敢放手。
但 17% 是一个起点。不是终点。
谁在乎?反正开发者在乎。因为 17% 一年的增长,就是 AI 辅助开发的临界点。
盯着屏幕上的"WordPress rendered successfully"截图,我想,也许这个临界点比我们想的要近。
关于维基框架
维基框架(Wiki Framework)是一套面向复杂业务场景的轻量级开发框架,支持多语言、多协议、多部署形态。适用于企业级应用开发、微服务架构、云原生部署等场景。
官网:framewiki.com
Gitee:gitee.com/wiki-framework
GitHub:github.com/wiki-framework
示例项目:gitee.com/cdkjframework/framewiki-example
📄 许可证:MulanPSL-2.0(木兰宽松许可证,第2版)
436

被折叠的 条评论
为什么被折叠?



