AI为程序员正名
About 3959 wordsAbout 13 min
2025-12-21
从业软件开发25年,博客开一个硬刚栏目系列,把一些过往硬刚上司技术总监的经历写出来。如果你有硬刚的历史,欢迎联系我讨论
技术总监:我们使用了AI,通过在IDE中安装某某AI Coding插件,我们提升了开发效率和交付速度,为计划未来减少60%-80%的普通开发人员,或者使用AI完全代替程序员。
程序员硬刚: AI未来5年来不可能做到替代程序员,不能做到减少程序员后还能提升开发效率和交付速度,使用AI不能让交付的软件成品有本质提升
内容提要:本文从各个方面来解释,AI Coding能提高效率,但AI还未能代替程序员,或者让普通程序员人力减大半的可能。本文分别是哲学角度,AI 实战的不足,以及企业生态三个方面。最后会贴出一些名人对AI的看法。本人对AI编程只是稍微了解,如果有任何错误,欢迎讨论纠正

1 哲学层面
1.1 生产力和生产关系
学过高中《道德》课程的都知道一个知识点『生产力和生产关系:生产力决定生产关系,生产关系对生产力具有反作用』。其中生产力包括劳动资料,劳动对象和劳动者。 如果AI能替代程序员,那么AI是劳动者吗?那些考虑用AI替代人类,或者程序员的人,有没有考虑过对生产关系,对社会的影响。好莱坞已经拍出来这种AI末世电影,如《终结者》的天网,刘慈欣的小说《赡养人类》中的哥哥文明。 如果AI只是定位成劳动资料,类似一种汽车替换马车的高效工具呢,我觉得这种场景下的AI是没有问题,AI它具有明确的作用,明确的替换某个效率底下的劳动工具(非程序员)。然而,他在生成代码方面,我认为仍然被AI公司或者企业成本负责人夸大了,这会在后面说
我模仿了刘慈欣的三体,并结合分布式原理,写了个外传《三体外传:文明的开始》,可搜索阅读
1.2 如果AI已经能做到,为何还没有看到
如今自媒体和信息混乱时代,推论一件事情真假不再是这个事情本身被多少人,多少次反复宣讲,而是从那些未宣讲,被隐藏的事情中去发掘真相。如果AI Coding真的有那些AI厂商说的那么好,那有些事情应该被AI产商大书特书,但AI产商和其媒体代言人(如培训机构)还没有做到,包括
完全使用AI做的开源应该挂在Github或者Gitee上
使用AI做的大中型游戏
一本使用AI自主开发某软件的21天入门书。
中大型企业,互联网大厂声称使用AI开发出的企业应系统,或者80%都是AI开发。或者至少是软件外包公司宣城AI Coding替代(为啥是外包公司,后面有说到)
AI 能进化AI自身,比如从AI 1.0到AI 2.0都是通过AI完成。这有点像开发语言能编译构建本身。
还有些其他具体技术场景AI应该要实现了,这会在下一节实战中列出来。
希望有一天如上事情发生和普及。我才相信AI 真的能编程了。
2 实战层面
上一节从高层次哲学角度描述了AI的局限,这一节从具体技术上来看看AI是否能替换程序员或者裁剪80%的程序员。
2.1 采纳率,准确率,知识沉淀
现在使用AI Coding最经常碰到的话术是使用AI产生的代码采纳率高,生成准确率高,能完成知识沉淀。然而事实是什么呢?目前准确率超过40%都算非常不错的,你能想象一个普通新手程序员给你写的代码,你作为项目经理,只采纳期中40%的代码么?这样的程序员肯定会熬不过试用期。
另外,AI厂商和媒体渲染这种采纳率和准确率,其实暗示了需要程序员花时间去衡量代码的,我认为在准确率没有到达80%前,程序员需要花费时间判断其生成代码准确与否,这同样是低效的的,可能还不如程序员自己手写代码,毕竟好记性比如烂鼻头,自己写的代码自己也好改
还有所谓的知识沉淀,目前看来是代码的调用逻辑图或者文档,这在我看来是一种低级别的,在正儿八经软件系统工程里不会有此产出物。它太低级了,低级到没有被任何软件工程理论说重视。高级的有应该是功能说明书(包含映射到实现代码),或者更高级的流程,或者更更高级的业务架构,数据架构等。如果AI能代替程序员,我们就能问AI要到系统的 TOGAF 全文档。
2.2 AI在软件工程的位置
当考虑用AI替代程序员,或者裁剪80%的程序员时候,你需要知道程序员目前做的事情,是不是真能被替代。从软件公司角度看,大多数门外汉或者公司成本负责人 认为程序员只是编码,所以能被AI或者未来更先进得AI代替。问题是,程序员并不是做Coding这样单纯的工作内容
即使最好的外包公司的程序员,程序员仍然有相当复杂的工作要做,会对接了业务架构(或者功能说明书),数据架构和物理架构,也可能对接详细的用例。如果是维护了多年的企业项目,程序员还接收了系统的历史演进,系统的折中处理。很长一段时间,AI都不太可能从如此多的输入条件中产生正确的代码
比如,你可以让AI学懂围棋规则,能战胜任何人,但你不能要求AI,对方是个领导,要求AI得险胜。
2.3 程序员编码真的占用很长时间?
企业用AI本质上是为了提高软件交付速度,以及提高运维系效率。 然而在软件工程里,Coding只是占了程序员很少一部分工作。我在传统企业(电信,金融),以及互联网电商大厂,物联网家电大厂都担任个一线高级程序员。我的编码时间占用了最少的部分。比如,一个从企业高层规划的1年后交付的项目,可能到程序员这里就一个月开发(还可能并行开发和维护其他项目),其他都是业务分析,架构和测试等占用(包括我还要配合他们做事情,以测试为例子,我要对测试内容整理和宣讲,测试用例进行评审以及后期改BUG)。事实上,我可能单纯只有2周的开发时间。如果这个情况在读者你那里也是符合事实,那么用AI工具到底为企业节省了多少时间呢?
我之前一个企业新老板上任,特意统计过程序员提交代码的工时,后来看汇报后大怒:说程序员工作不饱满。那个时候,其实公司好多程序员已疲倦常态化,包括我也是。
2.4 分布式系统下的AI
我的从业经验,都是分布式系统编程,分布式编程除了端功能需求外,还有基础中间件的使用,整体的可观测性。以及高性能,高可用,故障恢复等是系统质量要求 。 驱动分布式系统的架构和实现,是架构质量驱动的! 实现这些质量实质上是需要权衡和平衡
比如一个有状态应用,那么状态存在本机,还是存在redis里,都需要权衡,取决于性能要求,可靠性要求,已经工时
再比如限流为例子,即可以发送端限流,也可以中间件限流,也可以接受端限流。架构师或者高级程序员需要做出平衡决定。
因此分布式编程,对于AI来说,面领更多的输入选择以及平衡,面领更多的上下游系统。在我看来,光靠AI Coding目前还做不到。
2.5 单元测试到可管理的单元测试
我们知道,单元测试如果有100%的覆盖率是最好的,在有100%覆盖率前提下,那就会产生海量的单元测试方法,如何管理这些海量方法,通常会使用Cucumber这种既是可视化的文档,又能直接执行单元测试的工具。
回到AI是否能替代程序员或者能裁剪80%的程序员,我的一个认可标准是AI能完成上面的工作,既生成100%的单元测试+100%的Cucumber可视化文档,且这些文档能自顶向下的组织良好。
我认为只有这样,才表示AI真正理解你的系统(尤其是那种运营了很多年的系统),且能组织好feature特性文件(以对系统知识进行沉淀)。
目前看来,AI Coding生成准确的单元测试都够呛。万里长征只走了第一步。
2.6 分工和外包
任何一个软件系统实现,都依赖其实现的组织机构,AI如何融入这个机构?你也许想着,如果组织能做好分工,把架构级,质量驱动级别的问题留个架构师或者高程,功能特性留个中程。然后用AI去代替初级程序员,是否可行?
我对此表示怀疑,我的从业经验表明,真正的分工是很少这么明确的。架构也许就是程序员本生。而程序员也许是最懂业务的那帮人(一些公司的业务架构或者技术架构可能都需要咨询这些程序员)。你开掉的一个初级程序员,也许就丢失了某些业务知识。 除非是传说中的日本外包公司,据说他们的外包人员对系统一无所知,只拿着用例文档去开发,用例文档详细规定了开发过程,内容近似一个伪编程语言写的
当一个企业想用AI 替代程序员的时候,需要先问一下,自己企业组合结构和运作方式是否跟日本外包一样?
3 企业生态
当公司的高层或者成本负责人畅想AI替代程序员的时候,他们肯定会想到,用少量的程序员辅助AI工具实现系统。想当然认为这些程序必须是资深的,懂业务的。问题是:这些少量程序员从哪里锻炼出来的,他们目前通过手工Coding能锻炼出来,未来能从AI 锻炼出来吗?这些程序员会停滞不前,会从事一辈子在跟AI絮叨工作?(我想出一个职位,AI絮叨员,就是跟AI聊天产出代码那种)
AI Coding打破了传统的程序员锻炼和晋升的道路,如果程序员(包括对接的技术和业务架构师)不站出来告诉老板,AI的实际体验和对整个项目的提升效果实情,那堪比996的新的压榨会出现,程序员无法承受的压榨。而这无法像996那样能确实提高·企业的研发速度和系统稳定性。企业和个人是双输。
4 名人对AI的评价
在写本文章的时候,找了一些名人对AI的评价。
4.1 AI攻下奥数,“AI教父”预言数学家将失业,数学界会“变天”吗?
一种声音认为,AI到目前为止只是一个辅助工具,距离独立解决前沿数学研究问题,还需要很久。就在去年,复旦大学上海数学中心青年研究员林伟南通过结合计算机算法,与合作者共同解决了持续大半个世纪之久的126维Kervaire不变量(几何拓扑学中的一个重要概念)问题,获得广泛关注。在林伟南看来,目前的AI更像是“聪明的字典”。自ChatGPT出现以来,AI在数学方面还没有出现新的“颠覆性时刻”,大部分只是技术性的提升。就以考试打比方来说,“好比最好的是80分,明天有AI达到了81分,另一个82分,再一个83分……虽然每走一步都会有报道,但实际上进步不是特别大。
林伟南指出,AI目前在处理高度抽象的数学概念时,仍面临AI幻觉和专用语料库不足的挑战。所以,数学家目前更多是利用AI来补全形式化证明中的琐碎步骤或LaTeX(一种排版系统)代码,核心的思路框架仍需人类主导。对于“AI取代数学家”的说法,他持保留态度:“至少十年内不太可能。
......
数学家陶哲轩在公开分享中提到,他更愿意把AI当作嵌入式助手,而不是“直接吐答案”的黑箱:先由人把问题写成一份可执行的“规格书”(Spec)——包括目标、约束条件、分步计划与每一步的验收标准;再让AI按步骤推进,并在关键节点进行对齐确认;最后再用外部计算工具(如Python)做一次独立核验,确保结果确实满足事先设定的约束。
4.2 Linux之父谈AI泡沫
更扎心的是他对vibe coding的评价,用AI辅助入门编程确实轻松,但后期维护简直是灾难。很多新手现在疯狂copy代码,根本不理解底层逻辑,项目一大就崩。
4.3 15年老码农被Vibe Coding逼到崩溃
他粗略估算,自己的时间分配大致是:
● 50% 用来写需求
● 10%~20% 用来让 AI 写代码
● 30%~40% 则花在修复 AI 搞出来的 Bug 和冗余代码
换句话说,通过 Vibe Coding 真正节省下来的时间并不多。
更让他头疼的是,AI 并不擅长“系统性思维”。例如,一个经验丰富的开发者会写一个通用模块,然后在多处复用;而 AI 可能在五个地方写出五个不同实现,既增加了维护成本,也让项目变得十分混乱。
