二月份以来随着Claude新产品的发布,微软等软件股大跌,互联网上几乎一夜之间到处充斥着“软件不存在了”的言论,以后代码由AI生成就行。我也在每天用AI写代码,感受却不一样。用一个不恰当的类比,明明通货膨胀严重、经济非常不好,但股市却一路高歌、各种政府数据说的跟你每天看到的不是一回事。很显然数据和体感是脱节的,经济如此,AI编程的现状也如此。
AI编程比一年前确实又进步了不少,不是编程能力,而是Agentic方面。程序员可以指挥Claude Code创建团队,让多个Agent扮演不同角色各施其职同时干几件事。给人一种错觉,似乎已经发展到了一个人类项目经理吃着火锅唱着歌就能带领一群AI员工做出产品的程度。但事实真的如此吗?
先说编程能力。前些年AI的编程能力是真的很弱,那时候让AI写一个简单的东西都能把人折腾死,近两年AI的编程能力确实进展挺多,但即便现在像Gemini、DeepSeek已经达到了国际信息学奥林匹克竞赛金牌的水平,以前会犯的错误还是一样会犯。
前几天让AI克隆一个软件的功能。代码很快生成出来了,运行却总有问题。第一个问题让它反复改了几次都没用,一个按钮总是灰的。后来我在打印的日志里发现有异常发生,但是被捕获没有抛出来,告诉它后才改对了。
接下来第二个问题是运行时总有异常导致程序崩溃退出。这是一个非常奇怪的异常,我这样经验丰富的开发者看了很多遍代码也没有发现问题出在哪里,AI更加束手无策,最后我用笨办法才解决问题。原因是生成的代码中有很多处同样的控件使用了同样的画笔资源,但是其中一个被AI出现幻觉写成了颜色资源,导致类型转换失败,那个画笔资源和颜色资源的名字差不多,所以我也没看出来。
这种问题现阶段AI还没有能力发现并解决。因为这不是一个逻辑错误,而是一个资源管理的细节问题。现在AI厂商们总说AI的“前端开发能力”很强,这里的前端只能说是“网页开发”,而桌面应用程序的复杂性与网页开发不同。AI在这方面的调试能力除非是桌面应用程序的设计与开发模式发生重大改变,否则很难有大的突破。
上面这个例子,如果指挥AI的人类没能力帮助AI修正这种简单但是难搞的问题,结局会是因为AI一个小小的幻觉,项目中某个模块需要推到重来(重新生成代码)。要知道我让AI克隆的这个软件的复杂度是属于非常初级的级别,只是一个简单的工具软件而已。
再说Agentic。网络上的言论告诉人们好像人类不要懂代码,只需要当设计师就行。事实上这是最大的误区。如果人类需要的软件都是AI大神Andrej Karpathy前几天提到的那种简单的健身数据处理仪表盘的话,现在AI的能力确实是足够了。但除非人类愿意削足适履说嗯我确实不需要复杂的软件了,否则目前AI的能力还差得远。
使用AI辅助编程的人会知道给出的提示词需要清晰,边界条件要明确,AI才能做出你想要的东西。但即便在这种情况下AI生成的代码还是常常有问题。
这是因为被用来训练AI的那些代码不可避免地有问题,质量也参差不齐。当AI生成代码的时候,出于速度、资源的考虑,不可能对每一段代码都开启思维链来进行推理,而是根据学到的东西生成出与上下文最相关的代码——至于代码可能有逻辑上的问题,AI并不会去主动检查,尤其是隐含于代码中而提示词并未涉及的含义。这时候如果人类看出代码的问题去问AI,它在分析完代码思考过后通常能修正代码逻辑。但这在大型项目中会成为不可忽视的问题。
真实世界中,一个非常有经验的项目经理带领一个由人类程序员组成的团队做项目,项目规划得再好,人类程序员在写代码的过程中仍然需要发挥主观能动性才能把意料之外的情况处理好。在有AI介入的情况下,项目经理再有经验,项目规划得再细,由于AI一方面缺乏主观能动性,另一方面也不可能一直开启推理模式,写出来的东西可能会是一地鸡毛。而现在广告说人类只需要提需求,其它的一切都交给AI,这显然行不通。
当然“软件不存在了”这句话也不能完全算错。很多App本来没有存在的必要,会因此消失,应该说是软件行业的很多泡沫会因此被挤出来。但软件股大跌很大程度上是不懂软件的投资者在受到惊吓后的恐慌,软件也不会消失,AI能力变强不假,但没了懂原理的人AI也编写不出高级的软件。
AI不会让程序员消失,但它会改变程序员的工作方式。以前可能要花一两天写的代码现在可能十分钟就够了,这并不意味着程序员的价值降低了,而是说程序员可以做更有价值的事情。
说到底,软件还是存在的,只是写软件的方式在变。那些说”软件不存在了”的人,可能把工具当成了最终目的。工具再厉害,也要有人知道怎么用,用在什么地方,这才是程序员真正的价值所在。