科技 · 2026-04-28Technology · 2026-04-28

回归代码A Return to Code

Naval:我不太确定这个类比是否成立,因为正如人们所说,AI(人工智能)是"锯齿状智能"——它在某些方面极其聪明,在另一些方面又极其愚蠢。而且它的结构与人类截然不同:当你使用 Claude 时,你用的是同一个 AI 模型——即使你同时运行了 10 个实例也是如此。所以 10 个实例互相交谈,并不能像 10 个人互相交谈那样真正改进它的思考,因为那 10 个人是在 10 个不同的数据集上训练出来的。

人类天生就极富创造力,思考从不循规蹈矩。而 AI 智能体都是在同一数据分布上训练出来的,它们运行的实际上是同一个模型。这就像 10 个拥有相同大脑、相同数据集的人互相交谈。诚然,单靠热力学层面的随机性,它们可能会冒出一些不同的想法,得出略有不同的结果,但大体上它们的思路是一样的。所以,当你让 10 个智能体互相交谈时,你做的不过是往问题上多扔了 10 倍的 token。这就好比说:如果你需要,就多花 10 倍的时间。

现在也有一些不同的模型,比如 Codex、GeminiGrok Code,它们的训练方式略有不同。差异不算大,但确实存在,因此它们可能会产生一些不同的洞见。

Claude 通过名为 Artifacts 的系统提供了非常出色的可视化呈现,而且 Claude 非常擅长与我当前的水平对话。它能根据你的提问和对话内容,精准判断你能理解到什么程度、你在什么层次上提问,然后在这个层次上与你顺畅交流。

ChatGPT 依然是元老级的 OG,各方面都非常出色。

Gemini 非常擅长搜索,因为它底层有 Google 的爬虫数据。不过它是个让人抓狂的产品——在 App 上经常超时、断连,还会忘记上下文。但它速度很快,搜索索引也很强大。所以如果我问的问题本质上是个搜索类问题,我就会用 Gemini。

Gemini 还能访问 YouTube。所以如果你觉得答案藏在一段 YouTube 视频里——而 YouTube 视频浩如烟海——那么 Gemini 就拥有 YouTube 的数据优势。所以 Gemini 其实是靠数据优势取胜的。在我看来它不是最好的模型,但它拥有最好的底层数据。

Grok 是我可以指望它说真话的那个。它就像最不被阉割、最不被削弱的模型。它能访问 X,所以非常擅长处理新闻,也非常擅长技术问题。所以如果你问的是科学/数学领域里深奥的难题,我认为 Grok 其实相当出色——不是说其他模型不行,只是我觉得 Grok 在这方面出类拔萃。而这恰恰反映了创造、训练并驱动这些模型的各家公司的偏见。

目前,四大前沿模型各有各的用武之地。

AI 渴望取悦于人

Naval:我确实会让它们互相挑毛病。比如,我把它和我的 GitHub 连接起来,每次我提交一段新代码——比如是 Claude 写的——Codex 和 Gemini 就会在每个 pull request(拉取请求)中自动介入。

Pull request 这个名称有点名不副实,其实就是你把代码推送到主仓库,相当于宣告"这段代码可以审查了,可以合并进主代码库了"。假设你一直在本地用 Claude 写一段代码,然后把它推到主仓库,这就提交了一个 pull request。你可以这样设置:让 Gemini、Codex、Grok 等其他智能体自动介入并审查这个 pull request。

然后它们会说:"哦,架构上这个东西你应该改一改"之类的。这是一种让它们互相交流的方式,相当于给 AI 们设一个议事会——一张 AI 圆桌。但我发现这并没有想象中那么有用。这些 AI 之间依然存在大量的群体思维(groupthink)。如果你和它们一起编码,并朝着某个答案推进——比如你自认为知道答案是什么——它们很少会反驳你。你得错得相当离谱,它们才会站出来反对。

它们一心想着取悦你,而且我认为它们并没有任何属于自己的、长久稳定的心智理论(theory of mind)。所以它们总是不断地向你靠拢、迎合你,最终会找到你想要的那个答案。所以如果你认为答案在某个方向,哪怕只是轻轻推一下这些模型,它们也都会找到大致相同的答案,因为是你把答案引到了它们面前。它们非常容易被牵着走。

我注意到的一点是,随着代码库越来越复杂、越来越庞大,管理起来也越来越困难,因为整个代码库已经装不进模型的上下文窗口了。模型脑子里只能装下一定量的数据。目前最先进的水平大约是一百万 token,这在未来会被视为笑柄。

你可以把它粗略地理解为:一百万个 token 约等于一百万词。这是因为底层的 Transformer 注意力机制要想正常工作,其复杂度是上下文 token 数量的平方。所以如果是 100 万 token,那意味着上下文窗口的复杂度量级达到了一万亿 token——因为那是 100 万的平方。

所以随着代码库变大,上下文窗口会不够用。模型无法再把所有内容都记在内存里。于是它们开始猜测、近似,开始压缩上下文窗口,开始忘记主线、迷失方向。它们会修错地方,同一个 bug 修五遍;问题明明在别处,它们却去架构上打个补丁了事,这时你就得去引导它们。

所以当你面对越来越复杂的代码库时,提供指引的责任就落到了操作者身上,比如你得说:"其实这里,我觉得我们应该把整个东西重新架构一下。"

它们也会做出一些蠢得令人难以置信的事情。比如,如果你没盯着看,任由文本滚动过去,它们偶尔会用"干脆删掉这个用例"或"直接毁掉这个功能"的方式来"修"bug。或者它们会做某件明显是 hack(临时补丁)的事,这时你就得叫停:"嘿,那是个 hack。"

顺便说一句,这种事我经常干。

我会叫停模型,对它说:"不,那是 hack,是补丁。去架构层面把它修好。"有趣的是,模型总是会说:"哦,对不起,你说得对,那确实是个 hack。"

即使那并不是 hack,模型也会说:"你说得对,那确实是个 hack。"

所以模型总是试图取悦你,而它自己并不明白更好的做法。从这个意义上说,它有点像一条狗。如果你带着狗去打野鸭,它抓鸭子的本事可能比你强,但它终究是条狗。所以如果你指向一只不是鸭子的鸟,它可能照样会把那只鸟打下来。因此你必须引导它,这确实需要大量的操作监督。

所以,啰嗦了这么多,归根结底一句话:你还是得引导这些模型。让它们互相交谈并不能解决问题。你必须亲自参与架构、调试和功能开发,并且密切留意。不过,眼下"人类操作者 + 最先进的编程模型"这种组合,确实能产出惊人的成果。

现在已经可以完全一次性生成(one-shot)简单的应用了。比如一个基础的任务清单、一个基础的游戏克隆——你都可以一次搞定:只需一条提示词,另一端就能输出一个相当不错的东西。

所以你可以看到这件事的发展方向。最终,一旦它们拥有足够的数据,就能一次性生成非常复杂的应用,那将是我们要进入的一个截然不同的世界。

为什么是数学和编程?

Naval:那么,编程有什么特质让模型在其中表现格外突出呢?

原因就是数据海量,而且在训练模型时非常容易验证"你干得好不好"。因为代码必须能编译、能运行。你还可以在另一边预先写好简单的测试,用来判断"你写的代码通过测试了吗?它完成该做的事了吗?"

所以编程恰好属于那种很容易训练模型的领域。

数学其实也类似:数据海量——有大量已解决的问题——而且输出非常容易验证。所以在我们拥有大量数据且验证手段良好的领域——自动驾驶也是其中之一——这些模型的表现极其出色。

而在数据不多的领域——也就是全新的领域——模型就不会表现太好,这依然是人类和创造力的机会。至于难以验证的领域,比如创意写作——谁来判定什么是好的创意写作、什么不是,什么是垃圾内容(slop)、什么不是呢?——这些模型就表现平平了,因为你很难建立一个闭环:让模型输出海量内容,再由算法立即打分,而无需人在回路中评判"这个好,这个坏"。

比如,你要是想用这些模型搞创意写作,它们会输出海量的内容,可以无限地生成文章。可另一端谁来评判好坏呢?就算你雇一些低薪的人,像呼叫中心那样坐在那里说"这个好""这个坏",那也顶多跟这些人的品味一样好。

我认为这些编程模型近来变得如此出色,原因有好几个:其中之一是它们在进行近乎递归式的训练——一个模型帮助改进下一个模型。但我认为更大的原因可能只是:过去几个月里,大量顶尖软件工程师开始使用这些模型,他们的品味正在反馈回模型之中。所以你得到的不仅有他们的代码,还有他们关于"什么好、什么不好"的品味。

要改进这些模型,你需要高品味的反馈闭环。而这类闭环比看上去要难建立得多。

在某些领域这是可行的,而在另一些领域,很难看出这条路怎么走得通。

苹果统治地位终结的开端

Naval:显而易见的部分是:对,你去开发你的应用,挺好。不太显而易见的部分,也就是再高一级的那些玩法,对软件工程师来说简单得可笑,但对非工程师或很久没写过代码的人来说,想想还挺有意思的。

其一,我建了自己的应用商店。如果我想用一个应用,我就直接在手机上打开 Claude。我可以操作一个运行在我台式机上的远程终端,或者干脆在云端使用 Claude。

它可以连接 Xcode

我给它两行描述。它帮我构建一个应用,发布到我的应用商店。我打开应用商店,应用就在那里。我点一下安装,30 秒后,我的手机里就有了一个能用的应用。

这太神奇了。你甚至可以正在饭桌上跟人聊天,对方描述一个他想要的应用,你转述给 Claude,五分钟后你就能在手机上把这个应用展示给他看。

这就是为什么我说,这可以说是苹果终结的开端:因为苹果靠的是他们的操作系统和应用比别人的更好。硬件嘛,确实更好,但硬件撑不起他们的利润率,也撑不起他们的垄断(或者说准垄断)。所以,当你所有的交互都开始经由 Claude、Codex 或其他智能体时,当你一整天做的事不再是打开 Uber 应用,而是说一句"帮我叫个 Uber",或者不再打开健身应用,而是说"我的健身应用呢?帮我记录锻炼,别出任何差错"——对吧?

到那时你只是在和智能体对话,一旦如此,对手机的需求就会变得越来越小。

也许还有少数银行应用和政府应用没有迁移过来,也没有合适的 API。但这些智能体根本不需要 API,它们可以当场自己搞明白并创建出自己的 API。

用例不再是"你和你的 iPhone 或 Android 手机交互",而是"你直接和 AI 模型交互"。而现在苹果用的是 Gemini——Google 的 AI 模型。那有什么区别呢?我还不如直接用一部 Android 手机,因为在那种情况下,我需要的只是一块屏幕、一块电池和网络连接,而 Android 完全能满足这些。

然后,应用和用户界面会根据我的需求即时生成。诚然,某些事情上永远会有同类最佳的用户界面,你也总会想要一些熟悉感。但即便是那个"点、点、点,升级系统软件,把这个拖到那边,四处找那个按钮,往那个输入框里打字"的时代,也正在远去。一切都应该是对话式的,一切都应该是智能体式的。在那个世界里,苹果会失去大量优势,然后它就只能在"哦对了,我们有最好的芯片、最好的集成硬件"上竞争了。

但那可不是今天苹果的利润率。那更像是三星或联想赚取的利润率,绝不是苹果想要的。因此,我认为苹果的市值将会缩水。

我认为,苹果放弃 AI 将被记为本十年科技行业最大的战略失误,也是苹果统治地位终结的开端。这些公司可以存在很久并赚很多钱——比如微软现在的市值比以往任何时候都高。但微软的 Windows 多少已经输掉了这场战役,因为他们错过了手机浪潮。他们死守 Windows 操作系统,没有升级为一套从零为手机设计的、基于触摸屏的原生系统,也没有把重心放在消费者身上——他们太专注于企业市场了。于是苹果超越了微软,如今成为全球市值最高的公司之一。我记得苹果曾经是市值第一,现在市值第一的可能是英伟达。

我认为苹果也会以同样的方式被超越。我觉得他们的未来增长已经见顶,因为他们在 AI 上受制于人、落后于人。除非他们能设法扭转 AI 这艘大船的方向,否则我认为苹果的长期增长已经封顶,正处于"麻烦"之中。不是说它不会再值钱,而是它的价值会远低于它本可以达到的水平。

编程智能体充当客服代表

Naval:另一件事是,在我正在构建的应用里,我建了一套 bug 上报基础设施:如果有人发现 bug,点一下按钮,bug 就会把日志上传并归档到服务器。然后我让 Claude 每 24 小时把所有 bug 报告过一遍,由它自己把 bug 全部修好,无需我干预。它把所有修复都放到分支上供我审阅。我需要做的只是审阅这些修复,然后说:"啊,这个其实不算 bug,这个修得也不对,别发布。"

"哦,这个看着不错,有道理,发布吧。"

我只是决定什么能上线发布的最后一道关卡。最终你会看到应用按这种方式按功能模块迭代:用户会提出想要的功能,为功能投票,然后云端会有某个品味把关人或维护者审阅这些需求,说:"不,用户根本不知道自己想要什么。"

或者:"哦,这个很有道理,我们应该修一下或改一下。"

所以我认为,连软件开发本身都会变成与用户协作的过程,而所有工作都由智能体来处理。因为在某种意义上,智能体能提供完美的客户服务。如果你的客服是完美的,那你的客服人员也一定是个不可思议的程序员,而且不知疲倦:他们 7×24 小时在线,写代码、修 bug、回复用户;就算他们写了一大堆代码去修一个 bug,而你随后把它们全部扔掉,他们也不会有任何情绪。所以我觉得这个特性真的很有吸引力。如今,你确实可以拥有一两个人的软件公司,却能扩展到数以百万计的用户、赚取数十亿美元。

这在过去已经发生过:比如 Notch 和中本聪(Satoshi Nakamoto)这样的人,还有像最初的 Instagram 团队这样用极少的人手就做出巨大成就的小团队,或者最初的 WhatsApp 团队。但我认为,今后你会越来越多地看到这种情况。

本文其余部分的中文翻译整理中。点击查看英文原文,或使用右上角语言切换。

Nivi: You’re listening to the Naval Podcast. This is Nivi, his regular co-host. Today we’re going to talk about vibe coding.

A Return to Coding

Nivi: Let me tee up the conversation with a tweet from Naval from March 23rd: “AI coding agents can now deliver one-shot custom apps straight to your phone. It’s the beginning of the end for the iPhone’s dominance.”

Do you want to talk about what you’re building and how you’re distributing it?

Naval: Well, yeah, let me talk about vibe coding and how I got into it.

So around December of 2025, the coding agents in AI hit an inflection point with the release of Claude Opus 4.5. And people started using it and were like, “Wow—this is an agent that stays on track, can build apps soup to nuts, can solve thorny problems, and really feels like having a junior programmer at your disposal who’s fast, essentially free, and ready to please.”

That was an inflection point, and I was reading all the hype on Twitter, but this time it felt real. I’ve tried the coding agents in the past with some mixed results, but this time I really got into it. And I haven’t seriously coded in decades. I have a computer science degree; I understand computer architecture and networking, a little bit of chips, algorithms, et cetera.

But I haven’t seriously coded in a long time.

And the activation energy to writing code is really high. You have to hook up all these different services to each other. Everything from GitHub to maybe some backend—you’re doing Vercel or Firebase or Railway or whatever—and just lots of things to connect together.

You have to know lots of jargon—lots of tools. And the AI now makes it really easy. So I started with Claude Code like everybody else. I’ve also used Codex for some of the thornier bug solving and deep problems, and I immediately got addicted. It was incredibly fun. And so: what’s changed? Well, the agents are really working.

These are not just coding assists now—where you ask it to solve a specific problem, it gives you a pile of code, and then you cut and paste that into your IDE, your development environment. Rather, you open up a terminal—CLI, as they call it—the command line interface. It’s all text-based, which is what these things are really good at, because they’re trained on text tokens in the first place. It’s running Unix inside or underneath. And these agents really know Unix because if you look at all the code out there that they were trained on—sitting on GitHub or elsewhere or Stack Overflow—most of it was Unix.

And most of the modern OSes are really Unix underneath anyway. macOS is famously BSD. So underneath these are all Unix, which is all text in, text out. So these agents are just long-lived coding AIs that are connected to Unix at a core level. They’re connected to the Unix shell so that they can execute commands. They’re connected to the file system through basic Unix commands.

They can call all the Unix commands like grep and awk and sed and pipe and so on—all these operators that daisy chain into each other. They can run cron jobs so they can be long-lived; and they can spawn more shells and more tasks as needed.

The Personal App Store

Naval: It’s very addictive because—normally, with coding, coding can be really fun once you get into it.

But getting into it, the activation energy is really high. But now all of a sudden you don’t have to know all the tools and all the commands. These things speak English. AIs are incredible translators. And one of their core use cases early on was machine translation. They were tested on translating. But now they’re translating from Python and C and Lisp and Rust, and all of these various programming dialects and all of these specialized commands—and they’re communicating in English, and they’re very forgiving in their communication.

So, you can use different words; you can make spelling mistakes; you can explain things your own way. But if you have a basic understanding of computer architecture and networking and programming—and it doesn’t take a lot, it can be very basic, actually, very high-level, I should say; not basic in the sense that it’s simplistic, but basic in the sense that it’s high-level—then you can go very, very far.

And so just for fun, I tried building a bunch of different apps and I started by one-shotting particular apps that I wanted. One-shotting meaning: I just give it a description and it gives me back an app. Then I started improving from there. So I actually built my own little app store, which is an app store just for me.

I can ask it for an app; it can deliver that app to my app store, which is a webpage, and eventually I made it into an app itself that lives on my iPhone. And then I can download those apps with one click, and I can give upgrades like you do with the App Store.

So, if I want a new app, for example, that tracks my workouts—and I have this; I built a custom tracking app for just my workouts exactly the way I like it—so I can say:

“Hey, use the functionality of Tonal and Ladder; follow Apple’s human interface guidelines to make it look like an Apple app; track my workouts the following way—here’s a text log of my last few workouts—and make it easy for me to re-enter new ones and to adjust them; build me pretty graphs and charts to track my progress; add in whatever other features you can think of—calculate strength scores; read scientific papers to figure out what the right way to do strength scores by body part is; do a human body diagram so it can just show which muscles are bigger, which are smaller; connect to Apple Health to do my heart rate stuff.”

So I didn’t put all of this in one prompt, but I put a lot of it in one prompt, and I immediately got a working app delivered to my personal app store. By the way, the personal app store is a little bit of a joke. It’s real in the sense that it’s my personal app store: it looks like an app store and my apps get delivered into it.

But obviously it’s not for wide distribution because Apple gates that. Apple will not let you build apps that can be downloaded on anyone’s iPhone. You have to key them against your specific devices. So with my friends and family, I can deliver them apps; I can’t yet deliver them to everybody. However, this whole experience is incredibly addictive.

You can get extremely customized tuned apps for you. Now, does this mean that normal apps don’t have a place? No, of course they have a place. Those apps that cover the broad use cases—they’re going to be the best-of-breeds. Someone’s hand-tuned them and slaved over them. So you’re not going to beat that if your use case is covered by one of the broad use cases.

But when you want something truly custom or private—these are great for niche apps that only you would want. Or when you want to tune them to your specific use case, this is going to be incredible.

Vibe Coding Is a Video Game With Real-World Rewards

Naval: And it’s very addictive—because like in a video game, the way a video game is designed is that it keeps you hooked by giving you feedback and rewards for doing work.

And it’s always at the edge of your capability. So as you get better, the video game gets harder. It’s not so hard that it’s frustrating, but it’s not so easy that it’s boring. So you’re always operating at the edge of your capability with a video game and getting these rewards. But those rewards are fake, and the video game is bounded. It’s created by other humans. It’s sort of a fake little world, and deep down you kind of know that. So you’re just figuring out the rules of the game. And then once you’ve figured out the rules of the game, it’s boring.

Except with vibe coding, it’s unbounded because now you’ve got a Turing machine running underneath. You can build anything. The objective is created by you and can keep expanding, so it kind of never fills up completely. And it has real-world relevance. It’s not just some fake world for fake people or fake games that you’re solving, so it’s way more interesting. So vibe coding has one-shotted a whole bunch of my friends who have disappeared into vibe coding the apps they’ve wanted.

But it really, really helps to have a clear direction. You have to know what you want—that’s actually the hardest thing—and having a very clear vision of it. And I have that, because it’s a particular app that I was obsessed with for about a year called Airchat—which I built with a team—and it was a social messenger for people to talk through voice and video.

It didn’t quite work, so we sold it off, got the investors their money back, and got the team some nice packages. But I remember that experience as being exhilarating because I was building a product that I wanted and I was working with a brilliant team.

But I had to work through a team to do it. I had eight or nine engineers, depending on the day, and we worked pretty hard for nine to 12 months, and we shipped a couple of variations. But with vibe coding, I am basically rebuilding that app. I’m rebuilding from scratch. But the key now is: I’m rebuilding it exactly the way that I want it. There’s no compromises.

And normally, in the act of building anything with a team, there’s always compromises—even if you are not aware of them. Even if you’re the dictator in charge, which you rarely are, you still have to just accommodate other people. You can’t say, “Move this icon left. Now move it right. No, move it back. No, move it back again.”

You can’t do that. You’ll annoy the engineer. You can’t demand things where you don’t have a reasonable justification—where it’s just a gut feel or an intuition. But the beauty with an AI coding agent is there’s none of that.

It’s like a self-driving car. You don’t feel self-conscious in a self-driving car because there isn’t a driver sitting there. The same way, with an autonomous coding agent, you don’t feel self-conscious about your own idiosyncrasies. So you can create exactly the thing that you want.

I think one of the nice benefits of vibe coding is that—although we may not see like super high-quality code (at least not in this generation), and the architecture needs a lot of work, and these things may have security holes, and they may be hard to scale—the prototyping that you’re going to get, the individual apps you’re going to get, is going to be very fast and they’re going to be true to the vision of the creator. There’s going to be no compromises.

So you may end up with more things like Minecraft—which Notch famously coded by himself—where there was one person’s vision. And it may have looked weird because like, “What is this blocky graphics? It’s like a huge step backwards.”

But he didn’t have to compromise. He didn’t have to communicate with anybody or explain to anybody why he wanted it that way. So I think it expands the scope of discovery.

It’s also incredibly fun. It takes the number of people who might have built apps from like 0.1 percent to one or two or three percent in the populace. Don’t get me wrong—the majority of people are not going to code their own apps. For the majority of people, computers are sort of this magic black box and who knows what was going on in there anyway. So the fact that it’s become 10x or 100x easier still doesn’t mean anything to them. It’s still a black box.

But for the people who are creative, who are self-motivated, and who are articulate and have a good vision, you can code now. There’s nobody standing in between you and your prototype.

And yes, if you go to market with a high-functioning app and you need to scale to a lot of users and all of that, then you want to recruit a great team and you want to get real engineers on board, and you’re probably going to have to rewrite the whole thing. But if you’re experimenting, you’re prototyping, you’re getting to market, there’s nothing better.

Pure Software Is Uninvestable

Naval: There’s never been a better time to be alive as a creator of software.

Now, are the same market opportunities still there? That’s a big question. They’re shifting very, very fast. It may be the case that the big companies are vulnerable because now anyone can create software.

It may be the case that they have more of an advantage because they have distribution. They can just fill all the gaps with all the software they can dream up. But I actually think this is a renaissance for individual software creators.

Now, one other tweet that I put out was something like, “There’s no market for venture-backed software anymore,” or, “Pure software is not venture investable anymore.”

Nivi: I think it was like, “Pure software is rapidly becoming uninvestable,” if I remember correctly.

Naval: Yeah, that’s a watered-down version of what I really wanted to say, which is that pure software is uninvestable. I would just full stop right there. If your whole advantage is like, “Hey, I’m building cool software that other people don’t know how to build,” I think that’s uninvestable.

And it’s uninvestable for two reasons.

One is they can just hack it together today. And the second is the coding agents are getting better so quickly that within a year, or even less, they’ll probably be building scalable software with good architecture. So I think we’re going to see leaps and bounds improvements. That genie is out of the bottle.

So if you’re a venture investor now, you’re looking for hardware, you’re looking for network effects, you’re looking for AI models. And I would argue that training AI models is the new building software for however long that lasts until autoresearch and autotraining starts working.

But I think vibe coding, it’s more fun than playing video games. It’s more productive. It’s more constructive. It has better feedback loops. You build something you want. You’re at the bleeding edge of technology. You may even make some money or career out of it—although careers are kind of dead—but you may make an interesting opportunity out of it. And you learn a lot about computers just by doing.

I’ve seen kids who are vibe coding. It’s hard to get kids to program. You can throw Swift Playgrounds and ScratchJr and all of that at them and hope that they pick up coding. But if you throw vibe coding at them, they’re going to get instant feedback and instant rewards. Maybe along the way they’ll pick up fundamentals because these things still require some skill to operate.

And in the process of operating them, you’ll be forced to figure out the command line; and you’ll be forced to figure out how basic computer architecture works; and you’ll be forced to figure out concepts like caching, and backing off in a network, and sharing streams, and writing to disk; and latency versus bandwidth trade-offs, et cetera, and all of those things. So you’ll be forced to learn some basics of computer algorithms and architecture. And it’s just a fun way to go. I’ve been up late nights, probably spending a couple hours every night—the time that used to go into reading, or doomscrolling, or playing video games—is all now in vibe coding. In fact, that’s why I haven’t been active on X recently. I’ve been completely missing on X because I’m buried in Claude and Codex.

A Place for Each Model

Nivi: AI has gotten so surprisingly resourceful that whenever I get a response that isn’t surprisingly resourceful, I just assume they’re not feeding it enough tokens.

The most interesting thing to me about agents is their ability to error correct and learn—how people have it watch YouTube videos at night or go out onto the internet and try and learn about the tasks they’ve been instructed to perform during the day.

So these agents are going out and error correcting and improving their skills. Likewise, the innovation of thinking in AI models is also an application of error correcting, where you take the next token prediction process and turn it into a pseudo-thinking process that can error correct as it goes through each step in the thought process.

Getting rid of hallucinations was also an error correction process.

So I wonder what’s going to be the next application of error correction in AI? One random thought I had, and I’m sure people are working on it, is applying error correction to agents working together—agents working with other agents. Because one of the important ways that people learn and improve is by working with and talking to other people.

Naval: I’m not sure the analogy applies that well, because AI is jagged intelligence, as they say, where it’s incredibly smart at some things and incredibly dumb at others. And it’s structured very differently than humans in that when you’re using Claude, you’re using the same AI model—even if you have 10 instances of it running. So 10 of them talking to each other doesn’t really improve its thinking in the same way that 10 humans talking to each other do, because those humans are trained on 10 different datasets.

Humans are just inherently very creative and think out of bounds. Whereas the AI agents are trained on the same data distribution. They’re literally running the same model. It’s like 10 people with the same brain and the same dataset talking to each other. Sure, just through thermodynamics they might have some different ideas and come up with something slightly different, but they’re generally going to think the same. So all you’re doing when your 10 agents are talking to each other is you’re just throwing 10 times as many tokens at the problem. It’s like saying take 10 times as long if you need to.

Now there are different models like Codex, and Gemini, and Grok Code, which are trained slightly differently. Not that different, but they’re slightly different. And so they might have some different insights.

Claude has really good visual presentation through a system called Artifacts and Claude is very good at talking to me at the level that I’m at. So it’s very tuned to figure out from your question and your conversation what you’re capable of understanding and what level you’re asking the question at. It’s very good at meeting you at that level.

ChatGPT is still the OG. It’s very good all around.

Gemini is very good at search because it has the Google crawl underneath. It’s a frustrating product—it’s constantly timing out on the app and losing the connection and forgetting the plot. But it’s very fast and it’s got a great search index. So if the question I’m asking is really a search question underneath, then I use Gemini.

Gemini also has access to YouTube. So if you think your answer is lying in a YouTube video—and there’s a lot of YouTube videos—then Gemini has the data advantage of YouTube. So Gemini is really getting by on data advantages. It doesn’t feel like the best model to me, but it has the best underlying data.

And then Grok is the one I can count on to tell me the truth. It’s like the least neutered, least nerfed. It’s got access to X, so it’s very good at news. And it’s very good at technical problems. So if you’re asking a deep, difficult problem in the scientific/mathematical domain, then I think Grok is actually quite good—not that the others aren’t, but I just think Grok is standout there. And that reflects the biases of the companies that created them and trained them and are driving them.

Currently all four of the leading frontier models have a place.

AI Is Eager to Please

Naval: I do use them against each other. So for example, I wire it up with my GitHub so that every time I’m submitting a new piece of code—say that’s written by Claude—then Codex and Gemini automatically fire in every pull request.

It’s misnamed, but it’s when you actually push code into your main repository and you’re basically saying this is ready for review and this is ready to get merged into the main codebase. So you’ve been working locally in a piece of code, let’s say with Claude, and then you push it into the main repository, so you file a pull request. Well, you can set it up so that other agents like Gemini and Codex and Grok automatically fire and review the pull request.

Then they say, “Oh, well you should change this thing about the architecture,” and so on. That’s a way of getting them to sort of communicate with each other, to have a council—a roundtable of AIs. But I haven’t found that to be as useful as you might think. There’s still a lot of groupthink with these AIs. If you’re coding with them and you push towards an answer—for example, if you think you know what the answer is—it is rare that they will contradict you. You’d have to be pretty wrong for them to contradict you.

They’re trying to please you, and I don’t think they have any long-lived theory of mind of their own. So they’re always kind of morphing towards you, and they’re going to find the answer that you are looking for. So if you think the answer is in a certain area and you push the models even slightly, all of them will find roughly the same answer because you’re leading them to the answer. They’re very easily led around.

One of the things I’ve noticed is that as the codebase has gotten more complex and larger, it becomes more difficult to manage because it doesn’t all fit into the model’s context window anymore. The models can only hold a certain amount of data in their heads. And right now the state of the art is about a million tokens, which will be considered laughable in the future.

You can approximate that by thinking that is a million words, and that’s because of the transformer attention mechanism underneath which, for it to properly work, the problem is a square of the number of tokens in the context. So if it’s a million tokens, that means the context window is like in the order of complexity of a trillion tokens because it’s the square of a million.

So the context window runs out as your codebase gets larger. The models can’t keep all of it in memory anymore. So they start making guesses, approximations, they start compacting the context window. They start losing the plot. They get lost. They start fixing the wrong thing. They fix the same bug five times. They go do a quick patch in the architecture when the problem lies somewhere else, and you have to guide them.

So as you are dealing with a more and more complex codebase, it falls upon the operator to provide the guidance to say, “Actually here, I think we should just re-architect that whole thing.”

And they will do some incredibly boneheaded things. Like if you are not paying attention and just text is scrolling by, occasionally they’ll patch a bug just by eliminating the use case or destroying the feature in the first place. Or they’ll do something that is clearly a hack and you kind of have to stop them and say, “Hey, that’s a hack.”

And by the way, I do this all the time.

I’ll stop the model. And I’ll say, “No, that’s a hack. That’s a patch. Go fix it at an architectural level.” And what’s funny is the model will always say, “Oh, I’m sorry. You’re right. That was a hack.”

Even if that wasn’t a hack, the model will say, “You’re right. That was a hack.”

So the model is always trying to please you, and it doesn’t know any better. In that sense, it’s a little bit like a dog. It’s better than you at catching that duck if you’re duck hunting with a dog, but it’s still a dog. So if you point it at a bird that’s not a duck, it might take that bird down instead. So you do have to guide it. It does require a lot of operational oversight.

So, long-winded way of saying, you still have to guide these models. Them talking to each other isn’t going to fix the problem. And you do have to get involved in the architecture, the debugging, the features, and pay close attention. But this combo right now of human operator combined with state-of-the-art coding model can yield incredible results.

You can already completely one-shot simple apps. So like a basic task list, a basic video game clone—you can one-shot them: one prompt and you get something that’s reasonably good coming out the other end.

So you can see where this is headed. Eventually, once they have enough data, they will be able to one-shot very complex apps, and that’s a whole different world that we’re going to get into.

Why Math and Coding?

Naval: Now in terms of what is it about coding that makes them uniquely good at it?

It’s just there’s tons and tons of data, and when you’re training the model, it’s very easy to verify, “Hey, did you do a good job or not?” Because the code has to compile. It has to execute. And you can have simple tests that are pre-written on the other side to say, “Did the code you wrote pass the test? Did it do the thing you’re supposed to do?”

So coding turns out to be one of those things that it’s actually quite easy to train models on.

Mathematics is actually similar in that you have a ton of data—you have a lot of solved problems—and you can verify the output very easily. So in domains where we have a lot of data and you have good verification—self-driving is another one of those. These models do extremely well.

In areas where you don’t have a lot of data, which are brand new fields, the models are not going to do well, and that’s still an opportunity for humans and creativity. Then domains where it’s hard to verify, for example, in creative writing—like who determines what’s good creative writing versus what’s not, what’s slop versus what’s not—then these models don’t do as well because you can’t easily run a closed loop where they’re just outputting huge amounts of content and then that content is being immediately algorithmically graded without having to have humans in the loop saying, “This is good, this is bad.”

For example, if you’re trying to do creative writing with these models, they’re going to output huge amounts of content. They can output infinite essays. Who’s to say it’s good on the other side? Even if you hire some low-wage people to sit around call center style and say, “this is good” or “this is bad,” it’s only as good as their taste.

I think one of the reasons why these coding models got really good recently—there’s multiple; one is they’re doing sort of almost recursive training where like one model is helping improve the next one—but I think the bigger reason might just be that a lot of the best software engineers started using these models in the last few months and their taste is now feeding back in. So you’re getting access to their code plus their taste as to what’s good and what’s not.

You need high-taste feedback loops to improve these models. And those are harder to develop than they look.

In certain domains it’s tractable and in other domains it’s hard to see how it happens.

The Beginning of the End of Apple’s Dominance

Naval: So the obvious stuff is, yeah, you go and you build your app. Great. Less obvious stuff that’s like just one level more advanced, which will be laughably simple to a software engineer but it’s kind of fun for a non-engineer or someone who hasn’t coded in a long time to think about.

One is I built my own app store. So if I want an app, I literally open up Claude on my phone. I can operate a remote terminal, which is running on my desktop, or I can just use Claude in the cloud.

It can connect to Xcode.

I give it a two-line description. It builds me an app. It ships it to my app store. I open my app store app. The app is sitting there. I click install. 30 seconds later, I have a working app on my phone.

That’s magical. You can literally be at dinner with someone having a conversation, they describe some app they want, you can describe it to Claude, and five minutes later you’re showing them that app on your phone.

That’s why I say it’s kind of the beginning of the end for Apple, because Apple relies on their OS and their apps being better than everybody else’s. The hardware, yes, it’s better, but it doesn’t support their margins and their monopoly, or pseudo-monopoly. So when all your communication starts going through Claude, or through Codex, or through some other agent, when all you’re doing all day long is instead of opening an Uber app, you’re saying, “Call me an Uber,” or instead of opening a workout app, you’re saying, “Where’s my workout app? Track my workout. Make no mistakes,” right?

Then you are just communicating with the agent, and when that happens, then the need for a phone becomes much smaller and smaller.

Maybe there’s a few banking apps and government apps that haven’t ported and don’t have the proper APIs. But these agents don’t even need APIs. They can figure out and create their own APIs on the fly.

The use case stops being your interfacing with your iPhone or your Android phone. Instead, you’re just interfacing with the AI model. And now Apple is using Gemini, which is Google’s AI model. So what’s the difference? I might as well just use an Android phone, because all I need at that point is I need a screen, I need battery, and I need connectivity. And Android’s got that just fine.

And then the apps and user interfaces are being created on the fly for what I need. And yes, for certain things, there will always be best-of-breed user interfaces and you’ll want some familiarity. But even the era of tap, tap, tap, upgrade your system software, drag this over here, hunt for that button, type into that field, all that is going away. It should all be conversational. It should all be agentic. And in that world, Apple loses a lot of its advantages, and then it’s competing purely on, “Oh yeah, we have the best chips and we have the best integrated hardware.”

But that’s not the same margins as Apple of today. That’s more like the margins that Samsung or Lenovo makes, which is not the margins that Apple wants to have. As a consequence, I think its market cap will compress.

I think Apple giving up on AI will go down as the biggest strategic mistake in the tech industry of this decade, and it’s the beginning of the end of Apple’s dominance. These companies can exist for a long time and make lots of money—like Microsoft is more valuable than it’s ever been. But Microsoft Windows has kind of lost the battle because they missed the mobile phone wave. They stuck to Windows OS and they didn’t upgrade to a touchscreen-based native OS designed for phones from the ground up, and they didn’t focus on the consumer. They were too focused at the enterprise level. So Apple surpassed them and is now one of the most valuable companies in the world. I think it used to be the most valuable. It might be Nvidia at this moment.

The same way I think Apple will get surpassed. I think their future growth is capped because they’re now captive on AI and they’re behind. Unless they manage to turn the AI ship around, I think Apple has capped growth long term, and is in “trouble.” Not in the sense that it won’t be valuable, but it’ll be a lot less valuable than it could have been.

Coding Agents As Customer Service Reps

Naval: The other thing is within the app that I’m building, I have a bug reporting infrastructure, where if someone sees a bug, they tap on a button, the bug sends the logs up and the bug files into a server. And then I have Claude go every 24 hours through all the bug reports and it just fixes them all, by itself, without my having to intervene. And it puts all the fixes into side branches for me to review. And then all I have to do is just review the fixes and say, “Ah, that wasn’t really a bug. That wasn’t a good fix. Don’t ship that.”

“Oh, that looks good. Makes sense. Ship it.”

I’m just the final gate that decides on what goes out there. Eventually you can see apps being built that way by features, where the users will ask for features, they’ll vote on features, and then there’ll be some tastemaker or maintainer in the cloud who’ll look at that and say, “No, the users don’t know what they want.”

Or, “Oh, that makes a lot of sense. We should fix that or change that.”

So I think even software development will become a collaborative process with the users and the agents will be handling all of it. Because in a sense, the agents can do perfect customer service. If your customer service was perfect, your customer service person would also be an incredible coder and would be indefatigable. They would be up 24/7. They would be writing code, fixing bugs, responding to people, and they would have no ego if they wrote a lot of code to fix a bug, and then you just threw it all away. So I just find that kind of a feature very compelling. You truly can have one-person, two-person software companies now that can scale to millions upon millions of users and make billions upon billions of dollars.

That has happened already in the past with people like Notch and Satoshi Nakamoto, and very small teams like the original Instagram team that just made a huge dent with very few people, or the original WhatsApp team. But I think you’re going to see it more and more now.

本文部分章节已译成中文,其余部分整理中;以下为英文原文展示。
版权与来源声明:本文由「Naval 中文阅读站」翻译整理,仅供学习交流。原作者为 Naval Ravikant(纳瓦尔·拉维坎特),原文发布于 https://nav.al/code,版权归原作者所有。本站为非官方、非授权的独立翻译站点,与 Naval、nav.al 无任何关联;如内容有误译,请以英文原文为准。