Emacs in the Age of Magic
303 points • 23h ago • Article Link

像 Claude Code 这样复杂的 AI 编程助手的出现,从根本上改变了软件开发的格局,让我们离开了手动、基于规则的编程时代。几十年来,数字化时代依赖二进制逻辑的精确性,以及人类程序员的耐心劳动——他们从零开始,艰难地构建系统。然而今天,这种对指令的僵化依赖正在被随机模型取代:这些模型可以在几分钟内处理海量且边界不明的任务。过去与掌握复杂开发工作流相关的那份自豪感正在消散,比如 Emacs 那些错综复杂的命令序列。因为一度只属于专家用户的效率红利,如今已向任何会向 AI 发出提示的人开放。

这种变化在所谓"God machine"的兴起中体现得尤为明显:资深编码者的竞争优势,例如快速编辑或自定义配置,正逐渐失去价值。就连 Magit 驱动的 Git commit 这类成熟仪式,也被精简到了只剩下"手动介入显得老派"的程度——AI 驱动的自动化让人工操作看起来仿佛是过时的遗物。与此同时,这种转变让新一代用户得以追逐那些以前会被认为完全不合理或在计算上几乎不可能的项目想法,只因为生成复杂代码的成本已经骤降到几枚 token 的价格。

excali-mode 和 cooked.el 是这种新型、近乎疯狂的开发方式的两个具体案例。以 excali-mode 为例,一位开发者通过强制使用新的 canvas API,对复杂层进行逐一对应替换,从而把整个基于 React 的绘图应用成功移植进 Emacs 环境。类似地,cooked.el 的诞生也表明:一位业余开发者仅用数小时,就用 Rust 实现了一个完整的终端模拟器——而在以往,这样的任务往往需要专业团队耗费数年才能完成。这些项目说明了一种现象:用户在"只想做个操纵杆"的情况下,实际上却像是在"建造自己的 Boeing"。他们忽视传统的软件架构,转而用个性化、一次性的黑客手段来达成目标。

这种转变冲击了软件设计的长期传统:过去人们更看重可维护性和架构上的连贯性。我们正在看到所有软件都走向"Emacsification":个体用户要求工具完全按他们的具体偏好来定制,而不是接受标准化、面向大众市场的发布。新创造者的价值观几乎全都落在"展示与演示(show and tell)"上,而不是产品是否具备可行性。因此,当搭建、拆除并重写整个应用程序栈的成本在本质上被压到接近于零时,关于浪费与复杂性的传统观念也就失去了意义。

这场技术演进的讽刺在于,它一边实现、另一边又颠覆了软件自由的最初目标。用户如今拥有前所未有的能力,可以随心所欲地改造自己的数字环境,但底层机制却变得愈发隐晦不明。我们正迅速逼近一个未来:AI 可能最终能够直接与硬件交互——这几乎等同于遗传密码中孕育出生命的那一跃。我们或许能实现把数字想象力不受限制地呈现出来的终极自由,但代价是:我们失去了真正理解机器如何运转的能力。

148 comments • Comments Link

- 人们对 AI 在软件开发中的作用看法分歧很大:有人认为 LLMs 让传统编程变得过时;也有人认为它们不过是会生成冗长、难以维护甚至不安全代码的缺陷工具。

- "vibe-coding" 的做法,即开发者把实现工作交给 AI 。它因助长惰性、并制造出一种"黑匣子"式依赖而遭到批评:团队最终依赖这种不透明机制,却削弱了对系统工艺与原理的理解。

- 有些开发者担心 AI 会引发"enshittification"循环:软件变成由机器生成、充满漏洞的沉淀物;但也有人认为 AI 为那些未受过正规工程训练的人打开了进入复杂领域的大门。

- 也有人认为,失去技术约束是净负面影响,因为约束在历史上一直是人类创造力与原创思维发展的催化剂。

- Free Software 运动正面临身份危机:有人认为 AI 代表了 Stallman 愿景的最终落地——让任何人都能修改软件;但也有人认为这会通过依赖专有的、闭源的模型来侵蚀软件自由。

- 用 AI 辅助完成高阶任务,与让它取代对问题的深刻理解,两者差别巨大。许多资深工程师仍坚持:确定性的、靠硬编码支撑的基础设施依然不可或缺。

- 关于开源项目中 AI 的争论,例如推动 Emacs 维持无 LLM 版本,暴露出两者之间长期存在的矛盾:一边是拥抱新技术,另一边是保护协作精神与由人主导的开发方式。

- 人们也担心下一代工程师的长期影响:他们可能会在学习期间依赖 AI,导致难以建立严格系统设计所需的扎实基础。

- 这类讨论反映出一种更广泛的转变——从编写代码转向"管理" AI 代理,进而出现"向上退缩":人类的价值越来越被挤到商业决策、产品管理和 QA 等环节。

- 尽管存在由 AI 驱动的工作流趋势,一些从业者仍发现像 Emacs 这样的工具在文本消费与组织方面依然不可替代,说明传统的、可扩展的软件在自动化替代方案之外仍有独特价值。

这场讨论凸显了 AI 辅助开发带来的效率提升,与技术自主权可能被削弱之间的尖锐张力。尽管不少人看好 LLMs 在快速原型和可访问性方面的强大作用,但反复出现的一点是: "vibecoding" 存在让人对少数人真正理解的、不透明系统形成依赖的风险。参与者表达了对工程工艺的惋惜:随着软件更容易被自动化生产,解决复杂问题和构建可靠基础设施的底层能力正面临萎缩。最终,讨论指向一个关键的未来路径:在两者之间寻找平衡——用 AI 提升生产力,同时保留管理 AI 生成系统所必需的人工监督与深厚技术素养。