最近在想一个问题:那些见证过多次技术浪潮的老程序员,他们怎么看现在的AI热潮?是觉得狼来了,还是觉得又一次泡沫?
正好听到一期 Martin Fowler 的访谈,挺有意思的。这位老兄写过《重构》,是敏捷宣言的签署者,在软件圈子里算是教父级的人物。今年快70了,从汇编时代一路走过来,什么大风大浪没见过。
他的态度让我有点意外。既没有那种"AI要取代程序员"的焦虑,也没有"这不过是炒作"的傲慢。反而说了几个挺反直觉的观点。
第一个,这次变革的本质不是效率提升,是游戏规则变了。
以前写代码有个好处,确定性强。同样的代码跑一百遍,结果一模一样。debug的时候心里有底,问题一定能复现。但AI生成代码就不一样了,同样的提示词,今天给你一个版本,明天可能完全换一套写法。
他说他老婆是造桥的工程师,设计桥梁要考虑材料的容差,不能按理论最优值来,得留余量。软件工程师以前不需要这种思维,现在可能要学着适应了。
我觉得这个角度挺新的。大家都在讨论AI能不能写出好代码,他关心的是:当代码变得不确定,我们的工程方法论要怎么跟着变?
第二个,vibe coding 最大的问题不是代码质量,是你自己的成长。
现在流行一种玩法,跟AI描述需求,它直接生成代码,能跑就行,不用看懂。他管这叫 vibe coding。
他讲了个小故事。同事用AI画了张简单的曲线图,他想微调一下标签位置。结果打开文件一看,复杂得离谱,根本改不动。类似的图他自己手写过,十几行就搞定。
但他担心的不是代码乱,而是另一件事:学习循环断了。
写代码这件事,本质上是一个反馈循环。你有想法,写出来,看结果,调整想法,再写。每转一圈你都在学东西。如果你从头到尾不看代码,循环就断了,看起来省了时间,其实省掉的是自己变强的机会。
这让我想起一个老问题:工具越强大,人是变强了还是变弱了?
第三个,AI时代反而更需要小步快跑。
很多人觉得有了AI,可以搞大的了,一次性生成一大坨代码。他说恰恰相反,应该把步子迈得更小,循环转得更快。
原来两周干完的活,现在切成四五个小块,每块两三天就上线。为什么?因为AI生成的东西你没法完全信任,必须频繁验证。小步快跑不是因为你菜,是因为环境变得更不确定了。
他有个比喻我觉得特别准:把AI当成一个能力很强但不太靠谱的实习生。
它交上来的东西你得仔细看,不能因为看着像回事就直接用。
还有个细节挺有意思。他同事用Cursor重命名一个类,折腾了一个半小时。这活儿在传统IDE里,快捷键一按,几秒钟的事。所以他说,知道什么时候用AI、什么时候用老工具,这本身也是种判断力。
聊到最后他说了句挺实在的话:软件开发的核心技能不会过时。哪些技能?理解需求、跟人沟通、在约束里做取舍、把模糊的想法变成清晰的方案。
这些事,AI帮不了你。
我听完最大的感受是,这老哥的心态挺好的。见过那么多技术起起落落,既不恐慌也不傲慢,就是观察、试用、思考。他说自己学AI的方法特简单,就是用,遇到问题试试AI能不能帮忙,慢慢就有感觉了。
不急着下结论,不急着站队,先干起来再说。
这个姿态,可能比任何具体的技巧都值得学。