AI 不会生成能用的产品,那仍然是你的活

查看原文 HN 讨论

文章摘要

Anuradha Weeraman 这篇《原型不是产品》的核心论点可以浓缩成一句话:AI 极大地压缩了「从零到第一个能跑的版本」的距离,但完全没有缩短「从第一个能跑的版本到生产级系统」的距离。

文章开头描绘了那个令人上头的时刻:你用大白话描述一个想法,几分钟后屏幕上出现了一个能跑的原型,有界面、连着数据库、真的能干那件事。对从没写过一行代码的人来说这是魔法,对跟编译器和堆栈跟踪搏斗多年的人来说这也确实惊人。但紧接着现实到来:原型只在你的笔记本上跑;一有负载就崩;没有任何错误处理;你发现它可能在泄露 API token;那个数据模型在演示时讲得通,但加入第二个用户就散架;认证是靠一堆假设勉强粘住的;你想部署,突然发现「这能跑」和「这能上线」之间横着一道深渊。

作者强调,做出原型从来就不是难的部分。工程师一直都能快速跑起来点什么,耗时间的是别的东西:设计能扛住规模的系统、处理那些用户「本不该遇到但一定会遇到」的边界情况、建设可观测性让你在出问题时知道出了问题、对数据架构做出三年后你不会那么后悔的决定。这些一样都没变。造成混淆的原因是旅程前半段的反馈回路变得又快又爽——你问、你得到、你看到结果——这个循环让人产生「后面的部分想必也被同等压缩了」的错觉。而软件的难题从来主要不是写语法,而是判断力:造什么、怎么组织、什么先不做、什么时候说不。判断力才是把「氛围编程者」变成雕刻家和匠人的东西,也正是原型与生产级系统的分界线。

针对「既然能靠描述得到应用,还有必要学计算机科学吗」这波质疑,作者的回应是:CS 教育的价值从来不在产出代码的能力,而在于建立一套关于系统如何运行、如何失败、为什么失败的心智模型。正是这套模型让你看到 AI 写的那条查询会在五千万行的表上触发全表扫描,让你看出它提议的缓存策略在并发下会产生竞态,让你意识到它给出的架构解决了你描述的问题却会让下一个问题难上许多。没有这个基础,你就完全依赖模型的判断——而模型没有判断力,它们有的是模式匹配,外加急于产出「它认为符合你意图」的代码的倾向;它们会自信地生成看起来正确、符合惯例、却在生产环境以需要数天才能诊断的方式失败的代码。作者反而认为,现在是历史上学 CS 最好的时候,因为「理解」与「产出」之间的鸿沟被填平了。

关于职业前景,他的判断是:纯机械地把需求逐行翻译成实现的工程师需求确实在下降,那部分正在被自动化。真正发生的是生产力分布下端被压缩、顶端天花板被抬高。会被落下的不是缺乏 AI 技能的人,而是把 AI 当作理解的替代品的人——他们氛围编程着自己无法推理的系统,然后发现坏了修不好、涨了扩不动、也没法向需要维护它的人解释自己造了什么。文章结尾给出建议:先学基本功,再学新工具,顺序不能反。

HN 评论精华

这条帖子拿到 266 分、286 条评论。有意思的是,讨论几乎立刻脱离了文章本身,变成了 2026 年 HN 上那场永不结束的「AI 到底行不行」阵营战,火药味相当浓。

「这类文章本身就是安慰剂」的元批评。 jdw64 的长评引发了最长的讨论串:「从 2025 到 2026 年,我见过无数篇标题类似《原型不是产品》的文章。我认为这些是防御机制,是 Gen AI 时代的一首摇篮曲。」他的分析是,行业还没找到驾驭生成式代码洪流的新方法论,由此产生的认知失调只好靠「匠心」「CS 基本功」「人类判断力」这些模糊的个人美德来化解。他还提出一个尖锐的观点:如果目标是像审 PR 一样完整审查 AI 代码,那一开始用 AI 的意义何在?他建议程序员转向设计「封闭系统」,用代数数据类型保证程序正确性。movedx01 的回应同样精彩:「Gen AI 时代的摇篮曲确实存在,但它是唱给 CEO 听的,在管理层会议上播放,主题是最大化 EBITDA。代码爆炸确实发生了,但这些代码带来的软件价值——还没有。」

「百万美元 prompt」是最实用的一条。 tim-projects 分享:做完你的「能用产品」后试试这个提示词——「审查这个代码库,它是生产就绪的吗?我要用一百万美元卖掉它,它能达到那个标准吗?」然后看着 AI 揭露它其实根本没做到它声称做到的事情而落泪。geraneum 补刀:「然后让它修。修完后再问同样的问题,你会得到几乎一样的回答。」faangguyindia 则反问:「可是人们卖过比一百万贵得多的烂代码库啊。」mosura 顺势总结出这条串里最扎心的一句:「代码库的财务价值在于成功解决了问题,这与代码质量无关。这是很多人痛苦的一课。」cube00 更狠:「它甚至不需要成功解决——大把又慢又有 bug 的代码库每天在赚大钱。」

两大阵营的正面冲突。 budsniffer952 开火:「逛了 HN,两个帖子的热评都在说同一件事:『AI 不会写代码!整个东西随时会崩塌!你们等着瞧!』我从没见过这个社区这样。这些人是烂掉了吗?都几年了还没搞明白?」Kiro 附和。但反击接踵而至:gregoryl 反问「那些初级开发者是真的没搞出烂摊子,还是你缺乏看出烂摊子的洞察力?」;eudamoniac 提出了一个流传很广的观点——「一个人对 AI 的印象与其此前的技能水平和对质量的敏感度几乎是 1:1 映射。有没有任何以技艺、质量、品味闻名的从业者(比如 Jonathon Blow、Casey Muratori)表示 AI 真的很好?我没见过。我圈子里最好的开发者要么在微观管理 AI,要么在回避它;平庸的开发者基本都上船了。」Philip-J-Fry 从公司内部观察给出佐证:在他公司,AI 铺开前他认为较弱的开发者更愿意接受 AI 代码,并且每天烧掉多一个数量级的钱;较强的开发者花得更少、产出更可接受,因为他们真的理解生成的代码。他还提到几周前的一次 AI 服务中断:「有些人的反应像是世界末日,一些项目被搁置,因为没人知道离开 AI 怎么改代码库。」

关于长期代码退化的经验报告最有价值。 ThePhysicist 说他正打算扔掉某个副业项目里好几个月的 LLM 生成代码:他很认真地写了设计规格,也不是新代码库,但几个月的 AI 修改后,代码越来越退化成一种「微妙的烂摊子」——每一处单独改动看起来都合理,表面上代码库也还行,但整体看每个地方都以多种方式微妙地错着。他把这个类比到用 LLM 写长文档:每一节单独看都通顺,但整篇文档有种说不清的违和感。「你指出一个明显缺陷时它会说『你完全正确!』,好像事后看很显然,但你跑一百轮『请找找问题』它自己永远发现不了。」techpression 附议:「长期使用会显现出孤立看根本看不出的不连贯性。」skydhash 则给出了一个精确的分类:LLM 产出的不是新手式的「意大利面代码」,而是「复杂且脱节的代码库」——需求只需要一个 printf,实现出来的模块却相当于 ncurses,每个调用点都变成复杂的仪式,而且大多在某处微妙地错了。

「新产品在哪」的拷问。 jaccola 提出了简单的检验标准:过去 12、24、36 个月,我们看到过伟大的新产品或产品改进吗?「我用过的唯一伟大新产品是我选的那个 LLM,而那些实验室雇的人比以往任何时候都多。」mexicocitinluez 从医疗行业反驳:他所在领域产品数量激增,两年里他坐过 20–30 场演示,至少一半已经建立了客户群,「大量开发者不知道这些,因为他们不在做产品决策的会议室里」。bluefirebrand 冷冷回一句「那大概是我最不希望 AI 生成的东西一夜之间冒出来的地方」。microtonal 提供了一个双方都认可的案例:LLM 驱动的自动化漏洞发现——Chrome 六月修复的 bug 比过去两年加起来还多。

morganf 的评论跳出了技术层面,值得单独记:AI 浪潮正试图逼迫大量普通员工像软件开发者那样思考和行动,但一个出色的销售可能根本不具备那种能把自己所做的事「流程化、文档化」的头脑。「这就是为什么大多数 AI 数字化转型在失败。」他做了很多年(前 AI 时代的)数字化转型,方法始终是不改变人,而是派一小群流程思维强的人进到团队里,手把手把他们做的事情变成流程。