如果你问一个程序员:
什么是好代码?
几乎所有人都会回答一句经典的话:
代码首先是写给人看的,其次才是给机器执行。
过去几十年,整个软件行业几乎都在围绕这个理念发展。
变量名越来越长,函数越来越语义化,代码规范越来越严格。
各种 Design Pattern、Clean Code、DDD……本质上都是在解决同一个问题:
让人更容易理解代码。
但是,我最近突然想到一个问题。
如果未来写代码和维护代码的主要角色,不再是人,而是 AI 呢?
那这一整套原则,还成立吗?
一、代码为什么越来越像自然语言?
很多年轻程序员会觉得,现在的代码本来就是这样。
其实不是,最早的程序,根本不是给人看的,最开始,人直接写机器码,后来写汇编,再后来出现高级语言,再后来出现面向对象、各种框架、DSL……
整个发展过程,本质上只有一个方向:
让人理解代码越来越容易。
为什么?
因为真正昂贵的,从来不是写代码,而是维护代码,一个系统可能运行十几年,真正阅读它的人,往往不是作者,而是后来接手的人,所以程序员一直在提高"可读性”。
甚至有人说:
程序首先是写给人看的,只是顺便让计算机执行。
过去几十年,这句话几乎成为行业共识。
二、但是,AI 改变了一件事情
以前只有人会维护代码,所以代码必须让人看懂。
现在开始发生变化,越来越多公司已经不是:人写代码 → 人维护代码,而变成:产品提出需求 → AI 写代码 → AI 修改代码 → AI 重构代码。
人在里面越来越像审核者,甚至只是点一下 Accept 。
当 AI 可以理解整个项目,理解所有上下文,理解几十万个文件之间的关系,理解所有历史 Commit,那么,它真的还需要 “可读性” 吗?
答案可能是否定的。
三、可读性,其实是一种“人与机器通信成本”
很多人误以为:
代码可读性是一种技术追求。
其实不是。
它更像一种妥协,因为机器根本不在乎:变量叫 user、u、x 还是 abc123,机器不会因为函数写得漂亮,就运行更快,真正需要这些东西的是人。
所以:缩进、注释、命名、模块划分、设计模式,这些都不是计算机需要的,它们全部都是为了降低人的理解成本。
换句话说:
代码越来越接近自然语言,不是因为机器需要,而是因为人需要。
四、如果维护代码的是 AI 呢?
这里就出现一个非常有意思的问题。
如果未来 90% 的代码维护工作,都由 AI 完成。
那么代码优化目标,会不会发生改变?
今天我们追求的是:
- 可读性(Readable)
- 可维护性(Maintainable)
- 可扩展性(Extensible)
未来可能变成:
- AI 理解效率最高
- Token 最少
- 上下文关联最快
- 自动修改成本最低
- 编译效率最高
注意。
这里面的“理解”,已经不是人类理解,而是 AI 理解。
那时候,代码可能根本不是自然语言。
甚至不会遵守今天任何编码规范。
五、为什么 AI 可能不会继续写“人类代码”
很多人觉得:
AI 不就是按照我们的规范写代码吗?
现在确实如此。
因为今天还有人 Review,还有人 Debug,还有人维护,所以 AI 必须迁就人。
但是如果未来:
AI 自己生成。
AI 自己修改。
AI 自己测试。
AI 自己上线。
AI 自己定位 Bug。
那它为什么还要写给人看?
人类语言,本身就是一种低效的信息编码。
对于 AI 来说。
它完全可以采用一种更高密度、更容易推理、更容易关联上下文的表达方式。
这种表达方式,人类可能根本看不懂。
但 AI 的理解速度会更快。
六、再往后,甚至可能没有“源代码”
这是我觉得最有意思的一点。
今天为什么需要源代码?因为人需要修改,需要阅读,需要调试,需要版本管理。
如果未来这些事情全部由 AI 完成。
那么:
源代码,还有存在的必要吗?
理论上,AI 完全可以:
需求 → 二进制。
或者:
需求 → 中间表示(IR) → 可执行文件。
整个过程,人甚至看不到源代码。
今天我们认为必须存在的 Java、Go、Python、Rust……
未来可能只是 AI 内部的一种中间语言。
真正运行的东西,也许直接就是机器最容易执行的形式。
这听起来很疯狂。
但仔细想想:
高级语言,本来就是为了让人类更容易编程而诞生的。
如果程序员越来越少参与实现过程,高级语言的重要性也会被重新定义。
七、真正的问题,不是技术,而是信任
很多人会说:
"AI 真能做到这一步吗?"
我觉得,这反而不是最关键的问题。
真正决定未来的,不是 AI 能不能。
而是:
人类愿意相信 AI 到什么程度。
更准确一点说:
资本愿意相信 AI 到什么程度。
如果一家互联网公司相信:
AI 修改代码,比工程师更稳定,AI Review,比人工更准确,AI 排查 Bug,比专家更快,AI 上线事故更少。
那么,它没有理由继续为"人类可读性"支付成本。
商业世界从来不会为了情怀保留一种技术。
只会为了效率。
所以,未来代码到底写给谁看,并不是一个技术问题,而是一个经济问题。
结尾
回头看计算机的发展史,会发现一个有趣的循环。
最开始,代码是写给机器看的。
后来,因为人维护成本太高,代码越来越接近自然语言。
而 AI 出现之后,我们可能正在走回另一条路。
代码,再一次开始写给机器。
只是这一次,这个“机器”已经不只是 CPU。
而是能够理解、生成、修改和维护整个软件系统的 AI。
也许很多年以后,人类程序员看到 AI 写出的代码,就像今天的我们看机器码一样。
它依然高效,依然正确。
只是,再也不是写给我们看的了!