It's OK. Do Your Thing

It’s OK. Do Your Thing

没关系,做你自己的事

August 8, 2026. It’s OK. Do Your Thing. Some (reluctant) thought on our AI moment. We’re in an AI moment, to put it mildly. I’ve been reluctant to write about AI here. The Stack Report is, quite deliberately, a view from the slow lane. And, we’re told, taking it slowly isn’t what AI is all about. 2026年8月8日。没关系,做你自己的事。关于我们所处的 AI 时刻的一些(不情愿的)思考。委婉地说,我们正处于一个 AI 时刻。我一直不愿在这里写关于 AI 的内容。《Stack Report》刻意保持着一种“慢车道”的视角。然而,我们被告知,AI 的核心恰恰不是慢节奏。

Mostly, though, I’m not sure there’s any way, currently, to say anything about AI without it going badly. There’s a worrying divide in our community between the pro and the anti AI crowds. Say anything at all and you’re open to attack from one side or the other. Too enthusiastic? You’re a mark, a booster, complicit. Too sceptical? You’re a dinosaur, in denial, about to be left behind. I’m pretty sure most of us are just trying to work it out, but even trying to say that leaves you exposed. 但最主要的是,我不确定目前有什么办法能谈论 AI 而不引发负面后果。我们的社区在支持 AI 和反对 AI 的人群之间存在着令人担忧的分歧。只要你发表任何观点,就会受到其中一方的攻击。太热情?你就是个冤大头、吹鼓手、同谋。太怀疑?你就是个老古董、拒绝面对现实、即将被时代抛弃。我很确定我们大多数人只是在试图弄清楚这一切,但即便试图表达这一点,也会让你陷入被动。

There’s nowhere to go where the discourse isn’t dominated. Posts that should be about some other topic entirely end up framed as about AI. Even the pieces that profess to be tired of the whole thing — can we please talk about anything else? — can’t help but continue it. They’re AI posts too. And so, of course, then, is this one. 🫠 现在已经没有地方能避开这种主导性的讨论了。本应讨论其他话题的文章,最终都被框定在 AI 的语境下。即使是那些声称对这一切感到厌倦——“我们能聊点别的吗?”——的文章,也忍不住继续讨论它。它们本质上也是 AI 文章。当然,这一篇也不例外。🫠

§

Will and I were recording a Django Chat the other day. As it will, Orwell came up, on the newspapers in Spain: “Early in life I had noticed that no event is ever correctly reported in a newspaper, but in Spain, for the first time, I saw newspaper reports which did not bear any relation to the facts, not even the relationship which is implied in an ordinary lie. I saw great battles reported where there had been no fighting, and complete silence where hundreds of men had been killed. I saw troops who had fought bravely denounced as cowards and traitors, and others who had never seen a shot fired hailed as the heroes of imaginary victories… I saw, in fact, history being written not in terms of what happened but of what ought to have happened according to various ‘party lines’.” 前几天我和 Will 在录制 Django Chat。不出所料,我们谈到了奥威尔关于西班牙报纸的评论:“我早年就注意到,报纸上从未准确报道过任何事件,但在西班牙,我第一次看到报纸报道与事实毫无关联,甚至连普通谎言所隐含的那种关联都没有。我看到报道中描述了激烈的战斗,而实际上根本没有交火;我也看到在数百人丧生的地方,报道却完全沉默。我看到勇敢作战的部队被斥为懦夫和叛徒,而那些从未开过一枪的人却被誉为虚构胜利的英雄……事实上,我看到历史不是根据发生了什么来书写的,而是根据各种‘党派路线’认为应该发生什么来书写的。”

The horrors of war are of a different order to those of (even) the AI industry, but the epistemic structure of the media wrapped around it is the same. Depending on which reports you read, the labs are either making or losing billions. The technology is here to stay, or about to collapse under its own costs. Presumably LLMs aren’t going away as a technology per se — the weights exist, the papers are published, you can run a decent model on a laptop. But if they cost more to run than folks are prepared to pay, then it’s at least plausible they disappear as we know them now. 战争的恐怖与(即使是)AI 行业的恐怖属于不同量级,但围绕其构建的媒体认知结构却是相同的。取决于你读的是哪篇报道,实验室要么在赚取数十亿,要么在亏损数十亿。这项技术要么将长存,要么即将因自身成本而崩溃。可以推测,大语言模型作为一种技术本身不会消失——权重存在,论文已发表,你甚至可以在笔记本电脑上运行一个不错的模型。但如果它们的运行成本超过了人们愿意支付的价格,那么它们以我们目前所知的形式消失至少是可能的。

A $100-a-month subscription (say) might seem great value. But if the token spend behind that subscription is running into the thousands — and suddenly that’s the price you’d have to pay — then at some point the calculus changes. For every “the new model changes everything,” there’s a company scaling back its AI spend over ROI concerns. For every benchmark chart going up and to the right, a study saying developers felt faster while measurably being slower. Great battles reported where there had been no fighting; complete silence where the money was lost. How on earth are we meant to know what to believe? 每月 100 美元的订阅费(假设)看起来很划算。但如果该订阅背后的 Token 消耗高达数千美元——而这突然变成了你必须支付的价格——那么在某个时刻,计算方式就会改变。每出现一个“新模型改变一切”的论调,就有一家公司因投资回报率(ROI)问题而缩减 AI 开支。每出现一张向右上角攀升的基准测试图,就有一项研究表明开发人员感觉自己变快了,但实际上却变慢了。报道中描述了激烈的战斗,而实际上根本没有交火;在金钱流失的地方,却是一片死寂。我们到底该相信什么?

§

The idea that programmers will all be out of work shortly isn’t new. It’s a story I’ve lived with my entire career. When I was starting out, the big bogey was outsourcing. Primarily to India. The pitch was simple and, on paper, unanswerable: programming is labour, labour is cheaper over there, therefore the work goes over there. Write the spec in London or San Francisco, send it to Bangalore, receive working software at a fraction of the cost. The trade press was full of it. The Economist was foaming. The career advice was to get out while you could — retrain, move into management, anything but code! 程序员即将全部失业的想法并不新鲜。这是我整个职业生涯中一直伴随的故事。当我刚入行时,最大的威胁是外包,主要是外包给印度。其逻辑简单且在纸面上无懈可击:编程是劳动,那里的劳动力更便宜,所以工作就应该转移到那里。在伦敦或旧金山写好规范,发给班加罗尔,以极低的成本获得可运行的软件。行业媒体对此大肆报道,《经济学人》更是对此狂热。当时的职业建议是:趁早转行——重新培训、转入管理层,做什么都行,就是别写代码!

Now, this wasn’t a fringe prediction that fizzled. It was a serious, well-funded, decades-long effort. The global IT outsourcing industry today is worth something like $640 billion a year — north of a trillion dollars if you fold in business process outsourcing. India’s IT services exports alone run to roughly $250 billion annually. This was a trillion-dollar natural experiment in whether you can separate the specifying of software from the building of it. Of course, we’re all still here. So what happened? 这并不是一个最终破灭的边缘预测。这是一项严肃、资金充足且持续了数十年的努力。如今,全球 IT 外包行业的年产值约为 6400 亿美元——如果算上业务流程外包,则超过一万亿美元。仅印度的 IT 服务出口每年就达到约 2500 亿美元。这是一场价值万亿美元的自然实验,旨在验证是否可以将软件的“规范制定”与“构建”分离开来。当然,我们都还在这里。那么发生了什么?

There are plenty of contributing factors, and they’re all real enough. The coordination tax: firms discovered they’d outsourced the cheap bit — the typing — and kept all the expensive coordination, plus added ten time zones and a contractual boundary. The wage convergence: good engineers in Bangalore quite rightly stopped being cheap. And then demand exploded. Software ate the world, the addressable market kept getting bigger, and Western developers, rather than losing work, saw their salaries grow throughout the entire period. 有很多促成因素,而且它们都很真实。协调成本:公司发现他们外包的是廉价的部分——打字——却保留了所有昂贵的协调工作,还增加了十个时区和合同边界。工资趋同:班加罗尔的优秀工程师理所当然地不再廉价。随后需求爆发了。软件吞噬了世界,可触达的市场不断扩大,西方开发人员不仅没有失去工作,反而在此期间薪水一路增长。

§

If you’re a regular reader of the Stack Report, you might guess that I’d focus on a different story: that of (the impossibility of) specifying our software before we build it. Spec to code fails for all the reasons waterfall approaches always have: it’s only in building the thing that you find out what you actually need. The requirements aren’t an input to the building. They’re an output of it. We talked about this in Shipping Software on Time and on Budget — the whole game is doing sufficient discovery to be in a position to deliver. 如果你是《Stack Report》的常客,你可能猜到我会关注另一个故事:在构建软件之前(不可能)预先指定其规范。从规范到代码的模式之所以失败,原因与所有瀑布式方法失败的原因一样:只有在构建过程中,你才会发现自己真正需要什么。需求不是构建的输入,而是构建的输出。我们在《按时按预算交付软件》一文中讨论过这一点——整个游戏的本质在于进行充分的探索,从而具备交付的能力。

And it’s why, in Locality of Behaviour, I argued for deferring your abstractions while new code is still in flux: you’re buying time for the real shape of the problem to emerge. That shape isn’t in the ticket. It isn’t in some PRD. It emerges from contact with the work. This was Brooks’ point in No Silver Bullet: the essential complexity of software is in the conception, not the expression. By the time you’ve specified the behaviour precisely enough for a disinterested third party to implement it without judgement calls — no questions, no clarifications, no “did you actually mean…?” — you’ve done the programming. At that point, the spec isn’t some folder of markdown docs. It’s the running implementation. 这就是为什么在《行为局部性》一文中,我主张在代码尚不稳定时推迟抽象:你是在为问题的真正形态显现争取时间。那个形态不在工单里,也不在某个产品需求文档(PRD)里。它是在与工作的接触中产生的。这正是布鲁克斯在《没有银弹》中指出的观点:软件的本质复杂性在于构思,而非表达。当你将行为精确到足以让一个无关的第三方无需任何判断、无需提问、无需澄清、无需确认“你真的是这个意思吗?”就能实现它时,你其实已经完成了编程。在那一刻,规范不再是某个 Markdown 文档文件夹,而是正在运行的实现本身。