我不喜欢代码

2026-05-20 1 阅读 birdculture
2026 年 3 月 5 日 “简要”说明了作为开发人员的我个人从未喜欢振动编码的各种原因。最近网上有很多关于 Vibe 编码以及大型语言模型 (LLM) 将如何彻底改变软件开发领域的讨论。每一个新模型都将使我们进入纯粹生产力的领域,以思考的速度交付软件,并消除产品开发的所有摩擦和开销。或者类似的东西。或许。我必须相信你的话。我不振动代码。如果它对你有用,那就太好了!在这篇文章中,我并不是要深入争论法学硕士的优点或缺点,但我个人从来没有注意到这一点。本页“简要”说明了各种原因。我是一个小气鬼,但我不是一个纯粹主义者。我尝试过使用集成到 IDE 中的法学硕士。它们对于某些任务很有用,这些任务足够简单,可以轻松描述,但又很烦人,不能自己完成。例如,将方形图像网格的大小调整得更小。我可以查看 ImageMagick 的命令行参数,但这是要求 AI 做的完美事情。然后,我尝试使用其中一种人工智能工具来分析项目中的代码和其他一些小任务,然后一切都尴尬地停止了。系统通知我,我的积分刚刚用完,我需要提供信用卡来购买更多我想继续使用的代币。现在,你必须明白,我来自我家谱两边的一长串小气鬼。几个世纪以来,我们在这里和大西洋彼岸一直精打细算,寻找便宜货。举个例子,我的一位远祖在菲利普国王战争期间去世,因为他离开安全的堡垒去取回他在撤离房子时留下的一些奶酪。所以你一定相信我,永久支付服务费用以便我可以思考的想法看起来是如此可笑、荒谬和可怕,以至于我什至懒得给他们我的卡。我关闭了笔记本电脑。我卸载了 IDE,甚至重新开始使用 Emacs。我意识到我什至不再注意到这种缺乏了。我老了,我老了确实有帮助。我已经写代码很长时间了,尤其是在一个将拥有 5 年经验的开发人员称为“高级工程师”的行业中。有时,经验是缓解焦虑的一剂受欢迎的解药(只要不是对只有 5 年经验的开发人员是高级开发人员的行业中的年龄歧视感到焦虑),而人工智能炒作的专家让我想起了早期在低代码和无代码工具方面的突破。我毫不怀疑人工智能可以成为开发人员的有用工具。我知道它可以作为更好的工具帮助完成某些任务。但这些争论总是让我再次思考偶然性和本质性的复杂性。即使我自己还是个年轻的程序员时,弗雷德·布鲁克斯(Fred Brooks)也已经老了。作为 IBM System 360 系列大型机(以及配套操作系统)的项目经理,当所有现在常见的软件项目出错方式都是新颖的时,他处于前排位置。他在《人月神话》一书中收集了这些观察结果,今天这本书仍然是软件工程课程的必读内容。我的版本是较新的重印版,其中包括一篇后来题为“没有银弹”的文章,其中布鲁克斯研究了新工具对开发人员生产力的影响。要像程序员一样思考,您必须了解现实世界是复杂的。编程最好被认为是在混乱的现实之上强加简化的表示——我们称之为_抽象——通过降低复杂性来使其易于理解。这让我们能够将特定的情况概括为可以构建在彼此之上的层。例如,将花生酱涂在一片面包上的具体动作可以概括为一种涂抹(物质)方法,可以将花生酱或奶油干酪作为参数。我们可以使用这些扩展方法来创建更高级别的函数,例如 create_pbj() 等。使用现代高级编程语言进行编码就像站在抽象金字塔的顶部,其中一行代码可以触发多个系统上的数百万个操作。非常令人兴奋!现在,如果我们可以继续抽象编程行为本身呢?这是代理人工智能的梦想,可以向大量代理分配任务,让他们在没有监督的情况下自行执行任务。听起来很棒!但这正在解决布鲁克斯所说的意外复杂性,即编写代码本身很复杂的事情。自本文撰写以来,软件开发在应对此类复杂性方面已取得了长足进步。我们可以使用编译为汇编的现代动态解释语言,而不是使用低级机器代码编写。我不需要从头开始记住如何编写快速排序(相信我,你会想要单击该链接),我只需要调用