开源代码编辑器 Zed 的开发团队发布了一篇引人关注的博文,题为《为什么 LLM 无法真正构建软件》。这篇文章由 Conrad Irwin 撰写,迅速引发了技术圈的热烈讨论,尤其是在 Hacker News 上,众多开发者纷纷发表看法,聚焦于 AI 辅助编程的本质。
Irwin 在文章中指出,优秀的软件工程师在工作时会经历一个循环的过程,包括构建需求的心智模型、编写代码、理解代码的实际行为以及识别差异并进行更新。他强调,能够维护清晰心智模型的能力是区分优秀工程师的关键。然而,当前的 LLM(大语言模型)在这一点上存在致命缺陷。
他认为,LLM 虽然在编写和更新代码时表现尚可,但却无法维持一个清晰的心智模型。当测试失败时,LLM 常常陷入混乱,它们会假设自己所写的代码是正确的,却不知道如何修复,最终可能选择重写代码。很多开发者对此深有同感,认为 LLM 在处理复杂项目时往往会失去对整体架构的把握。
不过,文章也引发了不同的声音。一些开发者认为,今天的 LLM 和编码工具的能力已经相当强大,有时甚至超过初级工程师。也有用户分享了自己使用 AI 编写项目的经历,称其效果令人惊讶,甚至完全依赖 AI 完成了7000行代码的项目。
Irwin 进一步分析了 LLM 面临的三大问题:上下文遗漏、近期偏见和幻觉。这些问题使得 LLM 在维护心智模型的过程中受到制约。相比之下,人类能够有效地存储和处理完整的上下文,从而在解决问题时保持更高的灵活性和适应性。
Zed 团队的最终观点是,尽管 AI 可以辅助软件开发,但人类依然是这个过程的主导者。正如团队所言:“至少现在,你还是驾驶员,LLM 只是一个可以使用的工具。” 许多开发者对此表示认同,认为 AI 可以承担一些繁琐的编码工作,但设计和规划仍需依赖人类的智慧。
这场关于 AI 编程的讨论不仅揭示了当前技术的局限性,也促使人们反思:在 AI 辅助编程的时代,软件工程的本质是什么?人类开发者的价值又在何处?或许答案在于如何让人类与 AI 更好地协作,各自发挥所长。