Kotlin 创造者发布新语言:一种比英语更正式的 LLM 沟通方式
Hacker News 摘要原标题:Kotlin creator's new language: a formal way to talk to LLMs instead of English
核心概念与技术背景
CodeSpeak 是一种由 Kotlin 创造者开发的新一代编程语言,旨在通过 AI 驱动的方式重塑软件工程。它的核心理念是提供一种比英语更正式的表达方式来与大语言模型(LLM)沟通,从而将代码量缩减为原来的五分之一到十分之一。
该项目目前处于 Alpha 预览阶段。用户可以通过 uv tool install codespeak-cli 进行安装。
面向生产级系统
与许多仅用于快速原型的 AI 编程工具不同,CodeSpeak 专注于生产级系统和长期维护。它的受众包括:
• 构建复杂软件的工程师,而非仅仅依赖氛围和直觉的开发者。
• 需要注重沟通和协作的专业团队,而非仅仅是独立开发人员。
维护规范而非代码
在该框架下,开发者的工作重心从编写原始代码转向编写简洁的规范(Specs)。具体流程如下:
• 用户编写一个精简的 spec.md 文件。
• 运行 codespeak build 命令,系统会自动生成对应的 code.py 文件。
• 用户可以直接点击规范中的语句,查看其对应的具体代码实现。
当规范发生演变时,工具会执行差异化处理。规范文件的改动会直接映射为代码文件的改动。例如,在处理 EML 转换器的案例中:
• 用户在规范中新增关于附件处理的需求,比如调用 markitdown 实例转换附件流。
• 构建工具会自动识别规范的变化,并为 Python 代码生成对应的补丁。
解析与功能定义示例
以一个 EML 转 Markdown 的转换器为例,开发者只需在规范中定义以下要求:
• 接受类型:接受 .eml 扩展名或 message/rfc822 的 MIME 类型。
• 输出结构:包含标头部分(发件人、收件人、主题、日期等)、正文(优先使用纯文本,只有 HTML 时才转换)、附件部分。
• 解析细节:解码 RFC 2047 编码的标头,处理 Base64 或 Quoted-printable 的编码内容,递归处理嵌套消息,提取附件元数据。
混合项目与现有资产转化
CodeSpeak 支持混合开发模式,即在同一个项目中,部分代码由人工编写,另一部分由规范生成。这使得现有的复杂项目可以逐步迁移。
即将面世的功能还包括将现有的冗长代码转化为规范。由于规范通常比对应的代码小 5 到 10 倍,因此维护规范对于人类开发者而言更加轻松。
真实案例研究
通过对多个知名开源项目的代码进行重构,CodeSpeak 展示了其强大的代码压缩和功能保持能力:
1. yt-dlp 的 WebVTT 字幕支持:
• 原代码行数:255 行。
• CodeSpeak 规范行数:38 行。
• 缩小倍数:6.7 倍。
• 测试表现:通过了所有既有测试,并新增了 37 个测试。
2. Faker 库的意大利身份证号生成器:
• 原代码行数:165 行(不计入 8000 行左右的城市代码列表)。
• CodeSpeak 规范行数:21 行。
• 缩小倍数:7.9 倍。
• 测试表现:通过全部测试,并新增 13 个测试。
3. BeautifulSoup4 的编码自动检测与归一化:
• 原代码行数:826 行。
• CodeSpeak 规范行数:141 行。
• 缩小倍数:5.9 倍。
• 测试表现:通过全部测试,并新增 25 个测试。
4. MarkItDown 的 EML 转换器:
• 原代码行数:139 行。
• CodeSpeak 规范行数:14 行。
• 缩小倍数:9.9 倍。
• 测试表现:通过全部测试,并新增 27 个测试。
在计算代码行数对比时,该团队会剔除空白行,并将长行拆分为多行以保证对比的公平性。