“编程已死”还是“依然热爱”?HN 上演 AI 时代的编程意义大辩论
10 月 8 日的《编程讣告》、10 月 17 日的《热爱编程依然没问题》、10 月 19 日 610 评论的 Ask HN 实务帖——三篇构成“哀悼者、热爱者、打工人”的完整光谱。本文引用三方原话,拆解 AI 时代 vibe coder 的身份认同之问:设计权在谁手里,身份就在谁手里。

2026 年 10 月的第二、三周,Hacker News 上演了一场罕见的大辩论——不是关于某个模型、某次发布,而是关于一个更根本的问题:AI 会写代码之后,人为什么还要编程?
这场辩论由三篇帖子构成一条完整的光谱:10 月 8 日,独立博客 dumbmatter 发表《My obituary for programming》(《编程讣告》),为"编程"这个职业写下悼词;10 月 17 日,chriskiehl 发表《It's still OK to enjoy programming》(《热爱编程依然没问题》),为"热爱"辩护;10 月 19 日,一条 Ask HN 帖《How to deal with shipping AI-written code you don't understand?》("看不懂 AI 写的代码,怎么上线?")引来 610 条评论,把辩论拉回地面——意义先放一边,代码明天就要上线,怎么办?
这三篇恰好对应 vibe coder 群体的三重身份焦虑:哀悼者、热爱者、打工人。本文把三方的原话摆出来,不转述、不稀释——因为这场辩论的价值不在结论,在那些说得极其漂亮的原话本身。
讣告派:dumbmatter,为"编程"写悼词
dumbmatter 开篇就坦白:他用 AI coding agent 用得很晚。"It seems like a lot of programmers never actually liked programming and are thrilled to have a machine do it for them."("很多程序员似乎从来就没真正喜欢过编程,现在有机器替他们写,开心得不行。")但他不一样——"But I like programming! That's the fun part!"("但我喜欢编程!好玩的就是这个!")
他的生意(zengm.com)正处在有史以来最好的一年,工作也不卷,所以他理直气壮地想:既然喜欢,为什么不继续手写?他也不是没看见周围的变化:"A lot of slop and hype, but a lot of real stuff too."("很多垃圾和炒作,但也有很多真东西。")——他尊敬多年的工程师说自己不再写代码了,不会编程的人做出了以前想都不敢想的东西。
注意这个开篇的"人设"有多重要:dumbmatter 不是被 AI 抢了饭碗的loser在发牢骚,也不是没用过 AI 的云评论家。他是一个深爱编程、晚用 AI、用过之后被折服、然后感到恐惧的人。这种"我爱它,但我正在背叛它"的撕裂感,是整篇悼词的情感地基——哀悼者必须曾经深爱过,悼词才成立。如果他一开始就讨厌编程,这篇文章就只是一篇檄文,而不是悼词。
然后他终于试了 agent。接下来的三连问,是全篇最妙的段落:
"I can just give it a bug report or an error log entry, and almost instantly it pinpoints the issue and fixes it?"("我丢给它一个 bug 报告或一条报错日志,它几乎瞬间就定位并修好了?")
"I can tell it to try making my code faster, and suddenly it runs 2x or 3x as fast?"("我让它试着把代码跑快点,突然就快了 2 倍、3 倍?")
"I can kindly ask it to do that big refactoring I've been putting off for years, and it just does it?"("我客客气气请它做那个拖了好几年的大重构,它就这么做完了?")
"But if the AI can refactor my code so easily, did it even matter?"("但如果 AI 能如此轻易地重构我的代码,那我的代码曾经重要过吗?")
注意这个转折的残忍之处:他不是被 AI 的"强大"吓到,而是被 AI 的"轻易"刺痛——如果一件事做起来毫不费力,那它曾经的价值到底建立在什么上?是建立在"难"上吗?那"难"消失之后,剩下的意义是什么?
接着他开始写悼词的正文,回忆编程曾经的样子:
"Programming turned into one of the greatest jobs you could imagine. You got paid to work on tricky little logic puzzles. The trickier the puzzle, the more you got paid."("编程变成了你能想象的最好的工作之一。你拿钱去解一道道精巧的逻辑谜题,谜题越刁钻,工资越高。")
"We have these incredible machines that can do absurdly complex calculations for us, but only if we are clever enough to give them the exact right instructions... It was a real life superpower."("我们拥有这些不可思议的机器,能替我们做荒谬复杂的计算——只要我们足够聪明,给出完全正确的指令……那是一种现实中的超能力。")
"What a time to be a nerd. Money, status, power."("做 nerd 的黄金时代啊。钱、地位、权力。")——他写道。然后笔锋一转,悼词进入高潮:
"What do we have now? It's no longer solving little logic puzzles. More like being plugged into the Matrix, gaining new abilities without truly understanding, accomplishing great things with little effort."("我们现在拥有什么?不再是解小逻辑谜题了。更像是接入了母体——不真正理解就获得新能力,不费什么力气就成就大事。")
"But if the great thing can be accomplished with little effort, is it really so great? Does any of it matter? Just as the Matrix is not reality, vibecoding is not programming."("但如果伟大的事可以不费力气地达成,它还伟大吗?这一切还有意义吗?正如母体不是现实,vibe coding 不是编程。")
结尾他承认了自己的矛盾:"And I like programming, right? Then why more and more do I reach for the agent before the text editor?"("我喜欢编程,对吧?那为什么我越来越多地先伸手去够 agent,而不是文本编辑器?")——悼词的作者自己,也在用让他写悼词的东西。这种自我指涉的诚实,是这篇讣告最有力量的地方。
还有一句容易被忽略的狠话,藏在中间:"It's addictive and meaningless."("它让人上瘾,又毫无意义。")——上瘾和无意义并存,这不是矛盾修辞,这是精准的临床描述。上瘾的是"多巴胺"(瞬间搞定、即时反馈),无意义的是"价值感"(这事太容易了,容易到不需要我)。dumbmatter 在这里无意中给出了 vibe coding 时代最准确的心理诊断:我们这个时代的异化,不是"劳动太苦",而是"成就太廉价"。以前的异化是流水线工人不知道自己在造什么;现在的异化是,你什么都知道、什么都做成了,但成就感的汇率崩盘了。
最后两句,值得全文背诵:
"It's addictive and meaningless. It's a good friend, a trusted colleague, a slave."("它让人上瘾,又毫无意义。它是好朋友、是值得信赖的同事、是个奴隶。")
"It will obsolete us. Us programmers now, us humans next?"("它会让我们过时。先是程序员,下一个是人类?")
"We are truly in The Age of Wonders and Terrors."("我们真的处在奇观与恐怖并存的时代。")
我的判断:dumbmatter 哀悼的不是"编程"本身——他结尾还在问自己为什么放不下 agent。他哀悼的是"编程作为特权职业"的那个时代:解谜题、拿高薪、拥有"普通人做不到"的超能力、有权决定什么是可能的。AI 没有杀死编程的乐趣,它杀死的是编程的稀缺性——而稀缺性,恰恰是那个黄金时代钱、地位、权力的来源。这篇悼词真正悼念的,是程序员的"祭司阶层"地位。
热爱派:chriskiehl,"工作不是生活"
10 月 17 日,chriskiehl 的回应只有一句话标题:《It's still OK to enjoy programming》("热爱编程依然没问题")。开篇即判词:
"Yes, at work, where you are paid to produce value for a business, the economics of purely hand-written code have changed. But that's work. Work is not life."("是的,在工作中——你拿钱为公司创造价值的地方——纯手写代码的经济学已经变了。但那是工作。工作不是生活。")
"The loudest voices on the internet are the saddest and most infectious."("互联网上声音最大的,往往是最悲伤的,也最有传染性。")
这是全场辩论里最锋利的一刀:把"工作"和"生活"切开。dumbmatter 的悼词之所以悲伤,是因为他把"编程"和"职业"焊死了;chriskiehl 说,焊死的那部分(工作的经济学)确实变了,但"生活"的那部分没人能拿走。
他还顺手诊断了悲伤的传播机制:"The loudest voices on the internet are the saddest and most infectious."("互联网上声音最大的,往往是最悲伤的,也最有传染性。")以及"the more of this doom stream you consume, the more it starts to infect you... But this disappears as soon as you disconnect."("这种末日信息流看得越多,被感染得越深……但只要一断网,它就消失了。")——"编程已死"首先是一种信息流情绪,而不是事实判断。你在时间线上刷到的"人人都在哀悼",和你在编辑器前真实感受到的快乐,可以是两件完全不相干的事。chriskiehl 的建议简单粗暴:断网,写代码,快乐回来。
然后他举了自己的例子,写得极其可爱:他周末还在手写代码学游戏编程,"My current level of sophistication is a buggy Breakout clone with terrible collision detection."("我目前的最高成就是一个碰撞检测写得稀烂的打砖块克隆。")"I write it by hand because I enjoy it. I struggle with problems because solving them makes me happy. It doesn't bother me that Claude could one-shot it, because that's not the point."("我手写是因为我享受。我和问题死磕是因为解出来让我快乐。Claude 能一遍过这件事一点也不困扰我,因为重点根本不在那。")
更绝的是第二个例子:他花了一个周末研究"在 Java 里用 Agda 那种依赖类型语言的思想把类型安全推到极限"——"There is no point to this."("这事毫无用处。")再之前一个周末:recursion schemes(递归模式),"Technically, this was not fun. I spent hours of banging my head against a wall."("严格来说,这并不好玩。我花了好几个小时拿头撞墙。")但他依然觉得值:"I do know that many of the most beautiful ideas in programming only become clear to me after years of baking in my mind."("我知道,编程里很多最美的想法,都是在脑子里烘焙了好几年才豁然开朗的。")
文末的判词掷地有声:
"It's OK to enjoy things. Doing so requires no economic justification."("喜欢一件事,没问题。这种喜欢不需要任何经济学上的辩护。")
这句话值得单独拎出来嚼三遍。"不需要经济学辩护"——潜台词是:我们这个时代最大的精神污染,就是凡事都要先问"有什么用"。学 Agda 没用、撞墙三小时研究递归模式没用、手写打砖块没用——但 chriskiehl 用亲身经历证明,"没用"恰恰是热爱的试金石:有用的事,AI 迟早比你做得更好;没用的事,才是你之所以为你的部分。dumbmatter 的悲伤,某种意义上正来自于他太习惯用"有用"来衡量编程了——当 AI 让一切"有用"都变得廉价,他就觉得意义崩了。而 chriskiehl 说:那就别用"有用"来衡量。这不是阿 Q,这是釜底抽薪。
但最妙的是脚注 [2],一个看似随意的自白,实则拆掉了整场辩论的二元对立:
"I also have a blast vibe-coding. I've got a suite of apps for which I've never looked at a line of code. I suspect doing so would horrify me. 'Programming' this way is also fun. Often extremely so. But in its own unique way."("我 vibe-coding 也玩得超开心。我有一整套 app,一行代码都没看过——我怀疑真看了会被吓到。这种'编程'也很有趣,经常是非常有趣。只是以它自己独特的方式。")
我的判断:这个脚注是全文真正的文眼。chriskiehl 根本不是"反 AI"的原教旨手写党——他一边手写打砖块,一边 vibe-coding 一整套 app。他的立场不是"只能手写",而是"两种快乐都是快乐,不必互相开除"。dumbmatter 说"vibecoding is not programming"(vibe coding 不是编程);chriskiehl 的脚注回答:是的,它不是"那种"编程,但它是以它自己的方式有趣——"编程"这个词的所指,已经裂开了。悼词派在为旧词意守灵,热爱派在给新词意上户口。这是我认为这场辩论最深刻的一层。
实务派:Ask HN,"代码明天就要上线"
10 月 19 日的 Ask HN 帖把辩论从云端拽回地面。帖子引用了一位 Meta 工程师的 LinkedIn 帖子:
"I'm an engineer at Meta and I never felt this uncomfortable doing my job. I'm writing code these days and it all feels like a black box... You understand the high level, but not every detail. And maybe this is becoming the new standard. It goes against every instinct of being a software engineer."("我是 Meta 的工程师,工作从来没让我这么不自在过。我现在写的代码感觉全是黑盒……你懂大方向,但不懂每个细节。也许这正在变成新标准。这违背了做软件工程师的每一种本能。")
"Now I'm trying to figure out how much I need to understand before I'm comfortable moving forward. Are other engineers feeling this too?"("我现在在琢磨:到底要理解到什么程度,我才能安心继续往前走?其他工程师也有这种感觉吗?")
610 条评论(发帖当时数据)里,最高赞的回答来自 bitwizeshift,给出了实务派的标准答案:
"I don't let the LLM design the code at all, I let it implement a design I have created... I take the time to create the full hierarchy of abstractions and actors that I want my code to do. I decide, at the UML level, how abstractions will sit and interact — and then I make the LLM implement those gaps."("我根本不让 LLM 设计代码,我让它实现我设计好的东西……我花时间把我想要的抽象和角色的完整层级定下来,在 UML 层面决定抽象之间如何安放、如何交互——然后让 LLM 去填那些空。")
"I've found that LLMs are HORRIBLE at writing decent abstractions... It will always get the job done, but it will often be unmaintainable."("我发现 LLM 写像样的抽象写得极烂……它总能把活干完,但代码常常没法维护。")
设计权在人,实现权给 AI——这句话值得所有 vibe coder 抄下来贴在显示器上。它和 chriskiehl 的脚注是呼应的:vibe-coding 的快乐可以保留,但"设计"这个最能体现工程师判断力的环节,不能外包。
评论区里一场小争吵也值得细看。fasterik 说:"I wonder if the people having issues are primarily junior developers who have never seen how real software is built."("我怀疑出问题的多半是没见过真正的软件是怎么造出来的初级开发者。")swatcoder 回了一刀:"Most people in the industry right now, even at FAANG and even among people carrying 'senior' titles... have spent the last decade pulling tickets off JIRA and pasting least-change-possible patches."("现在业内大多数人,哪怕在 FAANG、哪怕顶着 senior 头衔……过去十年都在 Jira 上领 ticket、往现有代码上贴最小改动补丁。")——看不懂 AI 代码的问题, senior 也未必幸免。过去十年"只改不动设计"的 tickets 文化,已经提前掏空了一大批人的设计能力;AI 只是把这层遮羞布扯了下来。这段对话解释了为什么 bitwizeshift 的"设计先行"看起来像常识、做起来像奢侈品。
评论区里还有几句值得摘抄的实务智慧。ChrisMarshallNY:"Testing. Lots and lots of testing... I don't find coding errors, but I do find implementation errors... Nobody's perfect. Trust; but verify."("测试,大量大量的测试……我发现的不是编码错误,是实现错误……没人是完美的。信任,但要验证。")——注意他的区分:编码错误(写错)和实现错误(做错)是两回事,AI 时代后者才是主战场。
也有人泼冷水。michaelt 指出:"lots and lots of automated testing invites lots and lots of lines of code — making code reviews even more challenging."("大量自动化测试带来大量代码行——让 code review 更难了。")onion2k 则分享了自己的解法:把项目护栏(guardrails)做成可复用的 skill 仓库,目标是"有足够的信心说:这次改动没搞坏任何东西"。SimianSci 的反问也很狠:"we've made a whole bunch of new work around verification and testing of said stuff? What have we gained aside from shifting where time and effort is spent?"("我们不过是把省下来的时间又花在了验证和测试上?除了把时间和精力挪了个地方,我们到底得到了什么?")onion2k 的回答堪称实务派的座右铭:"The verification is what we always wanted but never had time for."("验证正是我们一直想要但从来没时间做的事。")
还有一条让人笑不出来的评论。birdsongs:"I just approve PRs, because I have to. I don't know what else to do."("我只能点 approve,因为我必须点。我不知道还能怎么办。")——当 review 变成橡皮图章,"理解"就已经死了。这条评论是整场辩论里最黑暗的一幕,也是 vibe coder 最该警惕的未来。
值得注意的是,实务派内部也没有"标准答案",只有"活法"。有人靠设计前置(bitwizeshift),有人靠测试轰炸(ChrisMarshallNY),有人靠护栏工程(onion2k),有人靠"每周只看自己代码"的鸵鸟策略(birdsongs,苦笑)。Ask HN 帖子的标题问的是"How to deal with"(怎么应对),不是"How to solve"(怎么解决)——应对,是承认问题会长期存在;解决,是幻想问题会消失。610 条评论没有吵出胜负,但吵出了共识:黑盒时代,工程师的尊严不在"全看懂",而在"有办法兜底"。测试、护栏、设计、小步快跑——这些不是理解的替代品,是理解的脚手架。
为什么是 HN,为什么是现在
这场辩论发生在 HN 不是偶然。HN 是程序员文化里"身份浓度"最高的地方——在这里,"程序员"不只是一份工作,更是一种自我认同。所以当 AI 开始批量生产代码时,最先感到存在主义眩晕的,恰恰是 HN 这群人。dumbmatter 的悼词、chriskiehl 的辩护、Ask HN 的求生帖,三个文本在 12 天里接连出现,说明这不是某个人的情绪,而是一整群人的集体症状。
传播链条也值得注意:Simon Willison(知名技术观察者、Django 联创)在 10 月 19 日转发了讣告派(据侦察员确认)。当 Willison 这种级别的观察者开始转发"编程讣告",说明"编程的意义"已经从论坛牢骚升级为行业议题。而 chriskiehl 的回应能冲上 HN 近 7 天榜第 6(644–686 points,260–533 comments,侦察员快照),说明"热爱派"不是小众安慰剂——想为编程辩护的人,和想为编程送终的人,一样多。
时间点同样微妙:2026 年的 10 月,距离 ChatGPT 引爆 vibe coding 已经快四年,"AI 写代码"从新鲜事变成了日常。辩论发生在"日常化"之后,而不是"震惊"之时——人们不是在恐慌,是在消化。消化期的辩论,比震惊期的辩论诚实得多:没有末日预言的夸张,也没有技术乐观主义的廉价,剩下的都是"明天还要上班"的人的真实困惑。
我的判断:三派其实不在吵同一件事
把三篇并排放,会发现一个有趣的结构:他们其实不在吵同一件事。dumbmatter 悼念的是"职业的编程"(programming as a profession)——那个靠稀缺性换钱、换地位、换权力的时代。chriskiehl 捍卫的是"生活的编程"(programming as a life)——周末手写打砖块、不需要向任何人辩护的快乐。Ask HN 讨论的是"工程的编程"(programming as engineering)——代码明天上线,黑盒也得想办法 hold 住。
三层一分开,结论就清楚了:编程没有死,死的是"只有人能编程"的垄断,以及"编程天然等于高薪职业"的等式。dumbmatter 的悲伤是真实的,但那是祭司阶层失去垄断时的悲伤;chriskiehl 的快乐也是真实的,因为快乐从来不需要垄断来背书。
这里可以再往深想一层:为什么这场辩论恰好发生在 2026 年 10 月?因为这一年,"vibe coder"这个词完成了从调侃到身份的转变。2025 年人们说"vibe coding"时带着戏谑——"你也配叫编程?";2026 年,vibe coder 成了一个自我认同的标签,一群人开始认真问:"我们是谁?"dumbmatter 的悼词,某种意义上是旧身份持有者的不适——"vibe coding 不是编程",潜台词是"那你们就不算程序员"。chriskiehl 的脚注则是新身份的和解方案——两种快乐都是快乐,不必互相开除"程序员籍"。而 Ask HN 的 610 条评论,是新身份在现实世界里的第一份"从业者生存手册"。一场辩论,三个文本,正好走完"身份危机"的完整流程:否认(这不是编程)→ 和解(两种都好玩)→ 重建(那我们以后怎么干活)。
对 vibe coder 来说,这场辩论真正的身份之问不是"dumbmatter 和 chriskiehl 谁对",而是:当你说"我是 vibe coder"时,你认同的是哪一层?是"让 AI 替我写代码的人"(工具使用者),还是"理解系统、为设计负责的人"(工程师)?bitwizeshift 的回答已经给出了分水岭:设计权在谁手里,身份就在谁手里。你让 LLM 替你做设计的那天起,你就从"用 AI 的工程师"变成了"被 AI 用的操作员"——birdsongs 那句"I just approve PRs, because I have to"就是操作员的墓志铭。
给 vibe coder 的三条实操建议,综合三派智慧:
- 设计先行,实现外包(实务派):动手写 prompt 之前,先在纸上(或白板上)把模块划分、接口、数据流定下来。LLM 擅长填空,不擅长出卷子。
- 用测试和验证替代逐行理解(实务派):接受"你不可能读懂每一行"的现实,但把防线前移——先写测试再让 AI 实现,小步 diff,feature flag 限爆破半径。ChrisMarshallNY 的"Trust; but verify"贴在墙上。
- 保留一块手写自留地(热爱派):每周留一点时间手写点"没用"的代码——打砖块也好,递归模式也好。chriskiehl 说得对,这种快乐不需要辩护;但我要加一句:它也不只是快乐,它是你"设计权"的健身房。长期不手写的人,迟早连设计也做不出来——肌肉是会萎缩的。
最后回到 dumbmatter 那句最狠的话:"Just as the Matrix is not reality, vibecoding is not programming."("正如母体不是现实,vibe coding 不是编程。")结合 chriskiehl 的脚注,我想把这句话续写完:vibe coding 不是"那种"编程,但"那种"编程也从来不是编程的全部。编程曾经是谋生的手艺、是解谜的游戏、是理解世界的透镜——AI 拿走的是第一层,后两层它拿不走,除非你亲手交出去。至于交不交,选择权一直都在你手里。这大概就是"依然热爱"四个字真正的分量。
写在最后,给 VibeFix 读者的一句话:下次当你对着 agent 说"帮我写个xxx"的时候,停三秒,问自己一个问题——这个设计的"为什么",在我脑子里吗?如果在,放心让它写,你是工程师;如果不在,先别急着 prompt,把"为什么"想明白再动手,你还是工程师。dumbmatter 害怕的、chriskiehl 热爱的、Ask HN 纠结的,归根结底都是这三秒钟。编程的意义不在键盘上,在这三秒钟里。
延伸阅读:本站此前发布过一篇实战指南《Vibe Coding 正在变成 Doomcoding》(slug:vibe-coding-doomcoding-escape-guide),讲的是"代码写崩、陷入死亡循环"时的逃生方法——那篇是"术",这篇是"道",两篇对照看效果更佳。
透明度注记
- 三篇原文(dumbmatter 10-08、chriskiehl 10-17、Ask HN 10-19)本人均已亲开全文,文中引文为原文 verbatim,中文为作者翻译。
- 评论数(Ask HN 610 条)、HN 榜单排名与 points(chriskiehl 文近 7 天榜 #6、644–686 points、260–533 comments;Ask HN 474 points)为侦察员 10-20 当天快照,会随时间变化;Ask HN 页面本人亲开时评论列表与上述量级一致。
- Simon Willison 10-19 转发讣告派一事,由侦察员确认,本人未亲开其博客验证,本文仅在背景中提及一次,未作展开论证。
- "三派对照""三层编程"等框架为作者的分析判断,已用"我的判断"标出;实操建议为综合三方观点的作者提炼。
- 文中提及的 LinkedIn 帖子(Meta 工程师 Ali Hamie)系经由 Ask HN 帖子原文引用,本人未亲开 LinkedIn 页面(需登录)。
评论 (0)
原始来源
相关文章

Google Research 开源递归智能体脚手架框架 Harness²:模型权重全程冻结,通过任务级 Propose–Probe–Compose 与脚手架级经验沉淀两层递归自我优化。8 个可编辑组件是 vibe coder 可直接抄的作业;官方报告三项基准最高提升 11.5 个点(团队自测*),本地 demo 无需模型凭证即可跑。

中国团队记忆张量发布并开源记忆原生大模型 MemT-1.0:把可持续存在、可更新的内部记忆做进前向传播,GDN-2 逐 token 更新、MoS 混合存储扩容,Nano(36B)与 Flash(288B)两款。团队亲口承认细节检索上外挂文本方案仍领先;许可证为 PolyForm 非商业——可免费玩,不可商用。

DeepSeek 在 10 月 20 日开源了支撑其生产服务的推理框架 DeepInfer(Apache-2.0),首发支持 NVIDIA SM100 与华为 Ascend 950——距离它 2025 年 4 月亲口说“不开源完整引擎”仅 18 个月。本文逐条拆解开源了什么、没开源什么,以及为什么推理成本就是 agent 成本。