取代开发者的循环之梦
Hacker News 摘要原标题:The recurring dream of replacing developers
每十年,技术领域都会出现新的承诺:这一次,我们将使软件开发变得足够简单,不再需要那么多开发人员。从 COBOL 到 AI,这种模式不断重复。企业领导者对交付缓慢和高成本感到沮丧,而开发人员则觉得被误解和低估。了解这个持续了五十年的循环,能让我们看清软件工作的本质。
梦想的诞生:阿波罗计划时期
1969年,当尼尔·阿姆斯特朗踏上月球表面时,世界见证了人类智慧的结晶。在这一成就背后,玛格丽特·汉密尔顿和她的团队手工编写了阿波罗计划的制导软件。阿波罗计划证明了软件开发对于实现不可能的任务至关重要。但它也揭示了一个让企业领导者沮丧了几十年的事实:编写软件需要专业知识、高度专注和大量的时间投入。于是,减少对这些昂贵专家的依赖,让开发变得更简单的梦想几乎立即产生。
1970年代:COBOL 让业务人员自写程序
COBOL 的全称是面向商业的通用语言。当时的愿景非常明确:让编程语言读起来像英语句子,这样业务分析师就能自己写程序,不再需要专门的程序员。这种愿景极具吸引力,因为程序员在那时就是稀缺且昂贵的资源。
然而,COBOL 最终变成了另一种需要专门培训的编程语言。试图编写 COBOL 的业务分析师很快发现,可读的语法并不能消除逻辑、数据结构或系统设计的复杂性。一类新的 COBOL 程序员应运而生,消除专业开发者的梦想未能实现。
1980年代:CASE 工具将生成一切
计算机辅助软件工程(CASE)工具在80年代带着巨大的承诺问世。其理念是:只要画出流程图和实体关系图,工具就会生成可运行的代码。当时的市场宣传称,视觉设计比输入晦涩的命令更直观。
虽然企业投入了巨资,但大多数 CASE 工具项目都失败了。生成的代码往往需要大量人工干预,维护变得极其困难。最关键的是,绘制准确的图表所需的逻辑思维,与编程所需的复杂逻辑完全一致。工具改变了界面,但没有改变核心挑战。
1990年代:Visual Basic 与 Delphi 的拖放时代
90年代带来了不同的方法。微软的 Visual Basic 和 Borland 的 Delphi 极大地简化了用户界面的构建。开发者只需将组件拖到窗体上,设置属性并编写事件处理程序。这成功降低了入门门槛。
当时人们认为“权力用户”和“公民开发者”将构建部门级应用,IT 部门只需专注于基础设施。但现实更为复杂。虽然简单应用变得触手可及,但随着需求增加,如系统集成、安全性、性能压力和长期维护,经验丰富的开发者的价值再次凸显。
2000年代至今:Web 框架、低代码与无代码
随后的每个十年都有新的变体。Ruby on Rails 承诺约定优于配置。低代码平台提供可视化开发。无代码平台声称在普通商业应用中可以完全消除编程。
这些浪潮确实提供了真实价值,在特定环境下加快了开发速度。然而,专业软件开发者的需求不但没有萎缩,反而持续增长。
为什么这个梦想会重演?
软件开发看起来应该很简单,因为我们可以用通用的语言描述需求,比如:当客户下单时,检查库存,计算运费,处理付款,并发送确认邮件。这种描述听起来很直接。
但复杂性隐藏在细节中。如果库存被另一个订单临时预留了怎么办?如何处理部分付款?如果邮件服务暂时不可用,应该重试多少次?如果客户在结账时会话超时怎么办?
这些决策和边缘情况累积成了真正的复杂性,没有任何工具或语言能消除这种复杂性。必须有人去思考这些场景,而这种思考过程就是软件开发。
AI:历史长河中的最新篇章
今天的 AI 编程助手是协助软件创作的最强尝试。它们能根据自然语言描述生成大量代码,这确实是巨大的进步。
但熟悉的模式再次出现:最初关于 AI 取代开发者的兴奋正转向更理性的认识。AI 改变了开发者的工作方式,但并没有消除对人类判断的需求。复杂性依然存在,必须有人理解业务问题,评估生成的代码是否正确,并考虑安全性和系统集成。AI 放大了一名开发者的能力,但它没有取代那些既懂业务领域又懂技术景观的人。
为什么我们依然感到挣扎?
这是一个悖论:我们已经取得了非凡的进步,智能手机的算力是阿波罗计算机的数百万倍。但社会对软件的需求远远超出了我们的创造能力。每家企业需要的软件都比他们能构建的多。
这种“强大的工具”与“不足的产能”之间的紧张关系让梦想保持鲜活。领导者总是希望有一种方法能走得更快,让更多人参与贡献。
对领导者的启示
了解这个模式后,评价新工具的标准应该发生变化。当有人承诺某平台能让业务用户脱离开发者构建应用时,你应该保持现实的期待。正确的提问不是“这是否会消除对开发者的需求”,而是:
• 这能否帮助我们的开发者更有效地处理复杂问题?
• 这能否让我们更快地构建某些类型的解决方案?
• 这是否减少了重复性任务的时间,让开发者专注于独特的挑战?
软件开发的本质
这五十年的历程告诉我们:如果软件开发的问题主要是机械性的(如打字太多、语法太难),我们早就解决它了。
• COBOL 解决了语法的可读性。
• CASE 工具消除了打字。
• 视觉工具消除了语法。
• AI 现在可以根据描述生成函数。
尽管消除了这些摩擦点,核心挑战依然存在,因为软件开发本质上是智力活动而非机械活动。它是将思考具象化的过程。我们创建的产物——无论是 Python 脚本还是 AI 提示词——都是对复杂性进行无形推理的有形结果。
你无法简化这种推理过程,就像你无法简化设计一栋建筑或诊断一种疾病所需的推理一样。更好的工具和经验会有所帮助,但依然需要有人去思考透彻。
带有清醒认知的进步
下一波开发工具还会到来,有些会提供真实价值,有些则是旧调重弹。使用 AI 助手,评估低代码平台,尝试新框架,但首要任务是投资于人才处理复杂问题的能力。
阿波罗登月计划之所以成功,是因为才华横溢的人对极其复杂的挑战进行了仔细思考。他们当时手工编写软件是因为那是仅有的工具。如果他们有更好的工具,他们会乐于使用,但工具不会消除他们思考复杂性的必要性。我们现在拥有好得多的工具,但思考依然是核心。
用清醒的眼光去看待工具:它们能提供杠杆作用,但永远无法取代人类的判断。
原文:https://www.caimito.net/en/blog/2025/12/07/the-recurring-dream-of-replacing-developers.html