属于程序员的时代结束了
人工智能生成的代码已经比人类程序员更好,理解能力和提出解决方案的能力也更强。编程智能体可以自我改进和增加功能,程序员这个职业正在消失。
在人工智能能够编码的时代,程序员已经没有存在的必要了。我之前还觉得,即使人工智能能够生成代码,但是还是需要人来确保代码正确。但是,随着人工智能的进步,以及智能体的开发加速,人工智能生成的代码已经比人类程序员好了,而且理解能力、提出解决方案的能力也比人类更强。
现在,人工智能生成代码的速度太快,人类去做代码审核已经成为开发的瓶颈了。有人提出了一个问题:既然代码能够工作,我们还有必要去检查吗?
编程智能体已经可以自己改进自己,自己给自己增加新功能了。这不再是科幻小说,而是正在发生的事实。当智能体能够阅读文档、理解需求、编写代码、测试验证、甚至优化重构,人类程序员在这个过程中扮演的角色越来越边缘化。
我想到了一个类比。我们每天都在使用苹果手机,但是我们并不需要知道苹果手机的硬件细节。我们不知道处理器是如何设计的,不知道屏幕是如何显示的,不知道操作系统是如何管理内存的。我们只知道它很好用,能够满足我们的需求。这也许就是未来软件开发的模样——我们只需要描述想要什么,智能体就会帮我们实现,我们不需要知道代码是如何编写的。
这让我想起了一个故事。在工业革命之前,纺织工人在家里用手摇纺织机工作,他们需要掌握复杂的技巧,需要了解棉线的特性,需要调整机器的参数。然后蒸汽机出现了,工厂出现了,纺织工人变成了机器的操作员,再后来变成了机器的维护员,最后变成了机器的监督员。大多数纺织工人并没有失业,但是他们的工作性质完全改变了。程序员也许正在经历类似的转变。
Thorsten Ball 在一条雪中录制的视频里讨论了这个问题。他说智能体生成的代码数量巨大,人工逐行审查已经成为瓶颈。他的解决方案是预先设计好测试——单元测试、集成测试、边缘案例验证——如果代码通过了所有测试,功能就是正确的,不需要去关心代码本身是怎么写的。
这个观点扩展了他周日通讯的主题:「代理生成的代码是否需要完全了解?」他指出,就像我们不会去审查同事写的每一行前端代码一样,如果智能体生成的代码通过全面测试且性能合格,为什么还要纠结它的细节呢?视频下面的讨论也很有意思。有人谈到了代码审查的灵活性,有人提到了 LLM 生成的代码往往很冗余,还有人担心新手开发者如何培养「品味」。这些讨论其实反映了一个更大的趋势:AI 工具正在推动软件工程向结果导向转型。
有些人还是会说,代码审查是必要的,因为人工智能可能会犯错。但是,人类程序员不也会犯错吗?而且,人类犯错的频率可能更高。如果人工智能生成的代码在大多数情况下都是正确的,那么为了那少数可能存在的错误而去审查每一行代码,这真的值得吗?
还有人会说,人工智能无法理解复杂的业务逻辑。但是,这是真的吗?当智能体能够阅读需求文档、能够与产品经理沟通、能够提出解决方案、能够实现功能、能够测试验证,它们为什么不能理解业务逻辑?也许它们理解的方式与人类不同,但是结果是相同的。
我还想到了另一个问题:为什么我们需要编程?编程不是为了编程本身,而是为了解决问题。如果人工智能能够更高效地解决问题,为什么还要坚持由人类来编写代码呢?这就像在汽车出现之后,仍然坚持使用马车一样,没有任何意义。
当然,这种变化不会在一夜之间发生。现在还有很多人工智能无法胜任的工作,还有很多需要人类创造力、判断力、情感的工作。但是,这些工作越来越少,而且人工智能正在快速进步。也许几年之后,程序员这个职业就会像打字员一样,成为历史名词。
我不知道这是好事还是坏事。也许这是进步的代价。但是,我相信这是不可避免的。属于程序员的时代正在结束,属于智能体的时代正在开始。我们只能接受这个现实,适应这个变化,找到新的位置。
更新记录
- 公開