用途
English Compiler 旨在将用英文(或其他自然语言)编写的 Markdown 功能规格说明,直接编译成功能性代码。它试图验证一个理念:AI 可以成为现有现代编程语言之上的新抽象编译层,就像现代编程语言之于操作系统 API 的抽象一样。
主要能力
- 将 Markdown 格式的
.spec.md规格文件转换为对应语言的代码文件。 - 支持生成完整的跨文件应用,例如无登录认证的 Twitter 克隆(包含 UI 和 API 端点)。
- 支持生成长度超过 4000 token 的大型 Java 类,这是直接调用 OpenAI API 难以做到的。
- 通过复杂的提示链工程绕过 OpenAI 模型输入输出长度限制,实现大文件生成。
- 可选生成 JavaScript 测试脚本(通过独立过程避免污染源码)。
- 提供命令行工具,可针对单个规格文件或整个项目进行构建。
使用方式
- 通过 NPM 安装:具体命令暂未提供,但官方称最简单的安装方式是从 NPM 安装。
- 在项目中创建
specs文件夹和src源代码文件夹,并设置english-compiler.jsonc配置文件,其中需包含 OpenAI API 密钥等设置。官方提醒不要将 API 密钥提交到公开仓库。 - 规格文件放置在规格文件夹中,命名为
$NAME.spec.md,与单个代码文件一一对应。 - 规格文件至少包含 Markdown frontmatter,其中
type参数指定目标语言;可选的test参数(仅支持 JavaScript)会尝试生成相关测试脚本。 - 命令行示例:
- 请求 AI 对规格文件给出建议:
EnglishCompiler spec suggest spec/ui/index.spec.md - 构建单个规格文件:
EnglishCompiler build file spec/core/db.spec.md - 构建所有规格文件:
EnglishCompiler build all
- 请求 AI 对规格文件给出建议:
- 提供演示项目:
demo/twitter-clone(推特克隆)和demo/java-class(大型 Java 类),演示中预置了 AI 编译过程的缓存和规格文件,以及预构建的代码输出。
适用场景
- 对 AI 驱动的代码生成范式感兴趣的开发者进行实验和概念验证。
- 需要从详细功能规格自动生成代码原型的场景。
- 想要生成长度超出常规 API 限制的大型代码文件(例如大型 Java 类)的场景,本项目提供了绕过限制的示例。
限制
- 明确为“概念验证”(POC),远未达到生产就绪状态。
- 输出代码可能存在少量错误,开发者尝试修复这些错误耗时很长,写-编译-测试循环缓慢。
- 性能低下:为生成一个大代码文件需要多次调用 AI 进程(每个文件可能超过 10 次调用),整体过程非常慢。
- 当 ChatGPT 过载时,编译可能失败。
- 依赖 OpenAI API,需要提供 API 密钥,且密钥不可公开。
- 测试生成功能仅支持 JavaScript。
- 官方称其效率低下,当前迭代可能没有实际商业价值。
- 项目已有后继者 smol-dev-js(https://github.com/PicoCreator/smol-dev-js),但本仓库仍作为独立 POC 存在。