Synth Daily

Lisp 机器的黄昏与败局

这篇文章直截了当地驳斥了对 Lisp 机器(Lisp Machines)的浪漫化怀旧,指出这种专用硬件早在 30 多年前就已被通用架构(如 RISC)彻底击败。作者通过拆解关于开发环境、运行速度和底层控制权的常见神话,论证了现代通用硬件和编译器已经能够提供远超当年的性能和体验。文章的核心结论是,对“失落的 Lisp 机器”的执念本质上是一种“器材购置综合症”(GAS)——它是开发者为了逃避自身创造力不足而构建的心理借口,真正的阻碍从来不是硬件,而是人自己。

历史的冷酷真相

让我们面对现实:Symbolics 公司早在 1993 年就破产了,而 Lisp 机器作为一个可行的概念,实际上在 1980 年代末期就已经终结。

  • 通用架构的胜利: 并不是什么阴谋,而是 RISC(精简指令集)架构的兴起彻底击垮了专用硬件。早在 1987 年,早期的 RISC 机器在运行 Common Lisp 时的基准测试表现就已经超过了 Symbolics 机器。
  • 时间跨度: Symbolics 3600 发布于 1983 年。那些将 Lisp 机器作为生产力工具而非博物馆藏品使用的人,现在都已经老了。
  • 短暂的辉煌: Lisp 机器确实曾提供过大约五年的性能优势,但这大概是四十年前的事了。

是时候放手了。那些至今仍在重复神话的浪漫主义者,大多是在自欺欺人。

逐个击破:关于 Lisp 机器的虚假神话

怀旧者总是用一套固定的说辞来神话过去,但这些论点在技术事实面前根本站不住脚。

1. “那是无与伦比的开发环境”

并非如此。 诚然,当年的环境很酷,主要是为了掩盖硬件速度慢和内存不足的缺陷(避免耗时极长的重启)。

  • 今天我们没有那样的环境,并不是因为缺少 Lisp 机器,而是因为现代计算机速度极快,根本不需要那些变通手段。
  • 如果你想要一个那样酷的开发环境,完全可以在现有的库存硬件上构建出来。硬件不是借口。

2. “它们的速度比什么都快”

完全错误。 请停止这种幻想。早在几十年前,通用处理器就在速度上碾压了专用硬件。

3. “硬件支持用户微码(Microcode)编程”

这听起来很极客,但实际上毫无意义。

  • 谁在写微码? 几乎只有机器的制造者。这是为了在有限的晶体管数量下实现复杂指令集(CISC)的一种妥协手段。
  • 用户的角色: 绝大多数用户根本不会去写微码。现代编译器生成的代码更加高效,根本不需要这种过时的底层手动优化。

4. “这是彻头彻尾的 Lisp 系统(Lisp all the way down)”

这一点或许有些道理,你可以随时修改系统的任何部分。但在今天,这叫做安全噩梦

  • 零隔离: 在 1985 年,没人关心安全性。但在今天,如果你的浏览器可以随意修改磁盘驱动器或嗅探网络缓冲区,那是不可接受的。
  • 现代实现: 如果你真的想要一个“纯 Lisp”的系统,现在的硬件完全支持你写一个。你不需要专用芯片,你需要的是动手去写代码。

关于编译器的迷思

有人声称“在标准硬件上很难写出好的 Lisp 编译器”,这完全是陈词滥调。

  • 性能强劲: 今天的 Common Lisp 编译器(如 SBCL)生成的浮点代码性能与 LLVM/Clang 相差无几。
  • 技术复用: 现代动态语言(如 Julia)的高性能编译技术完全可以被 Lisp 借鉴。
  • 无需权衡: 现代编译器既快又好。我们甚至可以在语言层面标准化优化选项,告诉编译器“让这个内部循环跑得飞快,我已经检查过边界了”。

在通用硬件上实现高性能 Lisp 并不存在任何技术障碍。

真正的障碍:器材购置综合症 (GAS)

为什么人们还在怀念 Lisp 机器?这和摄影师或音乐家中间流行的 GAS (Gear Acquisition Syndrome) 是一回事。

器材党的谎言: 人们不停地购买新相机、新吉他,或者怀念绝版的胶片,幻想拥有了这些器材就能拥有大师般的才华。这是一种自我欺骗,用来逃避一个尴尬的事实:你需要的其实是大量的练习,而不是更好的装备。

Lisp 机器的浪漫主义就是程序员版本的 GAS。我们在这个不存在的障碍面前停滞不前,因为这样我们就不用面对镜子里的自己,不用承认阻碍我们做出惊人创新的唯一因素,就是我们自己

别再哀悼那个逝去的时代了,现在的显卡和处理器比当年的超级计算机强大无数倍。如果你真想做什么,闭嘴,开始写代码。