← 返回故事列表

括号里的创业:两个理想主义者如何用“最小内核”颠覆编程世界

时代:1975
阅读时间:8 分钟
浏览:4
点赞:0

1975年,麻省理工学院人工智能实验室的一间办公室里,两位年轻的程序员——Guy Steele和Gerald Sussman——正面临一个看似矛盾的选择:他们发现,当时主流的Lisp语言虽然被誉为“人工智能的母语”,却深陷于一个致命的缺陷——动态作用域。这个缺陷让Lisp程序变得难以预测,如同在迷雾

# 括号里的创业:两个理想主义者如何用“最小内核”颠覆编程世界 1975年,麻省理工学院人工智能实验室的一间办公室里,两位年轻的程序员——Guy Steele和Gerald Sussman——正面临一个看似矛盾的选择:他们发现,当时主流的Lisp语言虽然被誉为“人工智能的母语”,却深陷于一个致命的缺陷——动态作用域。这个缺陷让Lisp程序变得难以预测,如同在迷雾中驾驶。他们决定抛弃现有的一切,从零开始设计一门语言,只保留最纯粹的Lisp核心:词法作用域、函数作为一等公民、以及仅用七个原语就能构建一切。他们把这门语言命名为“Scheme”——一个听起来像“阴谋”或“计划”的名字。但问题是:在MIT这个功利主义至上的技术殿堂,谁会为这种“学术玩具”买单?他们不知道,这个“创业项目”将彻底改变计算机科学的数学根基,并在四十年后成为全世界程序员的精神图腾。 ## 创业的起跑线:为什么“最小化”才是最大的野心 故事要从1970年代初的MIT AI Lab说起。当时,Lisp是统治性语言,几乎所有AI研究者都在用。但Gerald Sussman和Guy Steele发现了一个令人不安的事实:Lisp的“动态作用域”让函数在运行时才能确定变量绑定的上下文,这导致程序行为难以调试,仿佛每个函数都戴着不同面具。更糟糕的是,Lisp语言本身臃肿不堪——有几十种特殊形式、数百个内置函数,像一座未加设计的巴洛克宫殿。 “我们需要一个更干净的东西。”Sussman对Steele说,“就像数学里的公理系统——用最少的公理推导出所有定理。”Steele当时是MIT的本科生,却已经对编译器设计有超乎寻常的直觉。两人在1975年发表了那篇著名的论文《Lambda: The Ultimate Imperative》,标题本身就是宣战:他们声称,Lambda演算(函数式编程的数学基础)不仅能表达函数,还能表达赋值、循环、异常处理——一切命令式编程的特性。 这是一个“创业公司”的经典起点:发现主流产品的根本性缺陷,然后决定用更小的产品去颠覆它。他们的“最小可行产品”就是Scheme——一个内核只有七个原语(如`car`、`cdr`、`cons`、`lambda`)的语言。但最小化并不意味着弱小,恰恰相反,它意味着极致的力量:因为所有复杂功能(如循环、赋值、宏)都可以用这几个原语“推导”出来。这就像用几个乐高积木搭建出整个城市——每一个程序员都成了建造者,而不是使用者。 技术挑战是巨大的。首先,他们必须证明词法作用域在Lisp中是可行的。当时,主流的Lisp实现(如MacLisp)都认为词法作用域效率太低,因为每个函数都需要携带一个“词法环境”的快照。但Steele设计了一个精巧的编译器,利用闭包来捕获环境,使得性能几乎无损。其次,他们必须说服学术圈:这么小的语言真的够用吗?1977年,他们用Scheme实现了第一个“元循环求值器”——一个用Scheme本身写的Scheme解释器,只有几十行代码。这证明了:Scheme的最小内核不仅是完整的,而且是自解释的。 ## 商业与学术的岔路口:拒绝融资,选择教育 1980年代初,Scheme开始从MIT扩散到其他大学。这时,一个真正的“商业决策”摆在面前:是否将Scheme商业化?当时,Lisp的商业版本(如Interlisp、Common Lisp)已经出现,背后有Xerox PARC、Symbolics等公司支持,每个售价数万美元。Steele和Sussman完全可以成立一家公司,把Scheme包装成“更优雅的Lisp”卖给企业。 但他们做出了一个反直觉的决定:绝不商业化。Sussman在一次访谈中说:“Scheme不是产品,它是思想。”他们选择了一条更艰难的路:将Scheme作为教学工具,彻底改革计算机科学教育。1984年,他们与Harold Abelson合著了《计算机程序的构造和解释》(SICP),这本书用Scheme作为载体,教授如何从基本原理构建软件。书中没有GUI、没有数据库、没有网络——只有“过程、数据、抽象”。这听起来像是自杀式的商业策略,但恰恰是Scheme的“最小化”哲学赋予了它教育上的巨大力量:学生只需要学会七个原语,就能理解整个编程语言的运作原理。就像学物理只需要牛顿三定律,Scheme让编程变得像数学一样清晰。 这个“非商业决策”带来了意想不到的转折。因为Scheme没有被任何公司控制,它成为了学术界最自由的语言:每个大学都可以按照自己的理解实现Scheme方言。于是,在1980到1990年代,出现了上百种Scheme实现,从MIT Scheme到Chez Scheme,从DrScheme到Gambit。这种“碎片化”本是商业的噩梦,却意外催生了Scheme的进化:不同实现之间互相竞争,推动了宏系统、续延(continuation)、垃圾回收等领域的突破。1986年,IEEE和ANSI甚至启动了Scheme标准化工作,最终在1998年发布了“Revised^5 Report on the Algorithmic Language Scheme”(R5RS)——一份只有50页的标准,而同时期C++的标准有800页。 ## 遗产:为什么“最小化”在商业世界中反而赢了 进入21世纪,Scheme似乎被边缘化了。Python、Java、JavaScript占据了主流市场,Scheme的括号语法让初学者望而生畏。但Scheme的遗产却以“幽灵”的形式渗透到所有现代语言中。它的词法作用域和闭包成为了JavaScript的核心特性;它的“一等函数”成为了Python、Ruby、Scala的设计哲学;它的宏系统启发了Rust和Elixir的元编程;它的续延机制被Haskell的Monad间接继承。甚至连最商业化的语言——C#——也在2010年代引入了Lambda表达式和闭包,而这一切都可以追溯到1975年那篇论文。 更讽刺的是,Scheme的“最小化”哲学最终在商业世界取得了胜利。当云计算和微服务时代来临时,程序员们开始追求“小即是美”——容器、无服务器架构、函数即服务(FaaS)。Scheme那种“用最少原语做最多事”的理念,变成了现代软件架构的圣经。今天,如果你去参加一个React或Node.js的开发者大会,你会发现每个人都在谈论“纯函数”、“不可变数据”、“组合优于继承”——这完全是Scheme的词汇表。 而Sussman和Steele的“创业故事”也成为了一个神话:他们证明了,最好的“产品”不一定是最赚钱的,而是最能改变思想的。他们没有融资、没有上市、没有破产——他们只是写了一篇论文、一本教材、一门语言,然后让世界自己来追赶。 ## 评论 Scheme的传奇揭示了一个反直觉的商业真相:在技术领域,**“最小化”往往比“最大化”更具长期颠覆力**。大多数创业公司沉迷于功能堆砌——更多的特性、更大的团队、更快的迭代。但Scheme告诉我们,真正的创新不是做加法,而是做减法:用更小的内核去解决更大的问题。这种哲学在教育领域尤为深刻——SICP教材之所以能历经四十年而不衰,正是因为它不教“如何使用框架”,而是教“如何从第一原理思考”。在今天的AI时代,当程序员们被各种框架和工具淹没时,Scheme的遗产提醒我们:最好的工具不是功能最多的,而是最接近本质的。它没有改变编程的“工作方式”,但它改变了编程的“思考方式”——而这,才是技术创业的终极使命。 ## 参考资料 - [Scheme (programming language) - Wikipedia](https://en.wikipedia.org/wiki/Scheme_(programming_language)) — Scheme语言的历史、设计和标准化过程 - [Lambda: The Ultimate Imperative (1975) - MIT AI Lab](https://dspace.mit.edu/handle/1721.1/5794) — 原始论文,首次提出Scheme的核心思想 - [Structure and Interpretation of Computer Programs (SICP) - MIT Press](https://mitpress.mit.edu/sites/default/files/sicp/index.html) — 使用Scheme的经典教材,影响了几代程序员 - [Guy Steele: The Evolution of Lisp - ACM](https://doi.org/10.1145/3191697.3191734) — Steele本人对Lisp和Scheme演变的回顾 - [Why Scheme? - Paul Graham](http://www.paulgraham.com/whyarc.html) — 创业者和程序员Paul Graham对Scheme独特价值的评论

发布于 2026/7/4