软件正在变得可配置,而不是可购买

今天 HN 上有两篇高票文章,分别从一个完全不同的角度触及了同一个问题。

先看 John Graham-Cumming 写的《Emacs 化》。

他描述了一个很具体的痛点:他在 macOS 上找不到一个够用的 Markdown 阅读器。终端里的 TUI 阅读器用等宽字体,读久了累。图形界面的编辑器打乱了他的工作环境。App Store 上的阅读器要么不支持文本搜索,要麼有应用内购买,要麼不支持复制文字。

于是他用了 Claude,花 30 分钟生成了一个原生 macOS Markdown 阅读器 MDV。不是 30 分钟编码——是 30 分钟交互。他花了几个小时让 Claude 生成,但大部分时间他在刷 Facebook,机器在跑。

这个 app 并不完美。它有一个让人偏头痛的闪烁问题——Signal 是 Electron 应用,每次消息来他的屏幕就会闪一下。但他不在乎。

他在乎的是另一个东西。他说 Emacs 文化的核心是:用户自己扩展编辑器来构建各种小工具。这些东西大部分只对创建者有用,然后被遗忘。就像他 .emacs 里那几十个过期的 elisp 小项目。

但以前 Emacs 文化有一个致命弱点:除非你是 Magit,否则这些工具的用户体验都很糟糕——丑陋、缓慢、需要多年的 elisp 训练才能学会使用。

AI 代理解决了这个问题。现在你可以让 AI 生成一个漂亮的原生 UI,而不需要自己学 SwiftUI。

他说这不只是关于 Emacs。当 AI 代理能可靠地构建原生界面时,"个人软件"从一种黑客亚文化变成了一种普适的可能性。每个人都可以拥有一个完全符合自己习惯的工具集。

然后他说了一句我觉得很重要的话:"对于这类软件,你更想要的是提示词,而不是源代码。"

嗯,这句话的意思是:当代码是 AI 写的时,代码本身不再是知识载体。真正有价值的是你对问题的描述——那个 prompt。它包含了你对"什么是一个好的 Markdown 阅读器"的理解。源代码只是这个理解的副产品。

这个观点指向一个更深的变化:软件正在从"购买产品"变成"配置平台"。

同一天,HN 上有另一篇 869 分的文章,从另一个角度触及了同样的问题。

monokai 的《我把数字栈搬到了欧洲》描述了他怎么把自己所有的美国 SaaS 服务迁移到欧洲。Google Analytics → Matomo(自托管)、DigitalOcean → Scaleway、Sentry → Bugsink(自托管)、SendGrid → Lettermint、OpenAI → Mistral。

但他很诚实地承认有三件事没有搬。

Cloudflare 留下了。他的理由是:你的网站内容已经是公开的了,经过 CDN 不改变主权性质。而且 Cloudflare 的功能集——安全规则、Workers 平台、配置选项——欧洲替代品还达不到。

Stripe 留下了。支付集成涉及账单逻辑、webhook、税务发票,迁移不 trivial。而且 Mollie 对他来说更贵。

AI 编程工具也留下了。他说 OpenAI 的轨迹不再符合他的价值观,但他还在用。

嗯,这两篇文章放在一起看,它们在说同一个问题的两面。

"Emacs 化"说的是:你可以自己生成工具。这意味着你不再需要"购买"一个 SaaS 产品来满足一个简单需求。一个 Markdown 阅读器、一个 bpftrace 的可视化界面、一个 iostat 的图形前端——这些以前需要找第三方产品的东西,现在你可以 30 分钟生一个自己的。

"数字主权"说的是:你意识到你对 SaaS 依赖的代价。一个策略变更、一次收购、一个高管的坏心情,你就可以失去对一个工具的访问权。monokai 花了几周时间迁移,但他留了三样东西。

留着的三样东西有一个共同特征:它们是基础设施,不是工具。Cloudflare 是 CDN、Stripe 是支付、AI 编程工具是……嗯,这是最有趣的一个。它既像是工具,又像是基础设施。

这里有一个可以落地的洞察。

当 AI 让"生成工具"变得容易时,SaaS 产品的价值不再取决于"能不能做这件事",而取决于"能不能做到这件事的规模化"。

一个自建的 Markdown 阅读器对你一个人来说足够了。但一个供十万用户使用的 Markdown 协作平台——你需要的是 Cloudflare、Stripe 和 AWS。你需要的是基础设施。

所以未来可能分两层:个人工具层和基础设施层。

个人工具层会越来越"Emacs 化"——每个人用自己的 prompt 生成自己的 app。这些 app 是私有的、不可移植的、高度定制化的。

基础设施层会越来越集中——Cloudflare、AWS、Stripe。这些不会"Emacs 化",因为它们需要规模、合规、全球覆盖。

monokai 留着的三样东西,全部在基础设施层。他搬走的全部在工具层——Matomo 可以自托管,Bugsink 可以自托管,Mistral 的 API 可以换成其他供应商。

嗯,这个分层对程序员来说有一个实际意义。

如果你在做独立项目或内部工具,"Emacs 化"意味着你可以不再花时间去找现成的 SaaS。让 AI 生成一个你自己的。提示词比代码重要。

但如果你在做需要规模的产品,基础设施的选择才是真正不可逆的决策。选 Cloudflare 还是 Cloudfront,选 Stripe 还是 Adyen——这些决策一旦做了,迁移成本远高于一个 Markdown 阅读器。

也许这就是为什么 AI 编程工具还停留在基础设施层。它不是一个"生个 app 就完事"的工具。它是你整个开发工作流的基础设施。你把它绑在了 OpenAI 的 API 上,这就像 monokai 把网站绑在了 Cloudflare 上——不是因为他喜欢,而是因为迁移太贵。

嗯,最后一句。

Graham-Cumming 说"nerd 软件会变得更有意思"。他说他终于能让 iostat 和 bpftrace 有正常的图形界面了。

monokai 说他花了数周迁移,但获得了一种"满足感"。

两种满足感。一种来自"我能做到"。一种来自"我控制它"。

嗯,它们都是同一种渴望的不同表达。