在技术界,一个被长期忽视的概念正悄然复兴——“可塑性计算”(Malleable Computing)。它并非新词,却在当下闭源软件与黑盒算法日益膨胀的背景下,显得格外珍贵。而谈及可塑性,几乎没有一个工具比Emacs更具代表性:这款诞生于1976年的编辑器,至今仍是“可塑性计算”理念最生动的实践者。
什么是可塑性计算?
简单来说,可塑性计算意味着软件不应是僵化的成品,而应是一团可被用户任意揉捏的“黏土”。用户不仅能用它完成既定任务,更能深入其内部,修改行为、组合功能、甚至创造全新的工具。这与现代主流软件的“即开即用”哲学截然相反——大多数应用将用户锁在预设的界面与工作流中,拒绝任何底层修改。
计算机科学家兼作家Steve Yegge曾评价:“真正的可塑性系统,能让用户以极低成本改变软件的行为,甚至改变其本质。”而Emacs,正是这一理念的活化石:它的核心是一个Lisp解释器,所有功能——从编辑文本到收发邮件、浏览网页——都是用Emacs Lisp编写的插件。用户不仅能自由安装社区包,更可随时用M-x eval-buffer执行自己的代码,将编辑器改造成任何形态。
Emacs:可塑性的极致范式
Emacs的可塑性体现在三个层面:
-
语言为基础:Emacs Lisp是内置的编程语言,这意味着用户无需外部工具即可修改编辑器。“一旦你学会了Emacs Lisp,编辑器就变成了一台真正的计算机,而不仅仅是文本编辑工具。”资深Emacs用户、程序员王磊对记者表示。
-
无边界扩展:Emacs的包管理系统(ELPA、MELPA)提供超过1万个插件,涵盖编程、写作、项目管理、甚至音频播放。更关键的是,这些包可以互相调用和覆盖——用户相当于拥有一个“软件乐高”平台。
-
实时交互:Emacs摒弃了“编辑-编译-运行”的循环。用户在
*scratch*缓冲区中修改代码,按下C-j即可立即执行并看到结果。这种“即时反馈”让软件调整成为轻松的游戏。
为何“You”需要关注可塑性?
在VS Code、Sublime Text等现代编辑器主导的时代,Emacs似乎显得老派。但“可塑性计算”的复兴,恰恰源于主流工具的局限性。
· 应对碎片化需求:每个知识工作者的工作流都是独特的。可塑性软件允许用户从底层拼接工具,而非等待厂商“喂”功能。例如,一位学术研究者可能希望Emacs能自动从PDF提取引用并插入Zotero数据库——这在Emacs中只需编写短短几十行Lisp。
· 抗拒软件厂商锁定:当你的工作流完全依赖某个闭源SaaS平台时,一旦平台涨价、改版或倒闭,你将付出巨大迁移成本。而Emacs的所有配置都是纯文本文件(.emacs.d),可自由备份、共享、版本控制——用户拥有真正所有权。
· 提升思维效率:可塑性系统的核心是“元认知”——用户思考如何与工具交互本身,就是最好的编程练习。正如计算机科学家Bret Victor所言:“真正的创造者不应该被工具限制,而应该能够塑造工具。”
历史回响与未来趋势
上世纪80年代,可塑性计算曾是计算机界的共识。Unix哲学鼓励小工具组合,Smalltalk环境允许用户动态修改类。但商业力量将软件推向“黑箱化”——为了易用性与安全,用户被逐渐剥夺了修改权限。
而今天,情况正在改变:低代码平台、Notion的公式字段、Figma的插件系统,都在试图在易用性与可塑性间寻找平衡。但Emacs始终坚持最彻底的版本——它不提供“开箱即用”的舒适,而是提供“开箱即变”的自由。
资深开源倡导者Eric Raymond在《教堂与集市》中写道:“好的软件允许你修改它,伟大的软件鼓励你修改它。”Emacs无疑是后者。对于任何希望摆脱工具被动地位的技术工作者来说,探索可塑性计算,从打开一个*scratch*缓冲区开始,或许就是最好的起点。
未来,随着AI辅助编程的普及,可塑性系统的门槛将进一步降低——用户可能只需用自然语言描述需求,系统便能生成对应的Lisp代码。届时,“Malleable Computing, Emacs, and You”中的“You”,将不再只是极客,而是每一个渴望掌控数字生活的普通人。