<!-- title: Kotlin之父的AI语言革命：CodeSpeak重写编程规则 -->
<!-- domain: programming -->
<!-- video: https://www.youtube.com/watch?v=ZggUn2mNqMU -->

# Kotlin之父的AI语言革命：CodeSpeak重写编程规则

## 导语

当Andrey Breslav在2010年加入JetBrains开始设计Kotlin时，他大概没想到这门语言会成为全球数百万Android开发者的首选。更没想到的是，16年后他会亲手否定"写代码"这件事本身。在The Pragmatic Engineer频道这期1小时44分钟的深度访谈中，Breslav抛出了一个极具挑衅性的命题：**未来的软件开发者不再写代码，而是写规格说明书（specifications）**。他创建的新项目CodeSpeak，试图用结构化的Markdown文档替代传统代码，由LLM完成从"你要什么"到"怎么做"的编译过程。在4个真实开源项目上，CodeSpeak将代码量缩减了5.9x到9.9x，且全部通过了测试套件。这不是一个噱头——这是Kotlin之父对"AI时代编程语言该长什么样"这个问题的严肃回答。

## 视频背景卡片

| 项目 | 内容 |
|------|------|
| 视频标题 | The programming language after Kotlin - with the creator of Kotlin |
| 频道 | The Pragmatic Engineer |
| 主持人 | Gergely Orosz |
| 嘉宾 | Andrey Breslav（Kotlin创造者、CodeSpeak创始人） |
| 时长 | 约104分钟 |
| 核心主题 | 从Kotlin到CodeSpeak：AI时代编程语言的设计哲学 |

## 核心内容拆解

### 1. Kotlin的诞生：从"让Java不痛苦"开始

Breslav在访谈中回顾了Kotlin的设计哲学，这为理解CodeSpeak奠定了基础。2010年的JetBrains面临一个现实问题：他们用Java写IDE，但Java的冗长语法让开发效率受限。Breslav的核心设计原则是**"让常见情况变得简单"（make the common case easy）**——不是创造一门学术上完美的语言，而是让实际写代码的人感觉舒服。

这个哲学直接影响了Kotlin的几个关键决策：null safety通过类型系统解决而不是运行时异常、extension functions让现有类可以无痛扩展、data class把Java中50行的POJO压缩到5行。Kotlin的成功证明了一件事：**好的语言设计不是添加特性，而是消除痛苦**。

Breslav坦言，Kotlin的成功部分归功于时机——Google在2017年宣布Kotlin成为Android官方语言，这给了Kotlin一个巨大的分发渠道。但也正是这种"让复杂事情变简单"的理念，让他开始思考下一个更根本的问题。

### 2. 职业倦怠与重生：为什么离开JetBrains

访谈中一个令人动容的段落是Breslav坦诚讲述了自己在JetBrains后期的倦怠经历。在领导Kotlin开发十年后，他感到创造力枯竭，最终在2020年离开了JetBrains。这段经历并非简单的"休息后回归"叙事——Breslav明确表示，正是这段空白期让他重新审视了"编程语言到底要解决什么问题"。

他在剑桥大学做了一场题为"From Kotlin to CodeSpeak: Programming Languages and AI"的演讲，阐述了自己的思考过程：传统的编程语言抽象层次——从机器码到汇编、从汇编到C、从C到Java/Python——每一次跃迁都是让人类更远离"机器怎么想"、更接近"人类怎么想"。而LLM的出现，让下一步抽象成为可能：**从描述"怎么做"到描述"要什么"**。

### 3. CodeSpeak的核心机制：规格即源代码

CodeSpeak的工作方式与传统编程语言完全不同。用一句话概括：**你写的不是代码，而是结构化的Markdown规格文档；LLM负责把规格编译成可执行的代码**。

具体来说，CodeSpeak的CLI工具提供两个核心命令：

- **`codespeak build`**：读取.spec.md文件，调用LLM生成目标语言的代码（支持Python、Go、JavaScript、TypeScript、Kotlin、Swift）
- **`codespeak takeover`**：反向操作——将现有代码库"反向工程"成.spec.md文件

这意味着一个典型的CodeSpeak工作流是：开发者维护.spec.md文件作为source of truth，git commit的是spec而不是生成的代码，CI/CD pipeline中调用`codespeak build`来生成实际的运行代码。

Breslav在访谈中强调了一个关键点：CodeSpeak不是一个"chatbot wrapper"。它不是在ChatGPT里写prompt然后粘贴代码，而是一个**确定性的工作流**——spec文件是版本控制的、可review的、有明确语法的。LLM只是编译器的一个组件，就像传统编译器中的代码生成器。

### 4. 实战数据：5.9x到9.9x的代码缩减

CodeSpeak团队在4个真实的开源项目上测试了这个方案，结果是惊人的：

- 代码量缩减5.9倍到9.9倍
- 所有项目的测试套件继续通过
- 开发者只需要维护原来1/10左右的"代码量"（实际上是spec量）

这意味着一个原本10000行的项目，可能只需要维护1000-1700行的Markdown规格文档。剩下的代码由LLM根据spec自动生成。

但Breslav也坦承了当前的局限：CodeSpeak仍在alpha阶段，LLM的非确定性意味着同一个spec文件可能生成不同的代码，调试流程还没有完全成熟。不过他的核心论点是：**这些是工程问题，不是概念问题**。就像早期编译器也不可靠，但随着工程投入增长，它们变得坚如磐石。

### 5. "这是语言还是工具？"——Hacker News的激烈辩论

CodeSpeak发布后，Hacker News上爆发了一场关于"CodeSpeak到底算不算编程语言"的辩论。这个辩论实际上触及了一个更深层的问题：**什么是编程语言？**

批评者的核心论点是：CodeSpeak的spec文件没有严格的语法和语义定义，LLM作为"编译器"是非确定性的——同一个输入可能产生不同的输出，这违反了编程语言的基本契约。

Breslav的回应非常巧妙：他指出，在Kotlin的设计过程中，很多"看似严格"的语法规则实际上是为了服务于编译器而非人类。如果LLM能够理解结构化的英文spec并生成正确代码，那么"语法"的定义本身就值得重新思考。CodeSpeak不是要取代所有编程语言，而是在特定场景下提供一个更高效的抽象层次。

社区中一个有洞察力的观点是：**CodeSpeak更像是一个workflow和tooling层，而不是传统意义上的编程语言**。这个定位可能更准确，也更实用。

### 6. 规格驱动开发的未来

Breslav在访谈中展望了一个更远的未来。他认为，软件开发的下一个重大转变不是"AI帮你写代码"，而是**"代码成为一种可丢弃的中间产物"**——就像今天没人会去手写汇编代码一样，未来可能没人会去手写Python或TypeScript。

这个愿景的核心是：
- **Spec是人类维护的唯一产物**，进入版本控制
- **代码是机器生成的临时产物**，可以随时重新生成
- **测试成为验证的核心**，而非代码审查
- **编程从"怎么实现"变成"如何描述需求"**

这听起来像是回到了"需求分析"的老路，但关键区别在于：CodeSpeak的spec是**形式化的**——它有明确的语法（虽然比传统编程语言宽松），可以被机器解析，可以自动编译。这不是在写"用户故事"，而是在写一种新的、面向LLM的中间语言。

### 7. Kotlin遗产与CodeSpeak的设计哲学

访谈中最有深度的部分之一是Breslav对比了Kotlin和CodeSpeak的设计哲学。Kotlin的设计约束是"必须与Java完全互操作"，这决定了它的很多设计决策。CodeSpeak的设计约束则是"必须让LLM能可靠地编译"，这导致了完全不同的语言特征。

Breslav指出，传统编程语言追求的是**无歧义性（unambiguity）**——每个语法结构必须只有一种解释。而CodeSpeak的spec追求的是**足够的精确性（sufficient precision）**——spec需要精确到LLM能生成正确代码，但不需要精确到每个细节。这是一个微妙但根本性的范式转变。

## 知识结构图

```mermaid
mindmap
  root((CodeSpeak: AI时代的编程语言))
    创造者背景
      Andrey Breslav
      Kotlin创始人(2010-2020)
      JetBrains十年经历
      职业倦怠后重新出发
    核心理念
      规格即源代码
      代码是可丢弃的中间产物
      Spec-first开发工作流
      LLM作为编译器组件
    技术架构
      spec.md文件为source of truth
      codespeak build命令
      codespeak takeover命令
      支持Python/Go/JS/TS/Kotlin/Swift
    实战验证
      4个开源项目测试
      代码量缩减5.9x-9.9x
      测试套件全部通过
      目前alpha阶段
    争议与挑战
      是否算"编程语言"
      LLM非确定性问题
      调试流程未成熟
      Spec精确度要求
    哲学层面
      编程抽象层次的跃迁
      从"怎么做"到"要什么"
      编程语言的重新定义
      代码审查转向规格审查
```

## 实战启示

### 对普通开发者的意义

**短期（现在就可以做的）：**
- 开始重视代码的"可规格化"——如果你的函数/模块很难用一两句话描述清楚，说明抽象层次有问题。CodeSpeak的理念即使不直接使用其工具，也能指导你写出更好的代码。
- 关注spec-driven development这个趋势。它不一定以CodeSpeak的形式出现，但"用结构化文档替代部分代码"这个方向几乎确定会发生。

**中期（6-12个月）：**
- 如果你是Tech Lead或架构师，认真评估CodeSpeak在哪些模块可以试用。最适合的场景是CRUD操作、API endpoint实现、数据转换逻辑等"模式化"代码。
- 在代码审查中，尝试将注意力从"怎么实现"转向"spec是否准确描述了需求"。这是一种思维训练，即使不用CodeSpeak也能提升代码质量。

**长期思考：**
- Breslav的洞察揭示了一个趋势：**编程的核心技能正在从"写代码"转向"描述问题"**。这不是说编码能力不重要，而是"能清晰描述你想要什么"变得越来越重要。这要求开发者同时具备领域知识和技术表达能力。
- 对于想要保持竞争力的开发者，建议学习formal specification的基本概念（如TLA+、Alloy），这些技能在未来可能比写更多代码更有价值。

### 需要警惕的风险

- **LLM幻觉风险**：spec写得再好，LLM也可能生成错误的代码。测试覆盖率变得比以往更重要。
- **Vendor lock-in**：CodeSpeak目前依赖特定LLM，如果你的工作流完全依赖它，模型变更可能导致大规模重写。
- **调试复杂度**：当代码是机器生成的，调试变成了"调试spec"还是"调试生成代码"的困境。

## 延伸学习路径

1. **CodeSpeak官方网站** — [codespeak.dev](https://www.codespeak.dev/) — 直接试用CLI工具，体验spec-first开发流程
2. **Breslav在剑桥大学的演讲** — "CodeSpeak: From Kotlin to CodeSpeak: Programming Languages and AI" — 更偏学术视角的语言设计分析
3. **"Code Is Dead. Specs Are Dying. What Survives?"** (DEV Community) — 对spec-first development范式的独立思考
4. **Gergely Orosz的The Pragmatic Engineer Newsletter** — 持续跟进软件工程前沿趋势的最佳渠道之一
5. **TLA+入门** — Leslie Lamport的形式化规格语言，理解"如何精确描述系统行为"的经典方法

## 一句话总结

Kotlin之父用CodeSpeak证明：AI时代最值钱的编程技能不是写代码，而是精确地描述你想要什么——spec才是新的source code。

## 参考来源

1. [The programming language after Kotlin - with the creator of Kotlin](https://www.youtube.com/watch?v=ZggUn2mNqMU) — 分析的核心视频
2. [CodeSpeak Wants to Replace Code with Markdown Specs](https://agent-wars.com/news/2026-03-14-codespeak-wants-to-replace-code-with-markdown-specs) — Agent Wars深度分析
3. [JetBrains' New Language Lets You Talk to LLMs in Specs, Not English](https://groundy.com/articles/jetbrains-new-language-lets-you-talk-llms-specs-not/) — Groundy技术评测
4. [Hacker News Debates CodeSpeak's Spec-First Path](https://insights.marvin-42.com/articles/hacker-news-debates-codespeaks-spec-first-path-for-llm-development) — 社区辩论汇总
5. [The Code That Isn't Written: CodeSpeak and the Revolution of Specifications](https://www.codemotion.com/magazine/languages/the-code-that-isnt-written-codespeak-and-the-revolution-of-specifications/) — Codemotion Magazine深度报道

---

> 本文由「51学通信」技术团队出品。51学通信由通信行业18年老兵**爱卫生**（微信ID: gprshome201101）维护，聚焦5G/6G核心网、3GPP标准解读、通信前沿技术深度分析。
> 出版作品有《5G核心网原理与实践》《IMS原理与实践》等4本通信专业书籍。知识星球「51学通信」提供深度技术答疑和行业洞察。

> [!tip] 51学通信知识星球
> **星主：爱卫生**（微信：gprshome201101）——公众号「51学通信」创办者，19 年通信行业运维与讲师经验，著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书（各大电商平台有售）。
> **星球定位**：深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域，主打运维岗位与信令分析。
> **当前规模**：5200 篇主题 / 990 个回答，198 元/年。
> **加入福利**：加入星球后请加爱卫生微信，拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题，另有群内分享。
> **AI 加持**：51学通信知识星球已作为 skill 接入 WorkBuddy，使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例，做总结、找文档和 PPT 等场景全覆盖。

![51学通信知识星球海报-扫码加入](https://wiki.500nian.com/images/zhixingqiu_qrcode.png)
