首页 › programming › Kotlin之父的AI语言革命:CodeSpeak重写编程规则

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工作流是:开发者维护.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个真实的开源项目上测试了这个方案,结果是惊人的:

这意味着一个原本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能生成正确代码,但不需要精确到每个细节。这是一个微妙但根本性的范式转变。

知识结构图

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),这些技能在未来可能比写更多代码更有价值。

需要警惕的风险

延伸学习路径

  1. CodeSpeak官方网站 — 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 — 分析的核心视频
  2. CodeSpeak Wants to Replace Code with Markdown Specs — Agent Wars深度分析
  3. JetBrains' New Language Lets You Talk to LLMs in Specs, Not English — Groundy技术评测
  4. Hacker News Debates CodeSpeak's Spec-First Path — 社区辩论汇总
  5. The Code That Isn't 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学通信知识星球海报-扫码加入