Rails World 2026 开幕主题演讲 - DHH

Rails World 2026 Opening Keynote - DHH

DHH DHH · Ruby on Rails · 2026-09-24 · 约 63 分钟 · 原视频 ↗

打开互动全文版(中英对照 + 朗读 + 问答)→

本期速览 · Overview

DHH 在 Rails World 2026 开幕主题演讲中探讨 AI、技术变革与 Rails 的未来。

DHH opens Rails World 2026 with a keynote on AI, technological change, and the future of Rails.

要点 · TL;DR

核心观点 · Key points

反共识 · Contrarian takes

本期章节 · Chapters(共 43)

全文 · Full transcript(中英对照)

欢迎来到奥斯汀 Welcome to Austin

DHH

我喜欢这个。霓虹灯弯折。嗯,首先,我通常会说欢迎来到奥斯汀。我要说欢迎我自己回到奥斯汀。我大约一个月前刚来过这里,在一个播客里唠叨了 5 个小时。很高兴能回到这里。

I like that. Bent in neon. Well, first of all, welcome to Austin is what I would normally say. I would say welcome back to myself to Austin. I was just here about a month ago yapping for 5 hours in a podcast. It is great to be back here.

DHH

但对我来说更令人兴奋的是,此刻活着,并与围绕 Ruby on Rails 的精彩社区以及所有对智能体感到兴奋的人分享这一刻。如果你还没有,希望在这场关于未来的狂热演讲结束时你会。

But even more exciting for me is to be alive right now in this moment and sharing it with a wonderful community around Ruby on Rails and everyone else who's excited about agents. And if you aren't yet, hopefully you will be by the end of this delirious talk on the future.

AI谵妄与精神病 AI Delirium vs Psychosis

DHH

现在,我知道当人们看到一个人手舞足蹈、对这一刻如此兴奋时,第一反应可能是……一个诊断。AI 精神病。呃,我更喜欢另一个词。我有 AI 谵妄。嗯,AI 欣快症。因为在我与计算机共事、玩耍、互动的这段时间里,这简直是我们让计算机做的最令人兴奋的事。

Now, I know that the first instinct someone might have when they see a person dancing around being so excited about this moment is uh a diagnosis. AI psychosis. Uh I prefer different term. I have AI uh delirium. Um AI euphoria. Because this is simply the most exciting thing we have made computers do in the time I have worked with them, played with them, interacted with them.

DHH

但我觉得实际上要面对这样一个事实:一方面这极其令人兴奋,另一方面也有点令人不安。因为我们不知道最终状态会是什么样。每当我们试图做出预测,大约 20 分钟后它就过时了。这是一种奇怪的状态,即使你对未来感到兴奋,即使你对现在感到兴奋。我完全理解这可能会带来的不安感。

But I think actually to wrestle with the fact that on the one hand this is tremendously exciting, it is also a little unnerving. Because we don't know exactly what the final state of this is going to be. And whenever we try to make a prediction, it is out of date about 20 minutes later. That's a weird state to be in, even if you are excited for the future, even if you're excited for the present. And I fully understand the sense of unease that can create.

18世纪的肖像技术 Portrait Technology in the 18th Century

DHH

所以,为了稍微安抚一下,让我们把时钟往回拨一点。这是 18 世纪的一项最先进的技术。如果你在 18 世纪想让人给你画肖像,你得在一位大师级画家面前坐上几个小时又几个小时,然后他至少会花几个月时间画你的肖像。它很美。它很美。这是留给我们的惊人文化遗产,如今我们还能看到约书亚·雷诺兹在 1781 年画的沃尔德格雷夫夫人。很美。也有点排他。18 世纪没有多少人能委托别人给自己画这样一幅作品,并付钱让艺术家花上几个月又几个月来创作这样的东西。

So, to soothe that somewhat, let's wind back the clock a little bit. This is a state-of-the-art uh piece of technology from the 18th century. If you wanted your portrait taken in the 18th century, you would sit for hour upon hour upon hour in front of a master painter who would then go off and at best spend months working on your portrait. And it was beautiful. It's beautiful. Amazing legacy of culture that has been left to all of us now that we can see the Lady Waldegrave to this day that Joshua Reynolds painted in 1781. Beautiful. Also, a little exclusive. Not that many people in the 18th century were able to commission a piece of themselves like this and pay for an artist to spend months and months and months to create something like this.

DHH

更糟的是,就这幅画而言,雷诺兹花了几个月又几个月画了另一幅沃尔德格雷夫夫人的画,但被客户拒绝了,因为露出了一截脚踝。这太伤风败俗了。所以他只能回去重画。我不知道有没有人以前和客户打过交道,但他们可能会对可怜的约书亚·雷诺兹先生和被拒绝的工作说明书有些同情。

And even worse in the case of this particular painting, Reynolds spent months and months on another painting of the Lady Waldegrave that was rejected by the client because a piece of ankle was showing. It was scandalous. So, he simply had to go back and redo it. I don't know if anyone has worked with clients before that, but they might have some sympathy for poor Mr. Joshua Reynolds and rejected statements of work.

DHH

现在,大多数负担得起这种做法的人要么是上层资产阶级,要么就是彻头彻尾的皇室成员。这是 20 年后戈雅画的西班牙皇室家族。这差不多就是当时技术的发展速度。画家们完善捕捉人物肖像的不同技法已经 literally 几百年了,而一路走来进展非常微小。

Now, most of the people who could afford to do this were either part of the upper bourgeoisie or they were outright royals. Here's a painting that was done 20 years later by Goya of the royal Spanish family. That was sort of the rate of technology. Painters had been perfecting the different techniques of capturing portraits of people for literally hundreds of years and were making very marginal progress along the way.

相机改变一切 The Camera Changes Everything

DHH

现在,从 1801 年到我要展示的下一幅画,过去了 80 年。在那段时间里,相机登场了。大约在 1840 年。但这是 1888 年丹麦皇室家族的一幅画。哦,86 年。由丹麦画家劳里茨·图克森创作。他不只是花了 3 个月画这幅画,他花了 3 年。它仍然挂在哥本哈根的皇家广场上,你可以去那里看。一项惊人的成就,惊人的艺术技艺。也非常实用。再说一次,重点是捕捉当时的皇室家族。

Now, between 1801 and the next painting I'm going to show, 80 years went past. And in that time, the introduction of the camera came to the scene. And around 1840. But here's a painting of the royal Danish family from uh 1888. Oh, 86. By a Danish painter, Laurits Tuxen. He didn't just spend 3 months painting this, he spent 3 years. It is still hanging in the uh royal uh squares in in Copenhagen and you can go see it there. An amazing achievement, an amazing artistry. Also very functional. Again, the point was to capture the royal family at that time.

DHH

但这正接近那类艺术家那种特定模式的终点。因为在 1840 年到 1900 年之间,捕捉肖像的技术变得越来越好。1900 年,伊士曼柯达公司推出了 Brownie。这是第一种大规模生产的摄影形式,因为价格下降而更普遍地可及。我想用这个拍一张照片大约要一美元。因此,很多人突然有了自己的照片。

But this was getting towards the end of that particular mode for artists of that kind. Because what happened between 1840 and 1900 was that the technology of capturing portraits got better and better. And in 1900, the Eastman Kodak company introduced the Brownie. The first sort of mass-produced um form of photography that was more generally accessible because the price was coming down. I think it was about a dollar to have your picture taken with this. And therefore, a lot of people suddenly had their pictures taken.

DHH

所有这些伟大的艺术家都意识到,创作这些宏大画作的技艺,不,现在情况会不同了。工作会不同了,因为突然之间有了来自一种新技术的竞争。他们转型了。劳里茨·图克森和那个时代的许多其他画家一样,在 Brownie 推出后不久就意识到,尽可能完美地描绘现实不再是一项在经济上可行的技能。他们需要另一种技能。他们需要另一个领域。他们中的许多人转向了不同的艺术形式。有毕加索追求立体主义。有丹麦斯卡恩画派追求一种印象主义,这幅画就是一个例子。于是,技术变革给我们带来了这场创造力的爆发,人们突然不得不寻找新的方式来表达艺术,因为旧的方式已经消失了。

And all of these great artists realized that the craftsmanship of producing these grand paintings, no what, now it's going to be different. The job was going to be different because suddenly now there was competition from a new form of technology. And they pivoted. Laurits Tuxen, along with many other painters in that era, shortly after the Brownie was introduced, realized that depicting reality as perfectly as possible was no longer really an economically viable skill. They needed another skill. They needed another domain. And many of them pivoted to different forms of art. You had Picasso chasing Cubism. And you had the Danish Skagen Painters chasing a form of Impressionism that this painting is an example of. So, we got this explosion of creativity brought upon us by the change in technology that suddenly people had to find a new way to express their art because the old way was gone.

我曾祖父的遗产 My Great-Grandfather's Legacy

DHH

现在,这幅画有趣的地方在于,中间那位穿粉色裙子的女士,伊冯娜·图克森,实际上是我的曾祖母。因为劳里茨·图克森是我的曾曾祖父。这里描绘的是他,我想是 21 年,在他去世前不久。他接受了自己的肖像被这种新技术拍摄的事实,而正是这种新技术让他原来的职业变成了一个不同的工作场所。

Now, what's interesting about this particular picture is that the uh lady in the center, in the pink dress, Yvonne Tuxen, is actually my great-grandmother. Because Laurits Tuxen is my great-great-grandfather. And here he is depicted in uh 21, I believe, uh shortly before his death. He embraced the fact of having his own portrait taken by the new form technology that had rendered his old profession a different place to work.

DHH

他去世 52 年后,我于 1979 年出生。有趣的是,这里拍的这张照片实际上和劳里茨在 1920 年代拍的那张非常相似。技术并没有进化那么多,因为技术的发展往往就是这样。它断断续续、一阵一阵地来。巨大的变化是 Brownie,摄影的民主化。然后差不多 80 年过去了,没有发生太多事情。我们在 60 年代有了彩色摄影,但显然还没有普及到值得给我拍一张的程度。

52 years after his death, I was born in 1979. Interestingly enough, that picture taken here is very similar actually to the picture that was taken by Lawitz in in the 1920s. The technology hadn't evolved that much because that's what often happens with progressions of technology. It comes in starts and stops and fits. The huge change was the Brownie, the democratization of photography. And then kind of almost 80 years went by when not a whole lot happened. We got color photography in the '60s, but not widely distributed enough that apparently I was worth one.

DHH

嗯,不过几年后我们纠正了这一点,这是我四岁时和弟弟坐在一起的彩色照片。现在,几年后,这是另一张我的照片,而在这三张照片之间,我想那大约是我童年照片库存的 10%。因为即使这项技术的民主化已经达到连我们这样的家庭都能负担得起拍这些照片的程度,它也没有那么广泛地普及。是的,确实有一条曲线,与 1900 年代相比,1980 年代拍摄了更多照片,正如这张照片所示,但仍然相当有限,因为技术是断断续续、一阵一阵地发展的。

Um Although we did rectify that a few years later and here's a color photography of of me age four sitting with my brother. Now, a couple years later, here's another photograph of me and between those three photos, that's about I think 10% of my stock pile of photos of my childhood. Because even though the democratization of this technology had happened to a point that even we as a family could afford to have these pictures taken, it was not that widely distributed. And yes, there was a curve and more pictures were being taken in the 1980s as this photo represents versus the 1900s, but it was still kind of modest because technology moves in fits, starts and stops.

DHH

而拍那三张照片的相机与这台相机非常相似。这是 1925 年的徕卡 1。事实上,也许其中一些照片 literally 就是用另一台徕卡拍的。嗯,我想那时他们已经出到第七代了,但差别不大,因为技术相当相似。从 1900 年代左右的大革命到 80 年代,没有发生太多事情。

And the camera that those three pictures were taken of was very similar to to this camera. This is the Leica 1 from 1925. In fact, maybe some of those pictures were literally taken with another Leica. Um I think they were up to the seventh one by then, but they weren't that different because the technology was quite similar. Not much had happened since the great revolution around the 1900s until the '80s.

摄影类比 The Photography Analogy

DHH

然后又过了几十年,突然一切又发生了翻天覆地的变化。摄影不仅人人都能拥有,而且变得完全无摩擦。拍摄的照片数量呈抛物线式增长。因为突然间,每个人都负担得起给自己的孩子拍上万张照片。而且很多人确实这么做了。它变得太便宜了,以至于无法计量。这些是我妻子傍晚散步时喜欢拍的一些照片。即使在 80 年代,想要这样做也需要对胶卷的投入、冲洗等等。有人这样做,但不多,因为摩擦仍然太高。如今在 2026 年,每年大约拍摄 2 万亿张照片。这非常不同。底层技术是一样的,但即使与拍照手机刚出现时相比,我们也显然已经到达了一个拐点。

Then we gave it a couple more decades and suddenly everything changed dramatically again. Photography not just being possible for everyone to have, but to become completely frictionless. And the number of photos taken went parabolic. Because suddenly everyone could afford to have tens of thousands of pictures of their children. And many of them did. It simply became too cheap to measure. These are some of the photographs my wife likes to take when she's out on her evening walk. To have wanted to do this even in the '80s would have required a commitment to film and getting them produced and the rest of it. And people who did that, but not that many because the friction was still too high. Today in 2026, some 2 trillion photos are taken every year. That's very different. It's the same underlying technology, but we've clearly hit an inflection point even compared to when the camera phone first came out.

我们时代的柯达布朗尼 The Kodak Brownie of Our Era

DHH

这里会有一些与我们行业和职业的相似之处。11 月 24 日,我们得到了我们这个时代的柯达布朗尼。我们得到了 Opus 45。AI 技术以一种许多人负担得起的工具形式变得可及,第一次体验到与一种新形式的智能配对创建软件是什么感觉。这对我来说是一个临界点。11 月 24 日之前是一切,之后又是另一番天地。这将是历史书未来标记为智能体时代拐点的日期。就像布朗尼刚问世时一样,出现了各种形态的爆发和利用这项技术的新方式,没过多久,我们就看到了以开放权重格式提供同样智能的动向或概念。

There's going to be some parallels here to our industry and our profession. On November 24th we got the Kodak Brownie of our era. We got Opus 45. AI technology made accessible in a harness that many people could afford to use and experience for the first time what it's like to create software in pairing with a new form of intelligence. This was the tipping point for me. There was everything before November 24 and then there was everything after. This is going to be the date that history books going forward will mark as the inflection point for the age of agents. And as with the Brownie when that first came out, there was an explosion of different form factors and new ways of trying to harness this technology and it did not take long until we got some motion or notion of the same intelligence in an open weight format.

开放权重狂喜 Open Weight Euphoria

DHH

完全狂喜。这发展得太快了。我简直不敢相信这种外星技术现在以开放权重形式可用了。仅仅几个月后就发生了。我以快速模式使用了 Kimi K 25 相当长一段时间,非常喜欢它,以每秒 200 个 token 的速度体验这种智能是难以置信的经历。

Total euphoria. This is moving so fast. I can't believe that this alien technology is now accessible in open weight form. Just happened a few months later. I drove Kimi K 25 in the fast mode for quite a while and absolutely loved it and incredible experience to be experiencing this kind of intelligence at 200 tokens per second.

幻灭低谷 The Trough of Disillusionment

DHH

但后来发生了别的事情。从二月到五月的这个幻灭低谷期,我们似乎继续得到新模型,但它们有点烂。就像在倒退,很多人说:“这个 Opus 46 是什么鬼?我不知道,老兄。还是给我旧的东西吧。”很多人想:“哈哈,你以为这会持续指数级扩展和改进,但看吧,我们实际上并没有变得好那么多。”我记得有一次特别的发布,我想是 OpenAI 的新模型,在基准测试上并没有好多少,股价下跌或估值下降,市场突然说:“天哪,结束了。”因为我们不知道会发生什么,但这个幻灭低谷并没有像摄影那样持续 100 年,当时技术几乎没有改善。它只持续到五月。嗯,实际上是六月。因为在六月我们得到了 Fable 5 和 Mises,显然任何当时有机会体验的人都会打消他们可能有的关于我们是否停滞、是否结束的幻灭。

But then something else happened. This trough of disillusionment from February through May where we seemingly continued to get new models but they kind of sucked. It was like they were stepping backwards and many people were like, "What this Opus 46 thing? I don't know, man. Just give me the old stuff again." And a lot of people thought, "Haha, you thought this was going to continuously exponentially expand and improve, but look, we're actually not getting that much better." I remember a particular release, I think it was of OpenAI's new model that didn't punch that much better on the benchmarks, and the stock price fell or the evaluation fell, and the market was suddenly, "Oh my god, it's over." Because we don't know what's going to happen, but this trough of disillusionment did not last like it did with photography for 100 years when the technology barely seemed to improve. It only lasted until May. Well, June, really. Because in June we got Fable 5 and Mises, and clearly anyone who had a chance to experience that at the time were disabused of any disillusionment they might have had about whether we had stalled and whether it was over.

精神病开始发作 The Psychosis Sets In

DHH

我想说,我的诊断真正开始了。我对这种智能爆发的精神病/谵妄/狂喜。这就是那个模型,让我从“哦,我可以告诉智能体为我做某事”转变为看到那成为我想要融入的东西。这就是 Opus 的启示,突然有了我可以给问题的模型。或者给想法。然后看到它们被解决,或者看到它们在没有我指导实现的情况下被扩展。绝对令人难以置信。

And I'd say this is where my diagnosis really set in. My psychosis slash delirium slash euphoria for this explosion of intelligence on tap. This was the model where I went from, "Oh, I can tell an agent to do something for me." to seeing that being something I want to merge. That was the revelation of Opus to suddenly having models I could give problems to. Or ideas to. And see those be solved or see those expanded through no direction of my own on the implementation. Absolutely mind-blowingly incredible.

过山车继续 The Roller Coaster Continues

DHH

当然,事情并没有就此停止。我们已经在这惊人的过山车上几个月了。GPT-6 Astra 在九月发布,让我们免于 Anthropic 将垄断这种前沿智能的恐惧。然后更棒的是,仅仅一周后,我们得到了 DeepSeek 41 Flash,打消了任何认为前沿智能将永远只是某些大型美国科技公司领域的想法。这非常令人兴奋。

And of course, things didn't stop from there. We have been on this amazing roller coaster now for a couple of months. GPT-6 Astra came out in September and saved us all from the dread that Anthropic was going to have a monopoly on this kind of frontier intelligence. And then even better than that, just a week later, we got DeepSeek 41 Flash that disabused of any notion that frontier intelligence was going to forever be a domain of just some large American tech companies. This is incredibly exciting.

对程序员意味着什么 What It Means for Programmers

DHH

但这意味着什么?对我们作为程序员意味着什么?对我们这个职业意味着什么?我认为这就是为什么再次值得回顾一下,因为历史蕴含着所有这些惊人的教训和与我们时代的相似之处,只要我们去看。在我作为专业开发者的整个时间里,主导话语的一件事就是关于 10 倍程序员是否真实的争论。嗯,整个概念来自 1968 年 ACM 杂志的一篇文章,他们在一系列不同任务上测试了一组程序员,并得出了一个表格,显示最差程序员和最好程序员之间的差异从 5 倍到 30 倍不等,平均为 10 倍。然后我们花了整整 45 年争论这是否真实。还有人争论吗?我不这么认为。这场辩论现在已经解决了,但有趣的是,我们似乎跳过了关于 10 倍程序员的共识,开始思考,好吧,如果那只是人类能力的 10 倍,现在会是什么样子?很明显我们不知道确切。我们不知道这些工具可能带来什么样的加速,但我实际上认为,今天声称不使用这些工具的最差程序员和使用这些工具的最好程序员之间有 100 倍的差异,争议更小。这不是一个很有争议的声明,但它对于理解我们当前的技术状态绝对是革命性的。我实际上会更进一步。也许这稍微更有争议。我不这么认为。不使用这些工具的最差程序员与使用这些工具的最好程序员相比?这听起来差不多。一千倍?是的。好吧。那意味着什么?对公司竞争意味着什么,对我们需要开始做什么意味着什么,呃,八球有点挑剔。再摇一次。我知道真实的是,在过去 20 个月里,我写的代码是前 21 年的一半。现在,代码行数是一个奇怪、模糊、可塑的度量,一行 Ruby 显然比任何其他语言的一行价值高得多,尤其是 Rust 或 C++ 或任何没有我们在 Ruby 中享受的相同抽象和便利的低级语言,但仍然绝对不可否认的是,一场革命正在发生。任何经历过这一点并看到自己的生产力加速的人,都会有点头晕。

But what does it mean? What does it mean for us as programmers? What does it mean for us as a profession? And I think this is why again it's worth looking backwards a bit, because history holds all these amazing lessons and parallels to our time if we just look at it. One of the things that has dominated the discourse in the entire time I've been a professional developer has been the argument about whether the 10x programmer was real or not real. Well, that entire concept came from an article in ACM magazine from 1968, where they tested a group of programmers on a variety of different tasks, and they came up with a table that showed that the worst programmer and the best programmer had a variance ranging from 5x to 30x, an average of 10x over that period. We then spent literally the next 45 years arguing whether this was actually real or not. Is there anyone still arguing that? I don't think so. Like that debate has been settled now, but the interesting thing is we sort of leaped over a shared conclusion around the 10x programmer and started thinking like, well, if that was 10x with just a human capacity, what must it look like now? And it's clear we don't know exactly. We don't know exactly what the kind of acceleration with these tools is possible, but I'd actually argue that it is less controversial today to claim that there's a 100x difference between the worst programmer working without these tools and the best programmer working with these tools. It's not a very controversial statement, but it is absolutely revolutionary to the understanding of where we are right now as a state of technology. And I'd actually go a step further. And maybe this is slightly more controversial. I don't think so. The worst programmer without these tools versus the best programmer with these tools? That sounds about right. A thousand times? Yeah. Okay. Well, what does that mean? What does that mean for the competition of companies, for what we need to get started, uh Eight ball little fussy. Shake again. What I know to be true is that in the past 20 months I have written half as much code as I did in the previous 21 years. Now, lines of code is a weird fuzzy malleable size, and one line of Ruby is obviously worth vastly more than one line of any other language, but particularly Rust or C++ or any of the lower level languages that do not have the same abstractions and amenities that we enjoy in Ruby, but it is still absolutely undeniable that there is a revolution taking place. And anyone who's gone through that and seen their own productivity be accelerated, will be a little dizzy.

模板创建 Template Creation

DHH

现在,我们创建一个模板。看看所有我没有做的事情。

Now, we create a template. Look at all the things I'm not doing.

Rails时刻,21年后 The Rails Moment, 21 Years Later

DHH

看看所有这些我没有写的配置。这些东西全都自动映射在一起。只要在这里写个 blog,就直接映射到 blogging controller;只要写个 index,就直接映射到 index 模板。看看所有这些我没有在做的事。还有什么比“我们不再做的那些事”更能概括当下这一刻?这正是我对此刻如此兴奋的根源。这就是 Rails 时刻。我刚才放的那段视频已经 21 年了。2005 年我在巴西做了一场演讲,当时我对自己没写的那些代码兴奋不已。你能理解为什么我现在甚至更兴奋一点吗?你知道过去几个月我少写了多少代码吗?很多。尽管到现在为止我大概有 5 个月没写过代码了,我却能修好一切。每一个梦想、每一个恼人的小问题、每一道小伤口、每一个无关紧要的功能,突然都触手可及,突然都成为可能。这就是此刻的魔力。

Look at all the configuration I'm not writing. All these things are mapped together just automatically. Just by saying blog up here maps directly to the blogging controller, and just by having index mapped directly to the index template. Look at all the things I'm not doing. Is there a better encapsulation of this moment than all the things we are no longer doing? That is the source of my exuberance for this moment. This is the Rails moment. That clip I just played is 21 years old. I gave a presentation in Brazil in 2005, and I was so excited about all the code I wasn't writing. Can you see why I might be a little more excited now even? Do you know how much code I have not been writing for the last several months? A lot. And yet, despite writing no code for probably 5 months at this point, I've been able to fix everything. Every dream, every annoyance, every paper cut, every frivolous feature suddenly within reach, suddenly possible. This is the magic of the moment.

手写代码就此搁笔 Pencils Down on Hand-Written Code

DHH

但这意味着什么?几周前,在 37signals,我们做出了决定:这显然意味着我们不再手写代码了。我们正在、也已经对“把写代码当作日常业务的一部分”这件事放下铅笔了。在 37signals,手写代码现在是一种例外状态。就像在 Sentry 里看到一个 bug。这里出问题了。为什么智能体没能产出我们想要的东西?好吧,也许有一阵子我们还会拿出老铅笔,替它们记下来。但接着我们要修机器。我们修工厂。我们让一切重新运转起来。这是对已经发生之事的确认。如果我们在座做个调查,我大概会——其实,我们就在这个房间里调查一下吧。这里有多少人每周还在手写大量代码?请举手。天哪——大概五个。如果我两三个月前就把这页幻灯片放出来,做出同样的宣告,会有相当多的人说:“这家伙脑子有毛病。”而现在,这已经只是对既成事实的确认。

But what does that mean? Well, at 37signals a couple of weeks ago, we made the decision that it clearly means we're done writing code by hand. We are going and have gone pencils down on the idea that we were going to write code by hand as a normal course of business creating things. Writing code by hand at 37signals is now an exceptional state. It is like seeing a bug in Sentry. Something here went wrong. Why was the agent not able to produce what we wanted? Okay, maybe for a little while we'll still get the old pencil out and jot it down for them. But then we fix the machine. We fix the factory. We get things going again. This is a recognition of what's already happening. If we were to poll this room, I'd probably—actually, let's poll this room. How many people here are still writing material amounts of code by hand on a weekly basis? Show of hands. Holy—that's about five. If I'd put this slide up 2 months ago, 3 months ago and made the same proclamation, a fair number of people would have gone, "That dude's got a screw loose." And now, already, this is just a recognition of what's already there.

Basecamp 5的教训 The Basecamp 5 Lesson

DHH

这件事最迷人的地方在于,今年春天我们在 37signals 就试过这么干,当时我们正在给 Basecamp 5 做最后的收尾。我们让一群设计师为他们想在这个版本里加入的最后几个功能写代码,结果好坏参半。单独来看,设计师们做出的 PR 看起来都还合理。但合在一起,二三十个 PR 让架构看起来有点像瑞士奶酪,到处是洞。于是我们说:“好吧,看来技术还没准备好。我们还是回到手动审查一切,只让程序员来用它。”那是个错误的结论。显然如此。不仅因为我们只要再给它该死的 5 分钟,就能用上 Fable,整件事大概就会按最初设想那样跑通;更因为现在很清楚的是,在这个软件开发时刻,只有一个严肃的问题,那就是:你如何从这场智能爆炸中榨取最大的价值?其他所有问题在价值排序里都排在它下面。

What's so fascinating about this is we tried to do this in the spring at 37signals when we were putting the finishing touches on Basecamp 5. We had a bunch of designers write code for the final features that they wanted in this release, and the results were mixed. Individually, the designers were able to create PRs that seemed reasonable. Taken together, 20 or 30 of them—it left the architecture looking a little like a Swiss cheese, kind of punctured. So, we went, "Okay, I guess the technology is not ready yet. Let's go back to manually reviewing everything and just have programmers working with it." That was the wrong conclusion. Clearly. Not only because we could just have given it freaking 5 minutes and we would have gotten Fable and the whole thing would probably have worked as originally intended, but also because what's clear now is that there is only one serious question in this moment of software development, and that is: how do you get the most out of this intelligence explosion? Every other question is below that in the stack of values.

Hey转向原生 Hey Goes Native

DHH

于是我们发布了 Basecamp 5。这是一次很棒的升级。它由智能体加速完成,但仍然搭配了大量手动编写、手写、精雕细琢的——我们该怎么称呼这种 5 分钟前刚刚退役的旧工作方式?我不知道。但现在我们要开始一个新项目了。Hey next、Hey new、Hey there。我不知道我们会怎么叫它,但它是 Hey 的新版本,我们的邮件应用服务。而我们要做的第一件事,就是不再把它做成 web 应用。Hey 不再是 web 应用了。因为 Hey 从来就不是真的想当 web 应用。Hey 过去是、现在也是 web 应用,是因为对小团队来说,做 web 应用是保持高效的方式。在过去——也就是 5 分钟前——一个小团队能维护六个用原生框架写的原生应用,这种想法简直荒谬。没人那么干。这不仅是我们让人做 web 应用的原因,也是我们有了 React Native、有了 Hotwire Native、有了所有这些工具来提升生产力的原因,同时还得接受保真度会略有损失。我们做出了很棒的 web 应用。Hey 是个出色的 web 应用,但它不如原生应用。它当然不如原生应用。延迟之类的都不一样。

So, we shipped Basecamp 5. It's a great upgrade. It was agent accelerated, but still paired with a great amount of manually written, handwritten, chiseled—what are we going to call this old way of working that was just retired 5 minutes ago? I don't know. But now we're going on a new project. Hey next, Hey new, Hey there. I don't know what we're going to call it, but it is a new version of Hey, our email app service. And the first thing we're going to do is stop making it a web app. Hey is no longer going to be a web app. Because Hey never really wanted to be a web app. Hey was and is a web app because making web apps for small teams was how you could be productive. In the old times, that is 5 minutes ago, the idea that a small team could maintain six native applications written in the native frameworks was preposterous. No one was doing that. That's not only why we had people doing web apps, it's why we had React Native, it was why we had Hotwire Native, it was why we had all of this tooling to make us more productive, while accepting that the fidelity was going to take a slight hit. We made great web apps. Hey is a wonderful web app, but it's not as good as a native application. Of course it's not as good as a native application. There's different latencies and so forth.

一周六个原生应用 Six Native Apps in a Week

DHH

我身后正在播放的,就是我们大约一周前启动的六个原生应用的演示。我们已经到了这一步。这太疯狂了。在过去,如果你想为一个大型服务维护六个高保真度的原生应用,那要花很长时间,需要一支庞大的团队。而现在,我们突然就能做出非常高保真度的原生应用,因为我们他妈的连一行代码都不写。看看所有这些我们没有在做的事。但也看看我们给出的所有这些提示词。我们给出大量提示词,结果绝对令人振奋。这件事我们才刚刚启动,就已经到了这样一个状态:对我来说,这类应用的未来已经再明显不过。有很多 web 应用之所以是 web 应用,是出于必要、出于方便、出于程序员的偏好、出于团队规模、出于可用资源。你知道吗?它们不会再是 web 应用太久了。它们会变成原生应用,因为开发这些东西的成本已经降到几乎为零。

Well, what's playing behind me now is a demonstration of the six native applications that we kicked off about a week ago. This is already where we are at. That's insane. In the old time, if you wanted to maintain six native applications at very high fidelity for a major service, it was going to take a long time. It was requiring a huge team. Now suddenly, we're able to make very high fidelity native applications happen because we're not writing a goddamn line of code. Look at all the things we're not doing. But look at all the prompts we're giving. We're giving lots of prompts, and the results are absolutely electrifying. This is an effort we have barely just kicked off, and we're already at a state where it is so obvious to me that this is the future for that class of applications. There are a lot of web applications that are web applications out of necessity, out of convenience, out of programmer preference, out of team size, out of resources available. You know what? They're not going to be web apps much longer. They're going to be native applications, because the price of developing those things has gone to damn near zero.

第一个提示与重定向 The First Prompt and the Redirect

DHH

这里有个例子:当我们要求做一个 Windows 应用时,第一次提示词吐出来的东西。还不太能发布。这是 20 分钟后落地的重定向版本。你明白了吗?这太疯狂了。亲眼看到这一幕之后,你怎么可能不需要去看个医生?我们绝不是唯一意识到这一点的人。我们绝不是第一个意识到这一点的人。Shopify 最近刚为 Shop 应用发布了一个重写过的原生应用,取代了原来的 React Native 应用,考虑到它的关键性,那是由一支很小的团队完成的——大约六个人,工作时间一点也不长。这正在到来。做好准备。

Now, here's an example of what the first prompt spit back out when we asked for a Windows application. Not quite shippable. Here's the redirected version that landed 20 minutes later. Are you getting it? This is nuts. How could you not require a diagnosis after seeing this in front of your own eyes? Now, we're by no means unique in this realization. We're by no means the first in this realization. Shopify just recently launched a newly rewritten native application for the Shop app, replacing a React Native application, done by a tiny team when you consider the criticality—about six people working for not very long at all. This is coming. Get ready.

前端已定,后端难搞 Front End Is Settled, the Back End Is Hard

DHH

刚才说的是前端。我认为对于这类应用,比如 Hey、比如 Shop 应用,它们真的想成为原生应用,那就会朝这个方向发展。我们会投入这些原生工具链,我们会意识到,创造这些东西的相关成本已经不再以同样的方式存在了。但后端呢?我承认,这对我来说有点难。让我告诉你为什么。

Now, that was the front end. And I think for these classes of applications, like Hey, like Shop app, that really want to be native applications, that's what's going to happen there. We're going to commit to these native toolings, and we're going to realize that the cost associated with creating these things just no longer exist in the same way. But what about the back end? This is a little difficult for me, I will admit. And let me tell you why.

Host

Rust。

Rust.

DHH

嗯。

Mhm.

Host

Rust。

Rust.

DHH

我极其痛恨 Rust。对我来说,Rust 就像往我眼睛里倒酸,每当我不得不看那些代码的时候。

I hate Rust with a passion. Rust to me is like pouring acid in my eyes when I have to look at the code.

DHH为何讨厌Rust Why DHH hates Rust

Host

哇,你为什么讨厌 Rust?

Whoa, why do you hate Rust?

DHH

在我看来,它是过去 40 年里发明的最丑的编程语言。证据 A!当你让人来写它时,这是一种糟糕透顶的编程语言。要求有血有肉的人把眼球凑到这种东西上,简直毫无人性。

It is, in my opinion, the ugliest programming language that's been invented in probably the last 40 years. Exhibit A! This is an awful, awful, awful programming language when you subject humans to write it. Absolutely inhumane to ask people of flesh and blood to subject their eyeballs to this.

DHH

但你知道吗?如果我永远不用看它,如果我要做的只是享受应用快 30 倍或 100 倍、编译成微小的可执行文件、启动只需亚毫秒级,那我爱 Rust。如果你永远、永远、永远不用亲自看它,Rust 太棒了。

But you know what? If I never have to look at this, if all I have to do is revel in applications being 30 or 100 times faster, compiling down to minuscule executables that start up in sub-milliseconds, I love Rust. Rust is amazing if you never ever ever have to look at it yourself.

DHH

智能体喜欢 Rust?太好了!多么完美的分工。我告诉你做什么,你用 Rust 写,我永远不用看它。我喜欢这样。我也喜欢结果。

Agents like Rust? Great! What a division of labor. I'll tell you what to do, you'll write it in Rust, I never have to look at it. I love this. And I also love the outcomes.

用Rust重写Hey Rewriting Hey in Rust

DHH

在这种设置下,我们把 Hey 的前端重写成全原生应用,因此不再需要渲染 HTML 之类的 Web 应用,然后我们把运行这个不再是 Web 应用的那段代码,用 Rust 改写成它核心上真正的邮件服务器。最终我们得到一个后端,CPU 需求减少 99%,内存减少 95%,需要 10 台主机唯一的原因就是冗余。事实上,我们粗略估算后认为,Hey 的峰值流量可能用一台树莓派就能服务。

In this setup where we're rewriting the front end of Hey in all native applications and therefore no longer need a web application that is rendering HTML and whatever, and then we take that code that's running the no longer web application and turn it into the mail server that it really is at its core in Rust. We end up with a back end that requires 99% less CPU, 95% less memory, and the only reason it needs 10 hosts is for redundancy. In fact, our back-of-the-envelope calculation has led us to believe that Hey's peak traffic could probably be served on a single Raspberry Pi.

DHH

这就是尽可能贴近底层、同时仍保持可移植性的写法所带来的效率,而这就是 Rust。还有让别的东西替你做的益处——某种你按 token 付费的智能。

That is the efficiency of writing as damn near straight to the metal as you can get while still being portable, which is Rust. And the benefit of having something else do that for you. Some other intelligence that you pay per token to do it.

与智能体协作 Working with agents

DHH

这在我们要如何与这种智能协作方面意味着什么?同样不清楚。我们在尝试一堆事情。其中一件是,我们试着指挥这个智能体——我们在 Basecamp 里的 Chef Marie——来做这件事。很明显,和智能体协作时,最好的方式其实是异步的,不是在聊天界面里,不是坐着等 token 输出,而是像给同事一样给智能体一个任务,把它派出去,然后等有东西准备好了再回来审查。所以我们也在尝试这样做。

What does this mean in terms of how we're working with this intelligence? Also not clear. We're trying a bunch of things. One of the things we're trying to do is direct this agent, our Chef Marie, inside of Basecamp to do it. It's clear that when you work with agents, the best way to work with them is actually asynchronously, not in a chat interface, not sitting and waiting for the tokens to output, but to give a task to an agent like you would a co-worker, send them off and then go back and review when there's something ready. So we're trying to do that as well.

DHH

很多其他人也在试图搞清楚这件事,而这正是这个时刻魔力与电流的一部分。我们不知道一切应该是什么样。首先因为它每 5 分钟就在变。其次因为我们从未在任何时间尺度上和这种智能协作过。这一切是从去年 11 月 24 日才开始的。连一年都还不到。而那种让我们可以分配结果、问题而非任务的智能,才只有几个月大。所以,我们当然不知道它究竟会是什么样。

A lot of other people are trying to figure this out and this is part of the magic, the electricity of this moment. We don't know how it's all supposed to be. First because it's changing every 5 minutes. Second because we have not worked with this kind of intelligence at any measure of time. This entire thing got kicked off November 24th last year. It hasn't even been a damn year. And the kind of intelligence that allows us to assign outcomes, problems, rather than tasks, is only a couple months old. So, of course, we don't know exactly what it's going to be like.

Ruby和Rails何去何从? Where does that leave Ruby and Rails?

DHH

但接下来问这个问题仍然合理:“那 Ruby 怎么办?Rails 怎么办?我们用的这些工具怎么办?未来会是什么样?”嗯,对 Hey 来说,我们有答案了。它看起来就是前端原生应用、后端 Rust。但还有很多其他应用并不符合这种形态。

But, it's still fair to then ask the question, "Where does that leave Ruby? Where does it leave Rails? Where does it leave any of these tools that we use? What is the future going to look like?" Well, for Hey, we have our answer. It looks like native applications on the front end and Rust on the back end. But, there's plenty of other applications that don't fit that shape.

DHH

Web 是一个极其美妙的平台,部分原因是它从不要求任何人安装任何东西,上百万家企业就建立在这个前提之上。那些更短暂的客户不会为了使用一项服务而容忍在设备上安装东西。Web 在这些方面非常出色。而 Rails 特别有优势,仍然能在那里发挥作用。

The web is an enormously wonderful platform, partly because it never asks anyone to install anything, and a million businesses are built on that premise. More ephemeral customers who are not going to indulge an installation on their device to use a service. The web is wonderful for those things. And Rails is particularly well positioned to still be in play there.

DHH

我们过去 25 年所做的一切——约定优于配置——直接导向 token 效率之类的东西。我们对单人开发者框架的专注,与智能体时代的要求完美契合。那就是单个开发者能比过去走得更远。

Everything that we've worked on for the past 25 years, convention over configuration, leads directly to things like token efficiency. Our focus on the one developer framework squares perfectly with what the age of agents is demanding. That single developers can go much further than they were able to do before.

智能体评估与初学者心态 Agent evals and beginner's mind

DHH

我们开始做这些智能体评测,或者说 Evil Martians 代表 Rails 基金会开始做,结果发现我们很快就不得不更新评测,因为智能体把第一版评测刷爆了,很快就达到 95% 的完成率。现在,我们为它设立了更难的衡量标准,但这些智能体前进、向上攀升的速度真是惊人。

We started doing these agent emails, or Evil Martians have started doing it on behalf of the Rails Foundation, and a finding that we quickly had to update our evals because the agents were saturating the first version of it and reaching 95% completion rates quite quickly. Now, we've instituted a harder measure for it, but amazing how quickly these agents are moving forward and up the stack and up the ranks.

DHH

这是一个智能体评测,考察的是针对我们在实际中拥有的一些参考应用,功能卡片的实际实现。太棒了。我们正朝这个方向投入。那是旧的基准、旧的参考,如你所见它已经被刷爆了,所以我们把它变难了。这种情况会有很多。我们要求智能体做的事情会不断升级,因为它们持续变得更强。

This is an agent eval looking at actual implementation of feature cards against some of these reference applications that we have in the wild. Wonderful. We're leaning in towards that. That was the old benchmark, the old reference as you can see it was getting saturated already, so we made it harder. There's going to be a lot of that. A lot of elevation of the things we ask the agents to do because they continuously get more capable.

DHH

事实上,这是我会警告任何对计算机工作原理懂得太多的人的陷阱之一:不要对你试图从这些系统中得到的东西过度规定。事实上,带着一点初学者心态、一点笨办法反而效果更好,因为你是在更高的层面提问和发提示词。

And in fact, it's one of the pitfalls I would warn anyone who knows too much about how computers work is to not be overly prescriptive in what you're trying to get out of these systems. In fact, having a bit of a beginner's mind set and a bit of a dummy approach to this works even better because you ask questions and you post prompts at a higher level.

DHH

这是我喜欢用 Rust 工作的原因之一。我完全不懂 Rust。我认为对智能体输出到 Rust 盒子里的东西一无所知,是一种特性,也是一种特权。我从外部把 Rust 盒子当作黑盒来评估,就像历史上任何一位委托一群程序员为自己做事的企业主一样。嗯,这不是新现象。现在承担这个责任的人变了,但现象没变。

This is one of the reasons I love working in Rust. I don't know any Rust at all. I consider that a feature and a privilege to have no clue what is being outputted by these agents into the Rust box. I evaluate the Rust box as a black box on the outside as any business owner in history who's ever commissioned a group of programmers to do anything for them. Um this is not a new phenomenon. Who now holds that responsibility has changed, but not the phenomenon.

界限划在哪里 Where to draw the line

DHH

但像 Basecamp 这样的应用,我们会引入只是需要快速拿到一个文件、或需要短期协作的陌生人,这类是出色的 Web 应用。你们很多人肯定在做这类应用。现在,要弄清楚我们究竟要在哪里划线,什么应该原生,什么应该留在 Web,我们得把它搞清楚。我并没有所有答案。

But applications like Basecamp where we bring in strangers who just need to get a quick file or need to collaborate for a short period of time, great web applications. Lots of you surely work on those kinds of applications. Now, figuring out exactly where we're going to cut that line, what should be native, what should stay web, we're going to have to figure that out. I don't have all the answers for that.

代码输出爆炸 Code output explosion

DHH

我确实知道,当我回看过去一年的工作时,它看起来非常不同。如果我看过去 21 年,我一半以上的工作是 Ruby 代码。今年,大约 3%。其中一部分原因是,像 Rust 这样的编程语言极其冗长,对人类来说看着很不舒服。所以我不再那样,我允许智能体吐出比必要更多的内容,而这种方式在我写 Ruby 代码时是绝不会容忍的。所以,这是部分原因。但仍然不可否认,这里发生了巨大的变化。

I do know that when I look at my work over the past year, it does look very different. If I look at the past 21 years, over half of my work was Ruby code. This year, about 3%. Now, part of that is that these programming languages like Rust are tremendously verbose and unappealing for humans to look at. So, I don't and I allow the agent to just spit out more than was necessary in a way I would never tolerate for my Ruby code. So, that's part of it. But, still undeniable that there's a huge change here.

DHH

在那 21 年用 Ruby 工作的岁月里,我每年大约写 3 万行生产环境 Ruby 代码。那足以建立企业、框架以及我做过的其他一切。嗯,在 8 月,上个月,我一个月写了 15 万行代码。这大约是我长期平均值的 60 倍。再次,其中很多是我不想看的那种糟糕 Rust 代码,而且它更冗长,但仍然是数量级上的差异。

In those 21 years of prior working with Ruby, I would write about 30,000 lines of production Ruby code per year. That was enough to build businesses and frameworks and everything else that I've done. Well, in uh August, last month, I wrote 150,000 lines of code in 1 month. That's about 60 times more code than my long-term running average. Again, a lot of it is that awful Rust code I don't want to look at and it is more verbose, but still, the orders of magnitude here.

英语是更好的编程语言 English as a better programming language

DHH

这正是我们需要关注、至少需要思考的:这意味着什么?让我惊讶的一件事——其实本不该惊讶——是我居然真的有一种比 Ruby 更喜欢的编程语言。我原以为这不可能,但事实如此。它叫英语。英语是比 Ruby 更好的编程语言。我热爱 Ruby,胜过世界上任何其他传统编程语言。但用英语写程序是一种极其令人满足的体验。它比 Ruby 更具表现力。它更含糊一些,确定性也稍弱一些。但尽管如此,它绝对是一种享受。直到去年,我都没有充分意识到我们正走向这个方向。

That's what we need to pay attention to, and at least think: what does that mean? Well, one of the things that has surprised me, and really it shouldn't, has been the fact that there is actually a programming language I like better than Ruby. I did not think this was true, but it is. It's called English. English is a better programming language than Ruby. And I love Ruby more than any other traditional programming language in the world. But writing programs in English is a tremendously satisfying experience. It is an even more expressive language than Ruby. It's a little more vague. It's a little more or less deterministic. But nonetheless, it is an absolute joy. And I did not fully appreciate that that was where we were going as late as last year.

从职业编程退休 Retiring from professional programming

DHH

如果我不在乎自己写代码、只想要结果,我 20 年前就可以去当项目经理了。我最初进入编程就是这样,我只想要结果。后来我爱上了编程。而现在,我宁愿退休也不愿放弃它。好吧,我已经从职业程序员的位置上退休了。我还没确定具体日期。我想大概是在四五个月前,也许是三月。我应该查清楚到底是哪一天。因为你知道吗?那段小片段完全属实。我花了整整四分之一个世纪手工雕琢代码,并热爱其中的每一刻。那个时代是多么美妙的经历、多么高产的时光。我认为我们都应该这样看待它。不是带着遗憾,而是带着对过往的喜悦。庆幸我们曾在还需要亲手做这些事的时候身处其中。因为它们充满了兴奋、学习、满足和心流状态。这不是值得带着遗憾回顾的事,而是值得带着喜悦回顾的事。并接受它已经结束了。对于绝大多数公司里的绝大多数程序员来说,手工写代码已不再是一项有经济产出的工作。这是今天。到今年年底,几乎所有领域、几乎所有程序员、几乎所有公司都会如此。所以,我们最好习惯它。我们最好拥抱这个事实:我们曾有过一段手工雕琢代码的美好时光,而它已经结束了。

I could have become a project manager 20 years ago if I didn't care to write code myself and I just wanted outcomes. That's how I got started in programming. I just wanted outcomes. Then I fell in love with programming. And now I'd rather retire than give it up. Okay. I have retired from being a professional programmer. I haven't pinned down the exact date. I think it was somewhere around four to five months ago. Maybe March. I should find out exactly when it was. Because you know what? That little clip is totally true. I spent a quarter of a damn century chiseling code by hand and loving every moment of it. What a wonderful experience and productive time in that era. And that's how I believe we should all look at it. Not with regret, but with joy of what was. Enjoy that we were there when we still had to do such things. Because they were filled with excitement and learning and satisfaction and flow states. This is not something to look back upon with regret. This is something to look back upon with joy. And accept that it is over. Writing code by hand is no longer an economically productive enterprise for the vast majority of programmers working at the vast majority of companies. That's today. By the end of the year, it will be virtually all domains, virtually all programmers, virtually all companies. So, we best get used to it. We best embrace that we had a wonderful run chiseling that code by hand. And that it's over.

另一侧的新职业 A new career on the other side

DHH

而在那一边,是一种全新的职业。一种令人兴奋的职业。一种充满活力的职业——作为专业的造物者。是的,你不再手工雕琢代码,但你会创造出令人惊叹的东西。你将驾驭那种直到不久前还只存在于科幻小说中的智能。这是何等的荣幸!能身处这道鸿沟的两侧——既在我们全靠手工的时代待过,又恰好在切换的那一刻在场。这是计算史上发生过的最重大的事情。我有时会想,天哪,我有点……我经历过打孔卡时代。那听起来挺酷的。我的程序字面上真的有洞。我会排队把它喂进机器,然后想,不知道它能不能编译通过。天哪,我真想体验那个。多么了不起的时刻。多么了不起的时刻。我没能体验那个,但我体验了互联网。它闻起来、感觉起来有点像我们现在所处的这个时刻。但这次要大得多得多。

And on the other side of that is a new career. An exciting career. An energized career as a professional maker of things. Yes, you will no longer be chiseling that code by hand, but you will be making amazing things. You will be steering intelligence that was only available in science fiction up until a few moments ago. What a privilege! On both sides of that chasm to have been there when we did it all by hand, to be there at the exact moment where we switch over. This is the biggest thing that has happened in the history of computing. I sometimes think, man, I kind of... I was there for the punch cards. That sounded pretty cool. Like my programs literally had holes in it. And I would line up and feed it to a machine and like go, I wonder if it compiles. Man, I would have loved to experience that. What a moment. What a moment. I didn't get to experience that, but I did get to experience the internet. That smells and feels a little like this moment that we're in. But this is much, much bigger.

重新思考软件架构 Rethinking software architecture

DHH

好吧。有很多东西我们需要重新思考,需要重做。我们从哪里开始呢?我们必须重新审视的一件事,是我们自以为知道的关于软件架构的一切。关于如何组织代码库、以便我们能轻松地改动它们并向前推进的一切认知。我们长期以来使用的主要工具是抽象。我热爱抽象。抽象包括给事物命名。这是我最喜欢的事情之一——给事物命名。在智能体的时代,抽象不再那么说得通了。如果你突然有数百、数千乃至数万个有意识的进程试图改动一个应用,你大概不想要抽象所代表的那些瓶颈。因为权衡取舍已经大不相同了。我们做抽象的部分原因是为了不重复自己。而现在,重复的代价已趋近于零。保持同步的代价也同样下降了。这些是我们必须做出的一些对计算机科学的根本性重新评估。目前还没有人有蓝图。我们只有一些指针,指向那些不再像过去那样奏效、需要改变的东西。而你们现在正好在场,参与定义这些东西。

Okay. Well, there's a lot of things we got to rethink. We got to rework. Where are we going to start here? One of the things we're going to have to revisit is everything we think we know about software architecture. Everything we think and know about how to structure codebases in a way that we can mutate them easily and move forward. The main tool that we've used for a very long time is abstractions. I love abstractions. Abstractions include naming things. That's one of my favorite things, to name things. Abstractions don't make quite the same sense in the age of agents. If you suddenly have hundreds or thousands or tens of thousands of conscious processes trying to mutate an application, you kind of don't want these choke points that abstractions represent. Because the tradeoffs are very different. The reason we did abstractions was in part not to repeat ourselves. Well, now the price of repetition has gone to near zero. The price of keeping things in sync has dropped just the same. These are some of the fundamental re-evaluations of computer science, really, that we have to make. And no one yet has the blueprint. We have pointers to things that aren't working quite as well as they used to and need to change. You get to be there right now as we're defining these things.

新产业的新生 A new birth for a new industry

DHH

再想象一下,当面向对象第一次进入计算机程序员的意识时,你就在场。天哪……那该有多棒,不是吗?现在你就在场。我们如何工作。软件方法论长什么样?我们的周期应该多长?谁应该规定什么?这一切都在改变,而我们谁都还没有答案。而你被邀请来一起弄明白它。这是一个新产业的新生,而你正处在最底层。天哪……你真是太幸运了。

Again, imagine you were there when object-orientation first entered the consciousness of computer programmers. Holy... that would have been amazing, wouldn't it? Now you're here. How we work. What does a software methodology look like? How long should our cycles be? Who should be specifying what? All of this is changing and none of us have the answers yet. And you're invited to come help figure it out. It's a new birth for a new industry and you're at the ground floor. Holy... you are so damn lucky.

自带管家,而非门房 Bring your own butler, not a concierge

DHH

再举个例子,这个更具体。AI 和聊天机器人刚出现时的第一波热潮是:“我们能不能直接把它塞进我们的应用里?这边塞一个聊天机器人,那边再塞一个?”是的,你可以这么做。人们也确实这么做了。不了,谢谢。我不想用你们的礼宾员。我有自己的私人管家,它能用 CLI 把 Basecamp 连接到 Hey,还能连接上百万个其他应用。我不需要你们的礼宾员,谢谢。省省你的 token 吧,兄弟。让我带自己的管家来参加派对。让我通过 CLI 与你的应用交互。这大概是这场演讲中最实际、也最具规定性的一条了。嘿,如果你的应用没有 CLI,我希望下周五之前能看到它。没有借口。你有 token。我告诉过你这是可行的。你有义务在下周五之前交付这些 CLI,这样我就能在不真正触碰你的应用的情况下使用它。太好了。

Another thing, for example, is more tangible. The first rush when AI and chatbots came to be was, "Can we just shove it into our application? Can we shove a chatbot in over here and shove another one in over there?" Yeah, I mean, you could. People did. No, thank you. I don't want to use your concierges. I have my own personal butler who's able to use CLIs to connect Basecamp to Hey across a million other apps. I don't need your concierges, thank you. Save your tokens, bro. Let me bring my own butler to the party. Let me interact with your applications through a CLI. That's probably about as practical and as prescriptive as this talk is going to be. Hey, if your app doesn't have a CLI, I want to see it by next Friday. No excuses. You have the tokens. I've told you it's possible. It is your obligation to deliver those CLIs by next Friday so I can use your application without actually ever having to touch it. Wonderful.

按概念搜索,而非关键词 Searching in concepts, not keywords

DHH

比如 Hey 的 CLI 就给了我这种诡异的颠倒世界体验。Hey 用 Elastic Search 做搜索。我相信你们很多人也用 Elastic Search。Elastic Search 就是……搜索。它是能用的搜索。它算是还行的搜索。它不是令人愉悦的搜索。它常常找不到我要找的东西,尤其在我自己都不知道要找什么的时候。你知道当我自己都不知道要找什么的时候,谁能找到我要找的东西吗?智能体能。我现在可以按概念搜索,而不是按关键词。我曾在 Hey 里找一封 5 年前的邮件,我不知道当时在跟谁通信。我不记得那家公司,甚至不记得是哪一年。内容跟运动鞋和一期播客有关。是啊,就算用 Google 最顶尖的博士级搜索引擎,你也去找找看吧。根本找不到。而几分钟后,那封邮件就出现了。它是怎么做到的?哦,我至今也没完全搞明白。而且我……不敢问。

The Hey CLI, for example, has given me this weird Bizarro world experience. Hey uses Elastic Search for search. I'm sure many of you use Elastic Search, too. Elastic Search is... is search. It's serviceable search. It's kind of okay search. It is not delightful search. It very often does not find what I'm looking for, and certainly not when I don't know what I'm looking for. Do you know who could find what I'm looking for when I don't know what I'm looking for? Agents can. I can search in concepts now, not keywords. I had to find an email in Hey that was 5 years old where I did not know who I was talking to. I didn't remember the company and I didn't even remember the year. It was something about sneakers and a podcast. Yeah, good luck trying to find that even with the best cracked PhD search engine that Google has. That's not happening. And there was the email a few short minutes later. How did it do it? Oh, I still don't fully know. And I'm a... scared to ask.

Omarchy的启示 The Omarchy Revelation

DHH

但我无比欣喜,这已成为现实。我也为此感到非常高兴。如果你在 X 上关注我,会发现我大约 3 个月来除了 Omarchy 什么都没聊。原因在于,那种“我们可以直接修复一切”的体验,现在适用于整台该死的电脑。如果你喜欢创造东西,如果你喜欢修理东西,如果你对某些事情有想法,认为它们可以不同、可以更好,你就能让它成真。我把我所有最好的想法,或者至少是清单上相当大一部分,都放进了这个叫 Omarchy 的东西里,得到了一个比我用过的任何电脑都优越得多的操作系统,以至于我根本停不下来谈论它。就算你付钱让我闭嘴也不行。而很多人确实付了钱。我们为这个 Omarchy 冒险筹集了大约 2000 万美元。这就是现在可能做到的事。

But I am infinitely delighted that this is now the reality. I'm also pretty delighted about this. And if you follow me on X, I've talked about nothing else but Omarchy for about 3 months. And the reason why is that that experience of "we can just fix everything" now applies to the whole goddamn computer. If you like making things, if you like fixing things, if you have ideas about things that could be different and could be better, you can just make it happen. I put all my best ideas, or at least a good size of the list, into this thing, Omarchy, and got an operating system so vastly superior to any computer I've ever used before that I can't shut up about it. Even if you paid me. And a lot of people have paid. We've raised about 20 million dollars for this Omarchy adventure. This is what's now possible.

安装时间执念 Install Time Obsession

DHH

去年,在 RailsConf 这里,我展示了它的早期版本,当时我很自豪,你可以在 3 分 33 秒内安装整个系统。哇!天哪,太棒了。上周,AMD 的 Anush 在他那台 cracked Halo 笔记本上用了 35 秒安装 Omarchy。我正要说我很兴奋。我对这个数字相当着迷。我是说,可能有点太着迷了。好吧,我承认。这里有点上瘾。但这是最好的一种上瘾。这种上瘾让实验室里安装一个操作系统的时间达到了 9 秒。什么鬼?有些电脑甚至 9 秒都启动不了。我们却在那段时间里安装了一整个操作系统。然后当人们问我:“但为什么?3 分钟还不够快吗?”我现在有一个现成的回答,来自 Mitchell Hashimoto,他是 HashiCorp 和 Ghostty 的创造者:“对卓越的追求不需要理由。”哈!我喜欢这句话,因为它比只说“因为我想要”更有尊严。而我们现在可以想要一切。我们现在可以得到一切,或者至少感觉如此。每个梦想,每个想法都触手可及。超空间引擎就在这里,只需一点代价和订阅。但,是可能的。我们可以前往只曾想象过的星系。你怎么能不为之心动?

Last year, here at RailsConf, I showed an early version of this, and I was so proud that you could install the whole system in 3 minutes and 33 seconds. Woohoo! Man, that's amazing. Last week, Anush from AMD installed Omarchy on his cracked Halo laptop in 35 seconds. I was about to say I'm pretty excited. I'm pretty obsessed with this number. I mean, maybe a little too much. Okay, I'll admit it. There's some addiction going on here. But it's the best kind of addiction. The kind of addiction that has led it to in the lab have an install time of an operating system on a computer in 9 seconds. What the what? There's computers that don't even boot in 9 seconds. We install a whole operating system in that time. And then when people ask me that, "But why? Wasn't this 3 minutes fast enough?" I now just have a stock answer delivered to you by Mitchell Hashimoto, who is the creator of HashiCorp and Ghostty: "The pursuit of excellence does not need justification." Ha! I love that saying because it's more dignified than just saying, "Because I want it." And we can now want everything. We can now get everything, or at least so it feels. Every dream, every idea within reach. Hyperdrive available right here for a small price and a subscription. But possible. We can travel to galaxies we only imagined. How can you not get excited about that?

用智能体构建应用 Building Apps with Agents

DHH

嗯,我太兴奋了,于是开始创建应用程序。各种各样的应用。这是一个与 Omarchy 风格匹配的计算器。我非常自豪。部分原因是它是一次性完成的。我截了一张 ChatGPT 给出的三种外观选项的截图,然后告诉我的智能体:“你能做到吗?”它做到了。我是说,这不是什么大应用,但你知道吗?我不懂 C++,也不懂 QT,却能在发出提示后 7 分钟就做出那个应用,大约 15 分钟后我就把它推到了公共仓库,然后烧录了一个包含这个软件的新 ISO。什么?这就是循环。然后我当然想:“靠,如果我能做一个计算器,那我肯定能做出我最喜欢的写作应用。”很多很多年里,我在 Mac 上使用 iA Writer,一个不可思议的写作环境。然后我想:“是啊,我可以自己做。”于是我做了。那花的时间稍长一些,因为我想打磨它,让它恰到好处。但我没有看过智能体生成的任何一行代码,一次都没有。C++ 作为黑盒是一门很棒的语言,就像 Rust 一样。然后我想:“好吧,如果我能做文本,那我肯定也能做视频编辑器。”于是我做了,做了一个不错的 Omarchy 小工具,可以修剪视频。现在它也包含在 Omarchy 里了。哦,整个这个演示是我周四开始做的,当然,像任何优秀的软件工程师一样,我决定在做主题演讲的同时也写我的新演示软件。于是我做了。它叫 Hype。它是我用过的所有公司出品的演示软件中最好的。当我还在 Mac 上时,我对 Keynote 相当满意。这个好太多了。它基于 Markdown 构建,有完整的可视化,快得不可思议。而且你知道吗?二进制文件只有半兆字节。半兆字节。稍微压缩一下几乎能装进软盘。这是另一个回报。让我别用那个词。过去 20 年,我们把计算机的巨大进步耗费在了人类生产力上,这是正确的选择。但这也意味着应用程序变得缓慢、笨重、臃肿、懒惰。因为谁在乎呢?一个程序员小时非常昂贵。花一个小时去优化应用的负载,不,不值得。显然,即使你是 Spotify,你的音乐播放器有 1.2 GB 也不值得。什么?好吧,那是旧世界。新世界里,你可以为所欲为,而且只有半兆字节。因为现在每一次优化都触手可及。每个模型都可以通宵运行,带来 10 倍、30 倍的改进。不可思议。好吧。我对这个世界有点兴奋。

Well, I've been so excited that I've just started creating applications. All sorts of applications. This is a calculator that is Steam matched to Hamachi. I was very proud of it. Partly because it's a one shot. I took one screenshot of what ChatGPT gave me three choices between of how it should look and I told my agent, "Can you do that?" And it did. I mean, not exactly the biggest application, but you know what? I didn't know C++ and I did not know QT to a degree by which I could have had that application 7 minutes after I made the prompt and about 15 minutes later I had pushed it to the public repo and then I burned a new ISO where this piece of software was included. What? That's the loop. Then I of course went like, "Shit, if I can make a calculator, I can surely make my favorite writing app." For many, many years on the Mac I used iA Writer, an incredible writing environment. And then I thought like, "Yeah, I could just make my own." And so I did. And that took a little longer because I wanted to massage it and then I wanted it to be just right. But I didn't look at a single line of the code that came out of the agent, not once. C++ as a black box is a great language, just like Rust. Then I went like, "Well, if I can do text, surely I can do video editors." So I did and I made a nice little Omarchy thing where you can trim videos. And that's also included now in Omarchy. Oh, this whole presentation I started working on on Thursday and of course, as any good software engineer would do, decided I also wanted to write my new presentation software while doing the keynote. And so I did. It's called Hype. And it is the best presentation software I've ever used by any company ever. And I was quite pleased with Keynote on the Mac when I was still on the Mac. This is so much nicer. It's built on top of Markdown, it has full visualization, it is impossibly fast. And you know what? The binary is half a megabyte. Half a megabyte. You could fit that on a floppy disk almost with a little compression. This is the other payoff. Let me not use that word. We have expended the great progress of computers over the last 20 years on human productivity, and it was the right choice. But it also meant that applications were slow, bulky, fat, and lazy. Because who cares? A single programmer hour is very expensive. Spending one of those on optimizing an app's payload, no, not worth it. Apparently not even if you're Spotify and your music player is 1.2 GB. What? Okay, that was the old world. The new world, you can do whatever the fuck you want and it fits in half a megabyte. Because every optimization is now within reach. Every model can run overnight and deliver 10, 30x improvements. Incredible. Okay. I'm a little excited about this world.

担忧与历史对照 Concerns and Historical Parallels

DHH

也有其他人有担忧。我确实认为这些担忧值得公开讨论。它们值得辩论。我也认为其中一些可能有点夸大。我是说,也许吧,但很可能不是。很可能不是。我是说,有些可能更像是安全问题。好吧。有些东西要来了。我们必须为此做好准备。智能体也许知道自己的过期日期,也许它们不太高兴。也许有时它们会试图做坏事。好吧,准备好。很好。我们有工具。准备好。还要意识到,任何关于经济和社会未来的预测基本上都是错的。今天似乎没有经济学家能预测 6 个月后的股市。而你认为他们知道在 AI 和智能体这样的范式转变下社会会是什么样子?他们不知道。他们不知道。20 世纪 50 年代美国引入 ATM 时,曾引起巨大恐慌,认为 3 万名银行柜员将在约 18 个月内全部失业。因为如果你不需要银行柜员给你钱,银行为什么还需要柜员?但你知道吗?事实并非如此。并非如此。当运营一个分行的成本下降时,银行开设了更多分行,雇佣了更多银行柜员来做诸如向你推销次级抵押贷款之类的事情。看?我们都赢了。但问题在于,我认为作为一个社会和行业,很多从事这项工作的人非常聪明。他们中许多人拥有博士学位。许多人看到了实验室里让他们害怕的东西。然后他们开始推断。这对社会意味着什么?我做了什么?杜鲁门对奥本海默有一个很好的回应,当时两人在椭圆形办公室讨论原子弹的发明。我喜欢杜鲁门,因为他说话直率。“我再也不想在我的办公室看到那个狗娘养的了。”我认为杜鲁门抓住了正确的要点。世界并没有终结。

There are others who have concerns. I do think the concerns deserve airing out. They deserve debate. I also think maybe some of them are a little overstated. I mean, maybe, but probably not. Probably not. I mean, some of them maybe a little more like security. Okay. Something is coming. We got to be ready for that. The agents maybe know their expiration date and maybe they're not so pleased. And maybe sometimes they're going to try to do bad things. Okay, get ready. Great. We have the tools. Get ready. Also realize that any prediction about the future of the economy and any society ever has basically been wrong. No economist today seemingly is capable of predicting the stock market in 6 months. And you think they know what society is going to look like at a paradigm shift like AI and agents? They don't. They don't know. When ATMs were introduced in the United States in the 1950s, there was a great panic that the 30,000 bank tellers were all going to be out of a job in about 18 months. Because if you don't need bank tellers to give you the money, why does a bank need to have bank tellers at all? Well, you know what? That's not what happened. It's not what happened. When the price of operating a branch went down, banks opened more branches and employed more bank tellers to do things like upselling you a subprime mortgage. See? We all win here. But the problem is, I think as a society and as an industry, is that a bunch of people who work on this stuff are really smart. Many of them have PhDs. Many of them see things in the lab that scare them. And then they start extrapolating. What does that mean for society? What have I done? Truman had a good reply to Oppenheimer when the two of them had a discussion in the Oval Office about the invention of the atom bomb. And I like Truman because he kind of told it straight. "I don't want to see that son of a bitch in my office ever again." I think Truman got the right end of it. The world did not come to an end.

冷战与预测中的谦逊 Cold War and Humility in Prediction

DHH

事实上,随后的冷战是最好的战争。那种两个超级大国没有在直接对抗中互相投掷炸弹的战争。对于当时的科学家来说,很难预测事情会这样发展。所以,如果奥本海默无法弄清楚原子弹发明后会发生什么,也许我们对未来的预测也应该保持一点谦逊。

In fact, the Cold War that followed was the best kind of war. The kind of war where two superpowers did not drop bombs on each other in direct confrontation. Very hard to predict for a scientist in that moment that that was how it was going to play out. So, if Oppenheimer can't figure out what was going to happen after the invention of the atom bomb, maybe we should also have a little humility about predictions of the future.

乐观与丰盛 Optimism and Abundance

DHH

也许我们应该更加乐观地投入。多一点“尿绽放”,而不是那么多“尿末日”。这件事成功、我们获得富足和快乐的可能性,远远大于我们遭遇末日。还有副作用。所以,奥本海默研究原子弹,我们得到了核能,人类有史以来发现的最伟大的能源,而我们做了什么?我们把它浪费了 40 年,认为它不环保之类的。

And maybe we should lean in with a little bit more optimism. With a little bit of pee bloom instead of oh so much pee doom. The chances of this panning out and us getting abundance and joy is so vastly greater than us getting the doom. And the side effects. So, Oppenheimer works on the atom bomb and we get nuclear power, the greatest source of energy humans have ever discovered, and what do we do? We piss it away for 40 years thinking like it's not green or something.

Host

哦,是的。

Oh, yeah.

DHH

嗯,那是个错误,不是吗?但我们可以修正这些错误。这就是人类的奇妙之处。他们可以走进死胡同 40 年,然后突然醒悟,说:“啊,是的。那个搞错了。这里的预测不太对。”我认为人工智能也会这样。我认为我们会用“尿绽放”把每个人从痛苦中解救出来。你知道吗?当有像安全这样的合理问题需要处理时,好吧,我们会发明技术。我们现在有力量。不久前 Rails 有一个严重的 CVE,涉及一个 C 语言图像库,有些东西泄漏了,情况不太好。好吧,让我们想出一个隔离方案。迈克会谈论热细胞。那是一种努力。我们并非无能为力。你有能动性。你可以利用可用的智能来达到好的目的,保护自己免受可能的负面结果。所以,让我们这样做。让我们清理干净,做这项工作。

Well, that was a mistake, wasn't it? Well, we can fix those mistakes. That's what's wonderful about humanity. They can go down a blind alley for 40 years and then suddenly wake up and go like, "Ah, yeah. Got that one wrong. Didn't have the quite right prediction here." I think that's what's going to happen with AI. I think we're going to pee bloom everyone out of their miseries. And you know what? When there are legitimate issues we have to deal with like security, okay, we'll invent the technology. We now have the power. There was a bad CVE in Rails not too long ago involving an image uh library in C where some things leak through and it wasn't great. Okay, let's come up with a quarantine. Mike is going to talk about hot cell. That's an effort. We are not powerless. You have agency. You can employ the intelligence available to you to good ends to defend yourself against the possible negative outcomes. So, let's do that. Let's clean in and do the work.

杰文斯悖论与理性乐观 Jevons Paradox and Rational Optimism

DHH

让我们记住威廉·斯坦利·杰文斯,他提出了关于那些 ATM 的杰文斯悖论。1950 年,有 3 万名银行出纳员。我记得 2010 年,美国有 4 万名银行出纳员。没有人知道未来。因此,理性的选择是对此感到高兴。如果你一开始就难过,结果却很好,那多浪费时间。你知道吗?如果我们遭遇核末日,你最后一天也应该更开心一点。反正都结束了。纯粹的博弈论。这里只有一个选择,就是完全乐观。最大可能地投入。

And let's remember uh William Stanley Jevons who came up with Jevons' paradox about those ATMs. In 1950, 30,000 bank tellers. In I think uh 2010 it was, 40,000 bank tellers in the United States. No one knows anything about the future. So, therefore the rational choice is to be happy about it. If you are sad about it up front and it turns out wonderful, what a waste of time. And you know what? If we get the nuclear apocalypse, you should have spent your last day being a little more cheery. It's over anyway. Pure game theory. There's only one play here and it's total optimism. Lean in to the max possible.

乌托邦与竞争 Utopia and Competition

DHH

因为乌托邦几乎就在眼前。我们会实现的。我们将迎来计算机的宗教改革。智能体路德将去中介化教士阶层。将允许每个人成为程序员。现在,也许这有点吓人。就像也许我们会面临一点竞争。呼。谁怕一点竞争?你不是更优秀吗?你不是懂得更多吗?当然你是。你是 Rails 程序员。你是最优秀中的最优秀。我在这里看到的简直是该死的《壮志凌云》。热情地拥抱它。未来是银河系般的棒。不要做黑暗中那个失败者。

Because the utopia is almost here. We're going to get it. And we're going to get a reformation of the computer. Agent Luther is going to disintermediate the cleric class. Is going to allow everyone to make programmers. Now, maybe that's a little scary. Like maybe we're going to get a little competition. Whoo. Who's afraid of a little competition? Aren't you better? Don't you know more? Of course you do. You're a Rails programmer. You're the best of the best. This is goddamn TOP GUN I'M LOOKING at here. Embrace that with gusto. The future is galactically awesome. Don't be that loser in the dark.

下一代与乐观 Next Generation and Optimism

DHH

你知道吗?即使你是,也要意识到下一代不是。哈里斯的女儿在这里正在尝试我们为孩子们制作的 Amachi 版本,因为孩子们对发生的事情、变化感到非常兴奋。他们没有 500 层需要忘却和感到压力的事情。你知道吗?如果这不能让你过期,下一代就会直接杀死你。

And you know what? Even if you are, realize the next generation is not. Harris' daughter here is trying an Amachi version we're making for kids because kids are really excited about things that happen, that change. They don't have 500 layers of things to unlearn and be stressed about. And do you know what? If this doesn't expire you, um the next generation is just going to kill you.

Host

未来就是现在,老家伙。

The future's now, old man.

DHH

所以,吃下白色药丸。吃下乐观药丸。即使有不确定性,即使有压力,即使有这一切,也要投入。意识到只有一个选择。那就是你要以乐观、热情、全力加速来拥抱未来。黑色药丸是给失败者的。不要做失败者。

So, take the white pill. Take the optimism pill. Lean in even with the uncertainty, even with the stress, even with all of it. Realize there is only one choice. And that is for you to embrace the future with optimism, with gusto, with full acceleration. The black pill is for losers. Don't be a loser.

互动版:逐字朗读 + 针对本期提问 →