“消灭程序员”技术浪潮一直没有停歇,大致可以分为从硬件接线到今天 LLM 的一系列阶段,每一轮的共同结果都是:程序员没有变少,反而是软件更多、程序员更多。
各次主要浪潮一览
20 世纪 60–70 年代:4GL / 5GL 高级语言浪潮
- 代表口号:用“第四代、第五代语言”直接描述业务逻辑,让非程序员也能开发。
- 最终结果:诞生了一些在细分场景有价值的工具(如数据库查询语言、报表工具),但远没有消灭程序员,反而因为降低了部分门槛,让更多组织能开发软件,对程序员的需求继续上升。
80–90 年代:可视化、拖拽式开发工具浪潮(VB、Delphi 等)
- 代表口号:通过拖拽控件、少量脚本就能快速构建应用,“人人都是开发者”。
- 最终结果:极大加速了桌面应用界面开发,也孕育了很多业务“小作坊式开发”,但复杂系统仍离不开专业程序员,整体上是“软件更多、程序员也更多”。
90–00 年代:Office/Access 类“公民开发者”浪潮
- 代表口号:用 Excel、Access、宏脚本等,让业务人员自己做系统,减少对 IT 和程序员的依赖。
- 最终结果:在部门级、短生命周期工具上很成功,但形成了大量“影子 IT”和难以维护的系统,长期仍需要专业开发者重构和接管核心系统。程序员并未减少。
90–00 年代:可执行 UML / MDA(模型驱动开发)浪潮
- 代表口号:用 UML 等高层次模型自动生成代码,开发者只需画图建模,不再“手写代码”。
- 最终结果:在特定嵌入式、通信等领域有一定应用,但在通用商业开发中未能普及,模型本身也需要具备严谨计算思维的人来设计,程序员角色并未被替代。
00–10 年代:面向业务人员的 BPM / 规则引擎平台浪潮
- 代表口号:通过流程图、业务规则配置驱动系统,业务人员自己定义流程逻辑。
- 最终结果:在流程清晰、变动模式固定的场景下提供了生产力提升,但平台搭建、集成和复杂规则设计仍需要专业开发者,整体对程序员的需求不减反增。
10–20 年代:低代码 / 无代码平台浪潮
- 代表口号:用组件拖拽、表单配置、可视化逻辑“拼装”业务应用,大幅减少代码量乃至“零代码”。
- 最终结果:在简单 CRUD、内部工具等领域确实提高了效率,但遇到复杂需求、性能、安全、可维护性时,平台本身和生成的系统仍需要程序员设计与治理,最终形成“程序员 + 低代码”的共存,而非替代。
2020 年代:LLM / 生成式 AI 编程浪潮
- 代表口号:用自然语言描述需求,由大模型自动写代码,甚至“端到端”生成整个系统。
- 最终结果:在原型、样例、样板代码等方面有帮助,但在大部分真实团队中并未显著提升整体效率,还带来了质量、可重复性和维护成本问题;生成代码仍需程序员理解、审查和重构,人类开发者在把模糊需求转成精确计算结构这一核心环节上依然不可替代。
这些“终结程序员”的周期从 1950 年代延续到今天,每一次的真实结果都是“程序更多、程序员更多”,是软件行业版的杰文斯悖论:生产率提升反而扩大了需求。根本原因在于:技术只能帮忙更快“写下”已经被厘清的意图,但无法替代把模糊、矛盾的人类需求转化为精确计算结构的那部分思考,而这正是程序员的核心价值。
当前的 LLM 浪潮规模更大、炒作更猛,但与过去不同的是,它在大多数团队中并没有可靠提升效率,反而可能拖慢开发、降低可靠性和可维护性。
为什么 AI 不能替代程序员
编程真正困难的部分不是写代码,而是把含糊、矛盾的人类需求和思维,转化为精确、无歧义、可形式化的计算结构和逻辑,这一点从打孔卡时代到今天都没有变。自然语言天生含糊不精确,像 Dijkstra 早就指出“我们不会用英语编程”,因此“用自然语言直接编程”的梦想会被语义歧义和语言熵打败。
当下“AI 替代程序员”的误读
当前所谓“AI 裁员潮”更多来自疫情期间的过度扩招、融资环境变化、资金被数据中心基建抽走等宏观因素,而不是 AI 真正替代了大量开发者。
LLM 生成代码不可复现、质量参差不齐,需要真正的程序员来理解、审查和修正,并且“提示词不是新的源码”,从 prompt 重新生成整个系统的想法是幻想。
对 LLM 长期前景的看法
超大规模 LLM 成本极高、长期商业可持续性存疑,更可能像“登月计划”那样,最终被视为一次昂贵但难以长期维系的尝试。
未来更现实的形态是更小、更专用的工具型模型(例如特定语言的编码助手),用来做原型、补全等边缘性辅助,而在关键场景仍然需要开发者“坐在驾驶位”。
对开发者和雇主的建议
由于能进行计算思维的人本就供不应求,如果企业现在因为迷信 AI 而停止招聘和培养开发者,将在“热潮退却”后面临人才抢夺战。
雇主现在就开始招聘并系统化培训开发者,用扎实的工程实践(无论是否用 AI)去缩短交付周期、提高可靠性并降低变更成本。
社区的反应
The future of software development is software developers | Hacker News
目前社区存在严重的“认知断层”。资深开发者倾向于关注AI在复杂逻辑和架构设计上的无能,而另一部分开发者则沉浸在AI带来的样板代码加速和低门槛交付的快感中。争论的核心在于“编程”的定义——是“逻辑构建”还是“代码产出”。此外,AI正在将软件工程从“手工业”向“自动化工业”推进,这不可避免地会产生大量的技术债务(代码垃圾),而这些债务未来仍需具备深厚底层的开发者来偿还。
所以, 短期内,初级外包和重复性强的CRUD业务将被AI大规模侵蚀,行业将经历痛苦的去泡沫化。中期看,会出现一种“人机协作”的新标准,程序员的竞争力将从“写代码的速度”转向“定义问题的精度”和“代码审查的深度”。长期看,如果推理能力没有质的突破,AI将撞上“平庸之墙”,成为像Excel一样的通用办公工具,而非取代人类的终极实体。
社区的共识:
- 样板代码终结者: 几乎所有人都同意AI在编写样板代码、简单的单元测试和正则表达式方面极具优势。
- 初级开发者的危机: 大家普遍认为初级程序员(Junior Devs)面临巨大的生存挑战,因为AI的性价比已远超新手。
- 工具而非实体: 绝大多数人认可AI目前是程序员手中的“动力工具”,而非可以独立完成端到端任务的独立员工。
而目前还有争议的地方:
- 10x/20x 效率论: 有人声称单人能抵20人,而反对者认为这仅限于极其简单的任务,在复杂系统中AI反而是负资产。
- AI是否具备推理能力: 一方认为AI只是高级概率匹配,另一方认为在特定规模下AI已经展现出了逻辑推理的雏形。
- “Vibe Coding”的质量: 狂热者认为只要程序能跑通就行,严谨派认为这会制造大量不可维护的、充满安全隐患的黑盒代码。