随着AI的崛起,“Talk is cheap, show me the code”这句程序员经典格言正在被重新诠释。在AI时代,代码的门槛正快速降低,取而代之的是对开发者“表达能力”的更高要求——你是否能精准描述问题?是否能清晰构建逻辑?
Code is cheaper, show me the talk
——AI时代的编程革命故事
“Talk is cheap. Show me the code.”
——Linus Torvalds
“Code is cheaper. Show me the talk.”
——AI开发者,2025年
一、故事开场:在两位程序员之间
2025年初春,一位经验丰富的程序员老李,正在重构他10年前开发的企业管理系统。这套代码已经满是蛛网,犹如楼上堆满旧报纸的储藏间。
“你现在写的这些代码,太啰嗦,没节制。”他的徒弟小吴说。
“你懂什么,talk is cheap, show me the code。”老李头也不抬地说。
小吴一笑,打开电脑,调出了ChatGPT。
“帮我写一个支持分页查询的Spring Boot Controller,含服务层、DAO层、参数校验与异常处理。”
只见十几秒后,项目框架初成,注解齐全,代码风格统一。老李瞪大了眼睛,“这是你写的?”
“是我说的。”小吴笑了笑,“code is cheaper,show me the talk。”
二、从“Show me the code”到“Show me the talk”
Linus提出“Talk is cheap, show me the code”的时候,强调的是执行力、技术落地与真实产出。
但随着AI技术的介入,特别是ChatGPT、GitHub Copilot、CodeWhisperer等逐步走进开发者视野后:
- 代码变得容易复制和生成。
- 问题从“谁能写出代码”,变成了“谁能描述清楚需求”。
- 高质量**Prompt(提示词)**设计,成为新的核心技能。
于是新的口号诞生:
Code is cheap. Show me the talk.
代码很便宜,关键是你“说”得准。
三、AI编程实战示例:Prompt驱动开发
我们通过一个完整示例,看AI如何变成程序员的副驾驶。
示例:实现一个用户注册登录模块(后端)
✅ 步骤一:提出任务说明(Prompt)
请帮我写一个基于Spring Boot的用户注册与登录模块,包含:
- 注册接口(校验用户名长度、密码强度)
- 登录接口(使用JWT进行登录状态管理)
- 使用H2数据库
- 提供用户信息获取接口(需登录状态)
✅ 步骤二:AI生成主要代码结构
1. 用户实体类
@Entity
public class User {
@Id @GeneratedValue
private Long id;
@Column(nullable = false, unique = true)
private String username;
@Column(nullable = false)
private String password;
}
2. 注册接口校验(DTO + 校验注解)
@Data
public class RegisterRequest {
@NotBlank
@Size(min = 5, max = 20)
private String username;
@NotBlank
@Pattern(regexp = "^(?=.*[A-Z])(?=.*\\d).{8,}$", message = "密码必须包含大写字母和数字,且至少8位")
private String password;
}
3. 登录认证 + JWT生成
@PostMapping("/login")
public ResponseEntity<?> login(@RequestBody LoginRequest request) {
// 验证用户名密码后,生成JWT Token
String token = jwtService.generateToken(user.getUsername());
return ResponseEntity.ok(Map.of("token", token));
}
✅ 步骤三:你只需“说得准”,AI帮你“写得好”
这一过程中,开发者的技能不再是“码速”,而是:
- 是否能说清需求?
- 是否能描述逻辑顺序?
- 是否能精准定义边界情况?
四、语法不死,只是被重新包装
AI写代码≠黑箱,它仍然严格遵循编程语法,只是形式转化了。
传统写法 | AI方式 |
---|---|
public class UserServiceImpl implements UserService | “帮我实现一个用户服务类,含增删改查接口” |
@GetMapping("/user/{id}") | “提供一个通过ID查询用户的接口,GET请求” |
new BCryptPasswordEncoder().encode(pwd) | “注册时对密码进行加密存储,使用BCrypt” |
它不是偷懒,而是把代码语言还原为人类语言,这要求你更加逻辑清晰、描述准确。
五、开发者的新技能:Prompt Engineering(提示词工程)
Prompt设计本质上就是结构化表达需求。
🔧 示例:数据导出模块
你说:“写个导出Excel的功能”
ChatGPT不可能知道你想导出什么,格式是什么。你要学会“说人话”,且说得清楚:
写一个Spring Boot的接口,导出Excel,要求如下:
- 查询用户表中状态为“已激活”的用户
- 表格包含列:姓名、邮箱、注册时间
- 表头加粗,居中
- 使用阿里 EasyExcel
这样,它才能输出以下代码:
@GetMapping("/export")
public void export(HttpServletResponse response) {
List<User> list = userService.findActiveUsers();
EasyExcel.write(response.getOutputStream(), UserExportDTO.class)
.sheet("激活用户").doWrite(list);
}
六、code is cheaper,但你得“Talk得值钱”
从AI角度来看,代码只是拼图,真正有价值的是“原型设计者的语言”。
这正是程序员在AI时代转型的关键:
- ❌ 写得快
- ✅ 想得准
- ✅ 描述清
- ✅ 懂场景
我们不再比谁能写出更短的for循环,而是比谁能提出更完整的问题。
七、反转经典名句的价值:再看一遍
名言版本 | 背后含义 |
---|---|
💡 Talk is cheap. Show me the code. | 要干活别空谈,代码说话。适用于“0到1”的工程化时代。 |
🔁 Code is cheaper. Show me the talk. | AI已能写大部分代码,关键是你能否描述清楚。适用于“1到∞”的自动化时代。 |
从“程序员写代码”到“AI写代码,程序员说话”,这是技术与认知模式的范式转移。
八、未来趋势:AI协作式开发工作流
以下是一个典型的AI开发流程,称为Prompt Driven Development (PDD):
@startuml
title AI辅助编程流程
actor 开发者
rectangle "AI工具\n(如ChatGPT)" as AI
rectangle "代码生成\n和优化" as Code
rectangle "调试与测试" as Debug
rectangle "部署上线" as Deploy
开发者 --> AI : 提出明确Prompt
AI --> Code : 输出结构化代码
开发者 --> Code : 审查与修改
Code --> Debug : 测试运行
Debug --> Deploy : 完成上线
@enduml
九、尾声:AI不会替代你,但会奖励会“说”的你
在未来,程序员可以分成两类:
- 一类拼命敲代码,与AI竞争打字速度;
- 另一类精通描述问题,善用AI生产力工具,成为高效系统架构师。
技术并未褪色,只是更接近思想本源。
所以,下一次你再跟AI说话前,想清楚:
你想实现什么?如何描述它?如何评估它?
这,才是最贵的“talk”。