反对 AI 编程的理由:手艺、能力与技能崩溃的风险
将 AI 集成到软件开发中通常被视为一种不可避免的演进——一种类似于从汇编语言向高级语言跨越的生产力飞跃。然而,越来越多的开发者提出了反对意见,认为这种转变不仅仅是工具的改变,更是对工程手艺和从业者认知健康的根本威胁。
辩论的核心在于效率与精通之间的张力。虽然 AI 可以秒级生成样板代码,但其代价可能是侵蚀维护、保障和创新我们所构建的系统所需的技能。
手艺的乐趣 vs. 提示词的效率
对于许多人来说,编程不是一项需要自动化的琐事,而是一个可以享受的创造性过程。编写、编辑和完善代码的行为,正是工程学的智力满足感所在。当过程被简化为向 AI 提供提示词并给予反馈——“充实这个函数”或“优化这个循环”——时,开发者不再是创造者,而变成了机器输出的编辑者。
这种转变改变了工作的性质。正如一种观点所言,如果写小说仅仅变成了向 AI 提供提示词来生成章节,那么它在任何有意义的层面上都不再是“写作”了。对于手艺型程序员来说,价值在于做的过程,而不仅仅是最终的产物。
学习的错觉与技能衰退
AI 辅助编程最关键的风险之一是将识别与回忆混淆。当 AI 提供一个解决方案时,开发者可能会识别出代码看起来是正确的,但他们并没有进行从第一原理出发回忆解决方案所需的认知工作。
衰退的反馈循环
这为职业发展创造了一个危险的轨迹:
- 肤浅的知识: 开发者依赖 AI 处理平凡但关键的任务,从而错失了为高层架构提供支撑的“Web 约束”或基础逻辑。
- 外部化的达克效应(Dunning-Kruger Effect): 如果开发者的技能低于 AI,他们就无法识别“自信的幻觉”或判断输出的质量。
- 技能萎缩: 即使是专家也可能经历衰退。通过将解决问题的认知努力外包给 AI,进行深度分析所需的脑力肌肉会变弱。
- 依赖性: 随着技能衰退,手动编程的挫败感增加,使得 AI 变得更具诱惑力,从而进一步加速萎缩。
系统性风险:技能崩溃
除了个人层面,对于职业成长的“阶梯”也存在系统性担忧。如果初级工程师被 AI 取代,那么培养未来高级工程师的渠道就会消失。
这会导致潜在的“技能崩溃”。如果 AI 模型是在人类生成的代码上训练的,但人类因为使用 AI 而停止编写原创代码,那么模型最终将在其自身的输出上进行训练。这种反馈循环可能导致模型崩溃,即幻觉增加,而检测它们所需的人类专家知识已经消失。
软件工程是一项团队运动
存在一种普遍的误解,认为代码是软件项目的首要资产。事实上,代码是一种负债——每一行代码都可能是一个潜在的 Bug 或混乱的来源。真正的资产是编写代码的团队成员之间的共享理解。
AI 可以生成代码(负债),但它无法产生理解(资产)。当一个团队依赖于没有人真正从智力上“拥有”的 AI 生成代码时,他们正在以空前的速度积累技术债。正如最近的研究指出,AI 助手实际上可能正在通过在不增加理解度的前提下增加代码量,从而使代码库变得更糟。
经济与环境泡沫
批评者还指出 AI 行业不稳定的经济状况。当前的繁荣是由巨额债务和风险投资补贴驱动的,而非有机利润。运行这些 هذه models 的基础设施需求惊人:
- 能源需求: 运行单个“相当于人类大脑”的模型实例可能需要吉瓦级的电力和数千个 GPU。
- 环境影响: 在低收入地区大量建设数据中心,以及用于冷却的巨大水资源和能源消耗,往往是被忽视的成本。
- 经济悖论: 如果 AI 主要被用于通过裁员来节省成本,那么它同时也减少了能够购买 AI 协助构建的产品的消费者基础。
对立观点:工具 vs. 哲学
并非所有人都同意“反 AI”立场。许多开发者将 AI 视为一种人体工程学工具,将其比作从手动挡到自动挡,或从 CRT 显示器到 LCD 显示器的转变。
“我喜欢用 AI 来写代码,因为它节省了我大量无聊且重复的打字工作……这在开发者人体工程学方面感觉就像从 CRT 显示器转向 LCD 显示器一样好。”
其他人则认为 AI 可以用于高层分析,而非仅仅是生成。例如,使用 LLM 进行安全分析以发现人类错过的漏洞,可以创造价值,而不会必然引入新的负债。
结论
AI 究竟是生产力的倍增器,还是职业衰退的催化剂,仍有待观察。然而,反对 AI 编程的核心论点并不一定在于技术的处理能力,而在于人类过程的价值。对于那些将软件工程视为一种手艺的人来说,失去从第一原理出发思考问题的能力,其代价对于追求快速提示词带来的便利而言实在太高了。