SQLite的创始人D. Richard Hipp在一段访谈视频里提过一个具体职位:SQL出现之前,专门写软件去查询大数据集的人,职位名称就叫“COBOL程序员”。这活儿后来被SQL整个接管,程序员不用再手写取数逻辑,说清楚要什么就行。
Hipp的结论是,程序员没有消失,工作换了个说法。这话放在今天关于AI编程会不会让程序员下岗的争论里,正好戳中大家关心的问题。
SQL接管的是哪一层活儿
Hipp自己补了一句,他这么说是简化了历史,不是软件史的完整版本。这句提醒很重要——别把一个访谈类比当成结论。
他讲清楚的那部分是:SQL把“怎么从数据里取东西”这层实现代码,换成了一句声明式规格。程序员说要什么,机器自己生成怎么拿,过去要花大价钱雇专人手写的那堆代码,一句查询语句就顶上了。
这是从大量专用代码转向声明式表达的转变,受冲击最大的是以重复实现为核心的岗位任务,不是程序员这整个职业。系统设计、性能调优、出错兜底,SQL从来没接手过这些活儿。
跟AI编程比一比,边界差在哪
Hipp的类比经常被拿来给AI编程站台,说历史已经证明自动化不会减少程序员数量。这个推论走得太快了,两件事的边界不是一回事。
| 维度 | SQL替代COBOL查询 | AI生成代码 |
|---|---|---|
| 问题边界 | 清楚,查询逻辑范围固定 | 模糊,任务类型跨度大 |
| 验证方式 | 结果能直接核对,对错分明 | 验证成本高,隐藏错误不容易发现 |
| 出错影响范围 | 局限在单次查询 | 可能扩散到依赖这段代码的多个系统 |
| 自动化对象 | 查询实现代码 | 更广泛的实现代码,甚至部分设计决策 |
历史类比能帮你看清一件事往哪个方向走,回答不了这次自动化会不会真的收缩岗位数量。材料没给这个答案,谁也别急着替它下结论。
对写代码的人和带团队的人意味着什么
对普通开发者,重复实现型任务被工具接住之后,个人价值更多落在两件事上:把需求想清楚,判断生成结果对不对。花时间打磨测试思路、代码审查、系统集成排错,比死磕语法细节更有回报。
对负责团队和岗位设计的管理者,如果团队里初级岗位的工作主要是重复实现,这部分任务最先被工具吃掉。岗位设计得提前想清楚:初级人手要不要精简,留下的人往验证和系统治理方向培养到什么程度。责任一旦集中到少数人身上,出错之后的追责链条也得跟着重新设计,不能还按老岗位说明书走。
接下来值得盯的是两件事,而不是空等一个岗位数字:AI生成代码的验证成本会不会随着工具成熟真的降下来;企业省下来的实现时间,是转投到需求定义和系统治理上,还是直接拿去裁减初级岗位。这两件事的答案,才是这次自动化真正的分水岭。
