文章摘要:《我的AI怀疑论朋友们都疯了》
一篇关于AI辅助编程的衷心挑衅,由 Annie Ruygt 配图。
核心论点与作者立场
- 作者认为,尽管他认识的一些最聪明的人将AI视为一时风尚(如NFT),但这种看法是“不严肃的”。
- 即使LLM(大语言模型)的技术发展今天停止,它们仍是作者职业生涯中第二重要的技术进步。
- 本文讨论范围:仅限于LLM对软件开发的影响,不涉及艺术、音乐、写作领域。
- 作者背景:自1990年代中期开始从事软件开发,经验丰富,涵盖C、C++、Ruby、Python、Go、Rust等多种语言和领域。
对LLM辅助编程的现状认知
- 关键认知差异:如果半年前或更早尝试LLM编码失败,那么使用者可能未采用当前主流LLM辅助编码者使用的方法——即“代理”(Agents)。
- 现代LLM编码方式(Agents):
- 能自行探索代码库、直接编写文件、运行工具、编译代码、运行测试并迭代结果。
- 能从代码树或在线资源中提取代码到上下文窗口。
- 能运行标准Unix工具、与Git交互、运行现有工具(如linters, formatters)。
- 能通过MCP进行任意工具调用。
- 认为在ChatGPT页面请求代码再粘贴到编辑器中的方式,并非AI拥护者所指的LLM辅助编程。
LLM在编码中的积极作用
- LLM能编写大量繁琐代码,减少Google搜索需求,且不知疲倦。
- 能克服项目启动时的惰性,处理初始设置、依赖等问题,让开发者直接进入“修改代码即见效”的愉悦阶段。
- 能承担重构单元测试等开发者可能拖延的任务,迫使开发者从事“真正的工作”。
- 作者使用 Gemini 2.5,其上下文窗口能容纳50-70kloc代码。
反驳常见疑虑:代码质量与理解
- 针对“不理解LLM生成的代码”:开发者始终对合并到主分支的代码负责,阅读和修改LLM生成的代码是基本要求。
- LLM生成的代码是“可知的”,并非无法理解的“概率性”产物。
- 如果无法理解LLM生成的重复性代码,是“技能问题”。
反驳常见疑虑:幻觉 (Hallucination)
- “幻觉”对于现代编程而言已“或多或少是个已解决的问题”。
- Agents通过lint、编译和运行测试来检测和纠正LLM的“幻觉”错误。
- 如果幻觉对你很重要,说明你的编程语言工具链有问题。
反驳常见疑虑:代码质量低下(像初级开发者)
- 对比成本:Cursor.ai每月20美元,远低于实习生。
- 高级开发者的职责之一是让能力较弱的编码者(无论是人还是AI)变得高效。用好Agents本身是一项技能和工程。
- LLM主要负责打字、Google搜索、编写测试用例、编辑-编译-测试-调试循环等。人类开发者仍负责策划、判断、指导和方向。
- 应反思人类初稿的质量也并非完美。
反驳常见疑虑:不擅长特定语言(如Rust)
- 对LLM的怀疑可能源于其在某些语言(如Rust)上表现不佳,但这更像是语言生态和工具链的问题。
- Go语言因其类型安全、广泛的标准库和推崇惯用法的文化,非常适合LLM生成。
- 开发者会根据LLM的友好程度选择语言,Rust社区应努力改进工具链。
反驳常见疑虑:损害“技艺” (Craft)
- 专业软件开发是解决实际问题,而非追求手工艺。
- 过度追求代码优雅可能是在“磨洋工”(yak-shaving),逃避真正的工作。
- LLM能处理繁琐事务,让开发者专注于真正体现判断和价值的重要工作。
反驳常见疑虑:导致平庸 (Mediocrity)
- 作者欣赏“平庸”代码,认为并非所有代码都需要极致完美。
- LLM提升了代码质量的“下限”,其生成的代码在某些方面(如全面性)可能优于人类。
- LLM可能拥有比多数开发者更丰富的算法知识。
- 即使LLM只能产出平庸代码,也极具价值,因为它减少了人类编写平庸代码的工作量。
其他反驳与观点
- 对“永远不会达到AGI”:作者表示“不在乎”。关注点在于工具是否有效。
- 对“抢走工作”:承认LLM可能取代许多软件开发者,这是技术发展的常态,软件行业不应有特权。
- 对“抄袭/版权”:作者尖锐指出,软件开发者在历史上对知识产权表现出极大蔑视,现在以此为由反对LLM是“特殊辩护”。LLM对代码的“消化”程度远超人类。
LLM辅助编程的最新进展与未来展望
- LLM辅助编程发展迅速:当前已进入“异步代理”(asynchronous agents)阶段,开发者可同时分配多个任务给LLM处理。
- 作者朋友体验:“像在喝火箭燃料”,未拥抱AI的同事则“像在原地踏步”。
- 作者亲身经历:使用GPT-4o在几秒内诊断出困扰数月的LVM元数据损坏问题。
- 作者自认非激进派或未来主义者,但坚信AI领域正在发生真实而重大的变革。
- 对AI的过度讨论令人厌烦,但其重要性堪比2008年的智能手机。
- 对“随机鹦鹉”等轻蔑说法将难以在现实面前立足,聪明的怀疑论者最终会接纳并极大提升编码代理的效能。
摘要说明:事实指文章中陈述的客观信息、作者经历或具体技术细节。 观点指作者的判断、推测、评价或主观感受。 关键结论是作者特别强调或总结性的观点。