Why I remain a skeptic

Why I remain a skeptic / 为什么我依然持怀疑态度

I still do not use LLMs for anything I actually care about. There are a lot of reasons I could give: environmental, social, political. I could talk about ecosystem lock-in, learned dependence, self-sovereignty, philosophical concerns, the intentional dismantling of labour bargaining power, and more. But before all of that, the simple question of efficacy - whether they actually work for the purpose of building non-trivial software - is still very far from settled.

我至今仍不会在任何我真正关心的项目中使用大语言模型(LLM)。我可以列举出很多理由:环境、社会、政治因素。我也可以谈谈生态系统锁定、习得性依赖、自主权、哲学层面的担忧、对劳动力议价能力的蓄意瓦解等等。但在这一切之前,一个简单的问题——即它们在构建非平凡软件(non-trivial software)方面是否真的有效——依然远未定论。

Here are a few reasons for my skepticism: We are 4 years into this ‘revolution’ and the industry has almost nothing to show for it. Software has not improved in quality, got faster, become cheaper to produce (when you exclude the mountain of poor-quality demoware that no reputable organisation would touch with a barge pole), or become more capable. It’s certainly not become more secure.

以下是我持怀疑态度的几个原因:这场所谓的“革命”已经进行了四年,但整个行业几乎拿不出什么实质性的成果。软件的质量没有提升,开发速度没有加快,生产成本也没有降低(如果剔除掉那些任何正规机构都不会碰的、堆积如山的劣质演示软件),功能也没有变得更强大。它当然也没有变得更安全。

A technological revolution is usually marked by old empires falling and being replaced with new players and ideas. It is not clear to me that the industry has produced any new ideas in the last few years that haven’t been in the navel-gazing arena of AI boosterism. Everybody is yelling at the top of their lungs but nobody is actually shipping anything useful.

一场技术革命通常以旧帝国的陨落和新玩家、新理念的崛起为标志。在我看来,过去几年里,除了那些沉溺于自我吹捧的 AI 狂热之外,这个行业并没有产生任何真正的新理念。每个人都在声嘶力竭地呐喊,但没有人真正交付出有用的东西。

I do not feel like I’m falling behind by not using them, despite expecting to. Nobody has turned up to steal the reputational lunch money of my open-source projects, for all the noise. You might be able to replicate the function of my code, but so can a simple memcpy: an open-source project that people feel they can trust enough to build their system on is about so much more than a feature list.

尽管我曾预料到自己会落后,但事实证明,不使用它们并没有让我感到被时代抛弃。尽管外界喧嚣不断,却没人能抢走我开源项目的声誉。你或许能复制我代码的功能,但简单的 memcpy 也能做到:一个能让人们信任并将其作为系统构建基础的开源项目,其价值远不止于功能列表。

The evidence is tenuous and thin. $1.5 trillion later and we still have almost no independent studies that can attest to top-level productivity improvements associated with AI. Given that half of our economy currently rests on this central claim being true, we should expect more than a few one-off studies and anecdotes. Every study I’m aware of either zooms in too close and tracks a metric that has nothing to do with top-level productivity (‘lines written’, ‘PRs merged’, ‘features added’, etc.) or is too small to draw useful conclusions from. Even then, those studies that do exist and suggest some amount of academic rigor point to only marginal or even negative productivity gains.

证据极其薄弱。在投入了 1.5 万亿美元之后,我们几乎没有任何独立研究能证明 AI 带来了顶层生产力的提升。考虑到我们一半的经济目前都建立在这一核心主张之上,我们理应看到比几项零星研究和轶事更多的证据。我所知的每一项研究,要么视角过于狭隘,追踪的指标与顶层生产力毫无关系(如“代码行数”、“合并的 PR 数量”、“添加的功能”等),要么样本太小,无法得出有用的结论。即便如此,那些确实存在且具备一定学术严谨性的研究,也只显示出边际效应,甚至是负面的生产力增长。

The LLM-generated PRs I get are still rubbish. The code has become less obviously repetitive and less stylistically consistent, but no more fit for purpose. The proportion of them that are worth actually merging is still much lower than those written by humans. A fair criticism is that it’s becoming increasingly difficult to tell the two apart due to AI outputs becoming slightly less formulaic, but even the most careful humans will still leave the odd typo in their description so I’m unconvinced that the bots are yet walking among us to that degree.

我收到的由 LLM 生成的 PR 依然是垃圾。代码虽然不再那么明显地重复,风格一致性也变差了,但并没有变得更实用。其中值得合并的代码比例远低于人类编写的代码。一个合理的反驳是,由于 AI 输出的内容变得不那么刻板,现在越来越难区分两者了;但即便是最细心的人类,在描述中偶尔也会留下错别字,所以我并不相信机器人已经进化到那种能混迹于我们中间的程度。

They still miss obvious shit. Several of my open-source libraries are in the dependency trees of FAANG companies and I’ve had several reports passed to me as a result of scans with frontier models. Some of it’s good, most of it’s bad; I can recall several situations in which a frontier model missed something obvious and important that was found by a hobbyist using their brain soon afterward.

它们依然会犯低级错误。我的几个开源库被 FAANG(科技巨头)公司作为依赖项使用,我收到过几份通过前沿模型扫描后提交给我的报告。有些报告是有用的,但大部分都很糟糕;我记得好几次前沿模型漏掉了显而易见且重要的问题,而这些问题随后就被一个动脑思考的业余爱好者发现了。

The philosophy exuded by AI boosters still defies the last half-century of theory about what software development even is. We should all know by now that code is an input to the software development process and not an output: yet even the most forward-looking organisations still tacitly treat lines of code as a productivity metric. That is the path to unmaintainable slop, whether the slop comes out of a machine or is simply the byproduct of humans conforming to poorly designed incentive structures. Peter Naur remains undefeated.

AI 鼓吹者所散布的哲学理念,依然违背了过去半个世纪以来关于“软件开发究竟是什么”的理论。我们现在应该明白,代码是软件开发过程的输入,而非输出:然而,即使是最具前瞻性的组织,依然默许将代码行数作为生产力指标。这是通往不可维护的“垃圾代码”之路,无论这些垃圾是机器生成的,还是人类为了迎合糟糕的激励机制而产生的副产品。彼得·诺尔(Peter Naur)的理论依然是不可撼动的。

When everybody is super, nobody is. The not-so-quiet goal of the LLM push by big tech was to homogenise intellectual labour such that it can be made fungible. When labour is fungible you can swap it out whenever you like for an alternative, decreasing the bargaining power of workers. Software development was one of the last ‘guild fields’ and now we are seeing its industrialisation occur. By not leaning into LLMs I’ve given myself the room to specialise in a smaller set of skills. So far that conscious decision is working out well, and I remain confident about my job security.

当每个人都是“超级英雄”时,也就意味着没有人是。大型科技公司推动 LLM 的目的并非秘密,那就是将脑力劳动同质化,使其变得可替代。当劳动力变得可替代时,你就可以随时将其替换掉,从而削弱工人的议价能力。软件开发曾是最后的“行会领域”之一,而现在我们正目睹其工业化进程。通过不依赖 LLM,我为自己留出了空间,去专注于一套更精简的技能。到目前为止,这个清醒的决定效果不错,我对自己的职业安全感依然充满信心。