Emacs in the Age of Magic
像 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 可能最终能够直接与硬件交互——这几乎等同于遗传密码中孕育出生命的那一跃。我们或许能实现把数字想象力不受限制地呈现出来的终极自由,但代价是:我们失去了真正理解机器如何运转的能力。
The emergence of sophisticated AI coding assistants like Claude Code has fundamentally shifted the landscape of software development, moving us away from the era of manual, rules-based programming. For decades, the digital age relied on the precision of binary logic and the patient labor of human programmers who painstakingly built systems from the ground up. Today, however, that rigid adherence to instruction is being eclipsed by stochastic models that can handle vast, unbounded tasks in minutes. The traditional pride associated with mastering complex development workflows, such as the intricate command sequences of Emacs, is evaporating because the efficiency gains once reserved for expert users are now available to anyone capable of prompting an AI.
This transition is highlighted by the rise of what can be called the "God machine," where the competitive advantages of experienced coders, such as rapid editing or custom configuration, are becoming obsolete. Even established rituals like Git commits via Magit have been streamlined to the point where AI-driven automation makes manual intervention seem antiquated. This change has empowered a new generation of users to pursue project ideas that previously would have been considered entirely irrational or computationally prohibitive, simply because the cost of generating complex code has plummeted to the price of a few tokens.
Two specific examples, excali-mode and cooked.el, serve as case studies for this new, quixotic approach to development. In the case of excali-mode, a developer was able to port an entire React-based drawing application into the Emacs environment by forcing a one-for-one substitution of complex layers using a new canvas API. Similarly, the creation of cooked.el saw an amateur developer successfully implement a full-blown terminal emulator in Rust in mere hours, a task that would have historically required a team of professionals years to complete. These projects illustrate a phenomenon where users effectively "build their own Boeing" when they only intended to create a flight stick, ignoring traditional software architecture in favor of personalized, throwaway hacks.
This shift challenges the longstanding traditions of software design, which once prioritized maintainability and architectural coherence. We are seeing a move toward the "Emacsification" of all software, where individual users demand tools tailored to their precise preferences rather than accepting standardized, mass-market releases. The ethos of these new creators is centered entirely on "show and tell" rather than product viability. Consequently, the traditional notions of wastefulness and complexity lose their meaning when the effort required to build, tear down, and rewrite entire application stacks is effectively reduced to zero.
The irony of this technological evolution is that it simultaneously fulfills and subverts the original goals of software freedom. While users now possess the unprecedented ability to bend their digital environments to their exact whims, the underlying mechanisms have become opaque. We are rapidly approaching a future where AI might eventually interface directly with hardware, a leap comparable to the emergence of biological life from genetic code. We may achieve the ultimate freedom to manifest our digital imaginations without restriction, but in doing so, we have sacrificed the ability to truly understand how our machines function.
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 生成系统所必需的人工监督与深厚技术素养。 • Perspectives on AI in software development are polarized, ranging from the view that LLMs render traditional programming obsolete to the belief that they are merely flawed tools that produce verbose, unmaintainable, or insecure code.
• The "vibe-coding" approach, where developers delegate implementation to AI, is criticized for fostering laziness and creating a "black box" dependency that undermines the craft and understanding of systems.
• Some developers fear AI will create a cycle of "enshittification," where software becomes a layer of buggy, machine-generated sludge, while others argue that AI democratizes access to complex fields for those without formal engineering training.
• The loss of technical constraints is argued to be a net negative, as limitations historically served as a catalyst for human creativity and the development of original ideas.
• The Free Software movement faces an identity crisis, with some arguing that AI represents the ultimate realization of Stallman's vision—empowering anyone to modify software—while others see it as the destruction of software freedom through reliance on proprietary, closed-source models.
• There is a significant distinction between using AI to assist in high-level tasks and allowing it to replace deep understanding, with many experienced engineers advocating for the continued necessity of deterministic, hard-coded infrastructure.
• The debate over AI in open-source projects, such as the push for LLM-free versions of Emacs, highlights a deep-seated tension between embracing new technology and preserving the ethos of collaborative, human-led development.
• Concerns exist regarding the long-term impact on the next generation of engineers, who may rely on AI during their education and fail to develop the foundational knowledge required for rigorous system design.
• The discussion reflects a broader shift toward "managing" AI agents rather than writing code, leading to an "upward retreat" where human value is increasingly pushed toward business decisions, product management, and QA.
• Despite the trend toward AI-driven workflows, some practitioners find that tools like Emacs remain indispensable for text consumption and organization, proving that traditional, extensible software still offers unique value over newer, automated alternatives.
The conversation highlights a profound tension between the efficiency gains of AI-assisted development and the erosion of technical agency. While many embrace LLMs as powerful tools for rapid prototyping and accessibility, a recurring theme is that "vibecoding" risks creating a dependency on opaque systems that few truly understand. Participants express a sense of mourning for the craft of engineering, suggesting that as software becomes easier to produce through automation, the underlying ability to solve complex problems and build reliable infrastructure is at risk of atrophy. Ultimately, the discourse suggests that the future of development lies in finding a middle ground: leveraging AI for productivity while maintaining the human oversight and deep technical literacy necessary to manage the systems it generates.