Vandee's Blog

05 Jan 2026

Vibe Coding is kind of like borrowing

TL;DR

Vibe Coding 就像贷款、花呗,只是没有标注还款额和期限。

选了 borrowing 这个单词是因为它既有贷款的含义,也有借用的含义。

结果还是过程?

对于这样的现象,我先下一个结论:软件开发向来是为了解决问题(Problem Solving),重要的是解决问题的结果,而不是解决的方式。

大模型的出现让重复基础编码任务的意义快速贬值,但是开源协同的形态并没有因此发生巨变。对于个人而言,此时应该做的是尽快掌握大模型制导的编程能力,将自己从繁琐的重复编码任务里解脱出来,集中注意力投入到其他高价值目标上去。

否则,这就像十年前别人开发 Java 都用 JetBrains 自动生成模板,自动补齐代码,流畅 DEBUG,光速跳转定义;而你还在手敲每一个符号名,全局搜索文本找代码,不停吐槽为什么别人写的类名方法名都要全拼

via: https://tisonkun.org/2025/12/31/open-source-and-ai/

[Claude Code] has the potential to transform all of tech. I also think we’re going to see a real split in the tech industry (and everywhere code is written) between people who are outcome-driven and are excited to get to the part where they can test their work with users faster, and people who are process-driven and get their meaning from the engineering itself and are upset about having that taken away.

[Claude Code] 有潜力改变整个科技行业。我还认为,我们将在科技行业(以及所有编写代码的地方)看到一种真正的分化:一方面是那些以结果为导向、兴奋于更快地将工作交给用户测试的人;另一方面是那些以过程为导向、从工程本身中获取意义、并对这种被剥夺感到不安的人。

Ben Werdmuller

via: https://simonwillison.net/2026/Jan/2/ben-werdmuller/

我不排斥也不反感 AI 这个技术,过度批判技术变革带来的改变是弱者的借口,哪怕 AI 真的一无是处。以后完全杜绝 AI 就好像现在完全不使用智能手机和电子设备一样荒谬。工业革命、自动化会让许多人失去现在的岗位,但它同样也提供了更多岗位和需求。

我不是程序员,也不是相关行业的,编程只是一个爱好。

编程作为一个爱好、技能,和软件工程、软件开发,是完全不一样的心态。

对于工程实现,我觉得 AI 的参与完全没有问题。否定它未来的可能性就好像现在关闭所有工厂回到手工制作。让 LLM 来做一些总结、编排的杂活,并行 review 多个项目,这是传统自动化很难实现的。以前需要人力完成的,十分之一不到成本的 token 可能就可以做到。

软件开发,团队项目是靠产品说话的,这些更注重结果。就像现在的大语言模型和 Claude Code,产出让用户觉得好用的产品才是第一位的。至于这个大语言模型是如何训练出来的,Claude Code 是如何实现的,普通用户其实并不关心,比竞品好用用户就会选择。

我不喜欢 LLM 代码生成

但对于 Vibe Coding 和 LLM 代码生成,我始终不太喜欢。

I think the job of being paid money to type code into a computer will go the same way as punching punch cards […] in six years time, I do not think anyone will be paid to just to do the thing where you type the code. I think software engineering will still be an enormous career. I just think the software engineers won’t be spending multiple hours of their day in a text editor typing out syntax.

我认为,作为一份工作,拿钱在电脑上输入代码的工作将在六年后与打孔卡一样消失,我认为到那时不会有人仅仅为了输入代码而获得报酬。我认为软件工程仍将是一个巨大的职业。我只是认为软件工程师不会花费多小时在文本编辑器中输入语法。

via: https://simonwillison.net/2026/Jan/8/llm-predictions-for-2026/

对于工作,我赞同 Simon 大佬的这个言论,但我认为 LLM 代码生成绝对和打孔卡的取代不是一回事。手拿普通锯子(打孔卡),手拿电锯(现代编程语言),电锯自己动(LLM 生成),这之间的区别不是明摆着的么?

本质上,编程就是自动化,把需要实现的结果,用代码固定下来,编译好让机器自动化执行。AI(大语言模型)则通过神经网络,让自然语言成为了代码的“解释器”。

但AI 生成和 AI 自动化有本质上的区别,用 AI 生产内容和用 AI 来管理流程是两码事。

LLM 生成代码这个过程中,它始终是一个概率结果。传统自动化工具指向一个确定的结果,而 LLM 生成得到的始终是一个随机区间,即使这个随机区间对于简单的代码复制、修剪工作来说,很小,很稳定;即使通过高超的 prompt 技巧、炉火纯青的 AI 技术,得到非常准确的代码。概率性是 LLM 生成始终无法回避的问题。

编程现在对我而言,是一种自我表达,它有着艺术该有的所有特性。

把这些交给 AI 来生成给我一个结果,不是我想要的,也很不“自我”。啪啪啪,生成了一些质量也不错的代码,但这太不好玩了,带给不了我什么乐趣。我很享受敲代码的时候键盘敲击的声音,像弹吉他一样,思维和想象力的轨迹在指尖游走,具象化的表现出来。

编程语言本身也就是一种语言,为什么必须要用自然语言来和计算机对话?

这是一次进化,但也是退化。当一种语言被另一种语言同化,也就意味着它的消亡。(现代编程语言和汇编、机器码之间的关系和这个不一样)

为什么现在许多软件开发者,甚至是行业大佬,本身代码能力就很强,但还是会在 AI 代码生成上过于夸大其词,甚至是炫耀高超的 AI 生成技巧,好像是在追逐创造一种流行趋势和潮流。值得拿出来炫耀的不应是自己本身就有的编程能力么?

我觉得这才是真正的 SKILL,而不是变成了写 prompt、文档和各种 AGENTS.md 来安排 AI 的“架构师”。能用自然语言来编码绝对不是一个值得这么高兴的事情。

对于代码能力本身很强的人来说,AI 能解放双手,同一时间可以并行构建多个项目。确实现在还是如此,代码能力能纠正 LLM 生成的代码,没有 AI 也还是能写出高质量的代码。

当 AI 生成的代码比自己还要好的时候,当自己已经无法理解 AI 生成的可运行物件的时候,又该如何?还会觉得这些是在自己的思维主导下创造出来的么?自己不写代码了,还怎么去评判 AI 代码的质量和品味?

当 LLM 生成的代码质量像现在的工业制造一样,品质可控,误差降低到非常低,软件开发进入 AI 工业时代,现在声称的编程和代码品味还存在么?

所以,从 Vibe Coding 这个概念出现到现在一直的争论里,我觉得关键还是在于判断:AI 生成代码是否只是一种工具的使用。

我的答案是:显然不是。

一个很简单明了的逻辑判断:

如果 AI 的生成只是工具和智慧劳动的结合,那么离开了它,你还能实现这个结果么?换一个模型,还能生成同样质量的内容么?能找到另一个替代它来帮你完成这个工作的工具么?如果有,那么为什么必须要用 AI 生成?

用电子画笔画画,算法摄影,这些虽然都有科技技术的融合,但是他们和 AI 生成还是很不一样,这些带有思维创造比重较大的行为,在工具技术的加成下,还是人在主导,它们还是工具。

再强大的电子画笔,不会画画还是画不出来;再昂贵的相机,没有审美还是拍不出好照片。

我不会把 AI 生成完全当作是自己思维的创造,这些生成的内容依靠的是模型和神经网络完成的概率计算,它是概率结果,它无法复现,更不是一种技能。

它们就像贷款,让 AI 帮自己做的越多,将来要还的就越多。

2026-03-01 added:

Cognitive Debt: When Velocity Exceeds Comprehension | rockoder

How Generative and Agentic AI Shift Concern from Technical Debt to Cognitive …

认知债务是最近开到文章里讨论的比较多的。代码生成的成本是下来了,但是转嫁到了代码审查和 review,是一种变相的技术栈。

这正是之前提到的顾虑:当 LLM 生成的代码自己已经无法理解的时候,应该怎么办?

2026-04-03 added:

Naur theory 诺尔理论: 诺尔理论指的是程序员对代码行为的心理直觉或心智模型。在Peter Naur 1985年的经典论文《Programming as Theory Building》中,他提出了一个革命性的观点: 编程不仅仅是编写代码,而是在脑海中构建一个关于系统如何运作的理论。 via: https://gist.github.com/MostAwesomeDude/560185c24f959f6fec229739cb5a6735

心智模型 mental model 在 vibe coding 出现之后,被许多文章提到。LLM 有再大的上下文窗口,能并行处理再多 agent workflow,还是要依赖代码编写者(或者代码监督者?)自己的心智模型。

不同的立场

Don't fall into the anti-AI hype - <antirez>

antirez 的这篇写的挺中肯的,Simon 大佬也 quote 了: Don't fall into the anti-AI hype

正如文章标题一样,don't fall into,不要被炒作和舆论影响了自己的判断。无论是过度鼓吹 AI 还是过度反对 AI。

只是大家有不同的立场,有不同的利益相关,有不同的喜好。

现在 AI 编程、AI 软件开发确实很像工业革命初期,之所以要强调初期是因为工业革命是一个持续了一个世纪的漫长过程。

每次谈到这些都会让我想到当时的反工业革命的一些艺术运动,例如 艺术与工艺运动 (Arts and Crafts Movement)。

不是工业革命和科学技术发展也不会催生出前拉斐尔派,也就不会有印象派。正是这些在时代中发生的激荡,它激起了巨浪,也激起了人们的思考。

世界和宇宙本就是无序的(chaos),平常的有序也只是无序呈现的一种方式,无序的微观分子运动宏观上呈现出稳定态。

我想表达的是,我们本来就无时无刻不处在变化之中,保持自己的品味,坚持自己的喜好就好,自然会随着浪潮到达自己会抵达的地方。

对我来说,编程是我探究艺术的一个 branch 分支,很幸运它不是我的工作,我也就不用有什么立场。

即使现在的数码摄影如此发达了,胶片仍然有它独特的味道和价值。

我相信编程里这些无法被替代的东西会有人继续坚持下去,当狂潮退去,能让内心继续跟随的只有热爱。

2026-03-24 add

https://www.davidabram.dev/musings/the-machine-didnt-take-your-craft/ 这篇文章的这部分说的挺好,但对马克思和资本主义之间的那些观点在我看来有些片面甚至理解偏差了:

Speaking as a developer, this becomes obvious the moment you step outside the romantic framing. I have been doing this for years, and the hardest parts of the job were never about typing out code. I have always struggled most with understanding systems, debugging things that made no sense, designing architectures that wouldn't collapse under heavy load, and making decisions that would save months of pain later.

作为一名开发者,这一点在你走出浪漫的框架时变得显而易见。我已经做了多年这项工作,工作中最困难的部分从来不是敲代码。我一直最难的地方在于理解系统,调试那些毫无意义的东西,设计在重负载下不会崩溃的架构,以及做出能够节省后续数月痛苦的决策。

None of these problems can be solved LLMs. They can suggest code, help with boilerplate, sometimes can act as a sounding board. But they don't understand the system, they don't carry context in their "minds", and they certianly don't know why a decision is right or wrong.

这些问题都无法通过大型语言模型解决。它们可以建议代码,帮助处理样板,有时可以充当一个讨论的对象。但它们并不理解系统,它们的“思维”中没有上下文,而且它们当然不知道一个决定是对还是错。

And the most importantly, they don't choose. That part is still yours. The real work of software development, the part that makes someone valuable, is knowing what should exist in the first place, and why.

最重要的是,他们不做选择。那部分仍然是你的。软件开发的真正工作,决定一个人有价值的部分,是知道什么应该存在,以及为什么。

If you reduce yourself to "the one who types code," then yes, you should feel obsolete. But don't fool yourself any further: typing code that was never the essence of the craft.

如果你把自己简化为“那个打代码的人”,那么是的,你应该感到过时。但不要再自欺欺人了:打代码从来就不是这门手艺的本质。

The idea that LLMs are "taking away" coding is the same illusion as the woodworker. Just as higher level languages didn't destroy programming, nad compilers didn't destroy engineering, and cloud didn't destroy infrastructure work, LLMs do not destroy coding.

大型语言模型(LLMs)"夺走"编码的想法与木匠的幻觉是一样的。正如高级语言并没有摧毁编程,编译器并没有摧毁工程,云计算也没有摧毁基础设施工作,大型语言模型并不会摧毁编码。

The real danger is that people stop thinking. The actual trap is engineers letting the tool carry the cognitive load they were meant to build – The abdication of reason from within.

真正的危险在于人们停止思考。真正的陷阱是工程师让工具承担他们本应构建的认知负担——理性的放弃。

I don't see any of this as a tragedy. Because the capacity for good craftsmaship remains. The same tools that let someone drift into shallow work are the tools that let someone else build at a level that was previously impossible.

我不认为这一切是悲剧。因为良好工艺的能力依然存在。让某人陷入肤浅工作的同样工具,也让其他人能够在以前不可能的水平上进行构建。

The domain of what can be built is growing and leverage of human reason is increasing. And that creates a split – not between "alienated" and "fulfilled," but between those who adapt their thinking and those who retreat into anemoia.

可以构建的领域正在扩大,人类理性的杠杆作用也在增加。这造成了一种分裂——不是在“疏离”和“满足”之间,而是在那些适应思维的人和那些退缩到怀旧情绪中的人之间。

No matter what tools arrive, no matter how powerful they become, they will always remain tools. They won't replace our reason nor values. You will still choose what is worth building. And as long you reason, nothing essential has been lost.

无论什么工具到来,无论它们变得多么强大,它们始终只是工具。它们不会取代我们的理智和价值观。你仍然会选择值得构建的东西。只要你在思考,任何本质的东西都没有丢失。

Tags: Thinking LLM