软件的 Emacs 化:定制化个人应用的兴起

几十年来,在产生软件需求与拥有解决该需求的工具之间,人们要么通过在 App Store 中搜索,要么通过妥协于一个“足够好”的开源项目,要么通过花费数周时间学习一门新语言来填补鸿沟。但随着我们进一步步入 AI agent 时代,一种根本性的转变正在发生。我们正在进入“Emacs 化”时代。

这一概念由漏洞研究员 rdslw 普及,它表明软件正在从我们消费的产品转变为我们挤出的配置。当生成功能完备、原生的用户界面(UI)的成本降至接近于零时,使用通用软件的动力就会消失。

“足够好”带来的摩擦

许多开发者发现自己陷入了“足够好”工具的循环中。以简陋的 Markdown 查看器为例。虽然 Markdown 是开发的通用语言,但阅读体验往往是碎片化的。你拥有像 glowMarkless 这样的终端用户界面(TUI),它们功能强大但受限于终端的等宽约束。在另一端,你拥有像 Obsidian 或 Typora 这样的全功能编辑器,它们非常适合写作,但当你只想在不干扰精心布置的工作区的情况下查看一个文件时,它们又显得过于冗余。

当现有选项失效时——缺乏基础搜索、隐藏在应用内购买之后,或者无法支持简单的复制粘贴——传统的应对方式是忍受它。然而,在一个 AI agent 可以以专业水准编写 SwiftUI 代码的世界里,应对方式从“我应该下载哪个应用?”转变为“为什么我不直接让我自己做一个呢?”

什么是 Emacs 化?

要理解 Emacs 化,必须观察 Emacs 的文化。对于“终身用户”来说,Emacs 不仅仅是一个文本编辑器;它是一个可塑的平台。用户编写自己的 Lisp 函数来解决个人的小需求,创造出一个庞大且定制化的环境,这 100% 是“展示与交流”,0% 是“Product Hunt”。

Emacs 化是将这种精神应用于所有软件。它是向个人软件的转型:这些工具具有高度针对性,可能仅对创建者本人有用,并且更多地被视为一种配置而非一种产品。

这种转变的关键特征包括:

  • 从源代码到提示词: 在过去,工具的价值在于其源代码。在 Emacs 化的世界里,如果一个 agent 编写了 SwiftUI 代码,代码本身就只是顺带的兴趣。真正的价值在于用于生成它的想法提示词
  • “通用型”UI 的消亡: 多年来,Electron 统治了这一领域,因为构建原生 UI 是困难且昂贵的。现在,agent 可以可靠地构建 macOS 或 Windows 的原生界面,从而允许用户绕过 Electron 应用那种“闪烁的 Chromium”体验,转而选择精简、原生的性能。
  • 定制化实用程序: 软件变成了一种解决特定、即时问题的方法——例如为 bpftrace 创建一个自定义可视化界面,或者创建一个带有 SQLite FTS 索引的专用 Markdown 查看器——而无需承担维护通用产品的开销。

反方观点:维护与脆弱性

虽然“挤出”软件的前景是令人释放的,但它也引入了新的挑战。围绕这一趋势的社区讨论突显了一个显著的张力:维护成本。

一些开发者认为,个人软件可能会成为脆弱配置的“邪恶组合”。正如一位评论者所指出的,追求低维护生活的需求往往与为一切事物构建定制工具的冲动相冲突。存在一种风险,即我们用一堆“slopcode”来取代稳定的、尽管并不完美的专业软件,而这些东西在操作系统更新或依赖项发生变化时就会崩溃。

此外,还存在长寿性的问题。如果一个工具是在 30 分钟的交互式提示下生成的,那么当它损坏时,修复它的动力远低于使用一个你花费数月亲手构建的工具的动力。

极客软件的未来

尽管存在脆弱性的风险,软件的“Emacs 化”为高级用户预示着一个更有趣的景观。我们正在走向一个世界,其中专业工程师与普通用户之间的“鸿沟”正在被填补。编程正在成为一种高级配置的形式。

这种转变允许改进那些“笨重”的终端应用,并为以前仅限于命令行工具的复杂系统工具创建原生界面。目标不再是在 App Store 中寻找完美的应用,而是意识到平台本身已经变得极具可配置性。

在这种新范式下,开发者能做出的最有价值的贡献不一定是经过打磨的二进制文件,而是解决了一个问题的截图以及用于实现它的提示词。通用工具的时代正在结束;定制化、挤出的应用时代已经开始了。

Sources