在AI能替你写代码的2026年,一段录制于1986年的粉笔板书课程,反而是YouTube上被程序员反复重修的编程神课。它不教你任何框架——教的是框架出现之前,编程这个行当到底在干什么:什么是“过程”,什么是“抽象”,为什么说写程序的本质是造一门语言。看过它的人常说:大学四年不如这一讲。本文替你把这一讲的知识精华全部拆开、溯源、验收,并告诉你它在AI时代为什么突然变得更值钱了。
| 项目 | 内容 |
|---|---|
| 视频标题 | Lecture 1A: Overview and Introduction to Lisp(第一讲A:总览与Lisp入门) |
| 所属课程 | MIT 6.001《计算机程序的构造和解释》(SICP) |
| 主讲人 | Harold Abelson(阿贝尔森)、Gerald Jay Sussman(萨斯曼) |
| 频道 | MIT OpenCourseWare(MIT官方开放课程频道) |
| 录制与发布 | 1986年7月录制于惠普公司礼堂,后由MIT OCW官方上传至YouTube |
| 时长 | 约1小时 |
| 热度 | 长期位列该频道播放量最高的课程视频之一,播放量达百万级(据频道页面,本文数据为撰写时近似值) |
| 配套教材 | 《Structure and Interpretation of Computer Programs》(1985年初版,MIT Press) |
注:本文所引热度数据均据MIT OpenCourseWare频道页面及公开渠道的长期稳定信息,为近似值;视频发布于互联网早期存档,历次平台改版数据仅供参考。
这一讲最出名的,恰恰是它开场的“劝退式祛魅”。阿贝尔森开门见山地说:computer science(计算机科学)是个 terrible name(糟糕透顶的名字)——它既不是一门科学,也和计算机本身关系不大。天文学不是关于望远镜的学问,几何学也不是关于三角板的学问,同理,计算机科学的内核不是那台机器。
那它是什么?阿贝尔森给出了这堂课流传最广的比喻:程序员是巫师的学徒(sorcerer's apprentice),程序就是咒语(spell)。咒语是思想世界里最没有约束的造物——不像工程师造桥要受材料与重力管束,程序员的“咒语”可以凭空组织出千军万马,唯一的约束是自己的思维是否清晰。这也意味着危险:咒语念错了,灾祸也是凭空放大的。这层比喻不是段子,它为全课定调:这门学问的核心是控制复杂度,而不是驯服机器。
顺带一提,主讲人甚至调侃了Lisp这个名字——圈子里素有" Lots of Irritating Silly Parentheses(一堆惹人烦的多余括号)"的玩笑,但两位主讲人仍然坚持:这可能是表达计算思想的最佳语言。为什么?这是后面第三刀要解开的悬念。
祛魅之后,课程立刻切入全讲最重要的知识分界:声明性知识(declarative knowledge)与过程性知识(imperative knowledge)。
“什么是平方根”——这是个声明性问题:存在某个数y,使 y² = x 且 y ≥ 0。中学数学给出的是这种“是什么”的答案。
“怎么算出平方根”——这才是过程性问题。阿贝尔森搬出了近两千年前亚历山大港的海伦(Heron of Alexandria)在《Metrica》中记载的迭代法:猜一个数y,取 y 与 x/y 的平均,作为新的猜测,反复迭代,结果会迅速逼近真平方根。这一小段“猜测—修正—再猜测”的机械步骤,就是人类最早有记录的“算法”之一。
这一刀切得极深:数学书里写的是真理的清单,程序里写的是动作的序列。声明性知识说“什么为真”,过程性知识说“如何去做”。整个计算机科学的桥梁,就是把前者翻译成后者——把“存在这样的y”翻译成“按这个步骤你就能得到y”。这也是本讲标题里“过程(procedure)”概念的真正含义:过程是用声明性知识压铸出来的可执行物。
今天回头看,这条分界线比1986年更加显眼:SQL、Prolog、Haskell乃至正则表达式,都是声明式家族的成员;而C、Python的大多数代码是过程式的。数据库里你声明“我要什么”,查询优化器决定“怎么拿”——你每天都在享受这条分界线带来的红利,只是未必意识到它。
接下来萨斯曼抛出他自称本课最重要的思想:黑盒抽象(black-box abstraction)。内容可以压缩成三个关键词——一门语言必须提供:
有了这三样,你就可以玩本讲最精彩的教学魔术——“许愿式思考”(wishful thinking):要算平方根,先假装一个叫sqrt的黑盒已经存在,直接在主程序里“许愿”调用它;然后回头兑现愿望——把sqrt拆成“判断收敛”和“迭代修正”两个更小的黑盒;如此层层拆解,直到落到语言原语为止。
这个演示的妙处在于:你还没写实现,系统的骨架已经立起来了。每个黑盒只需要向外界承诺“我做什么”(接口),而不必暴露“我怎么做”(实现)。这和David Parnas在1972年CACM经典论文《On the Criteria That Systems Should Be Used to Decompose Systems》中提出的信息隐藏原则,是同一枚硬币的两面——模块化的依据不是流程图的步骤,而是“哪些设计决策可能变化、可以藏进黑盒”。
而“黑盒”三个关键词,其实就是一张永久有效的代码评审清单:你设计的每个函数、每个模块,能不能说出它的基本操作是什么?组合规则是什么?调用方需要知道多少内部细节?四十年后看依然一针见血。
谜底揭晓。两位主讲人选Scheme(Lisp方言,1975年由Guy Steele与Sussman设计)作为教学语言,理由并不是“上古情怀”,而是一个技术判断:Lisp的表达方式异常统一。
在Lisp里,一切皆S表达式:(+ 1 2)、(define (square x) (* x x))——程序和数据是同一种东西(列表)。这带来一个惊人的推论:用程序去操作程序,和用程序去操作数据,是同一件事。所以在Lisp里,“写一个求值器(解释器)”不是高不可攀的神技,而是一个顺理成章的练习。
萨斯曼在此给出了本讲最硬核的一击:支撑起整个Lisp语言的,其实只需要屈指可数的几个原语——其他一切都能由“基本表达+组合+抽象”这三板斧构造出来。当语言的核心小到可以被完整理解时,程序员第一次获得了创造语言而不只是使用语言的自由。
这也是整门课程的终极伏笔:SICP系列的后续讲座(尤其是著名的第4A讲)会带着学生用Lisp亲手写出一个Lisp解释器——所谓的元循环求值器(metacircular evaluator)。学到最后你会发现:所谓编程范式、所谓新框架,本质上都是一门“新语言”;而理解一门语言的最好方式,就是把它的求值器写出来。这就是标题那句话的出处——编程的最高形态,是造语言。
这门课不是空中楼阁,每个主张都有扎实的来路:
证据充分的部分:声明性/过程性二分是计算理论的标准框架;黑盒抽象与信息隐藏是软件工程界四十年反复验证的原则;海伦法的收敛性有严格数学证明。这三块闭眼收下。
被浪漫化的部分:其一,“巫师与咒语”的比喻精彩但危险——它美化了不受约束的创造力,却弱化了现代软件工程赖以存活的约束:测试、评审、版本控制、类型系统。真实的工程是在“咒语自由”与“桥梁纪律”之间找平衡。其二,“黑盒万能”有代价:抽象层数堆太高,性能账单会找上门;性能敏感系统经常要“打穿黑盒”做数据布局优化,这在1986年的课堂里几乎没有讨论。其三,“计算机科学不是科学”的断言在机器学习时代更微妙了——今天的ML研究大量依赖实证测量,科学味反而变浓。
最大的争议发生在教学法层面:SICP以“对新手太难”闻名。连MIT自己都在2008年前后用Python课程取而代之——支持者说这是务实,反对者(包括部分原班教师)说这是教学生“调库”而非教学生“思考”。平心而论,两派都有道理:6.001的前提假设是面向已经被筛选过、且未来要写复杂系统的学生;对今天的多数学习者,直接硬啃SICP确实容易劝退。更现实的姿势是:把这一讲当“思维按摩”看,把书当参考书查,而不必按武林秘籍的方式从头修炼到尾。
2023年Andrej Karpathy说“最热门的新编程语言是英语”,2025年"vibe coding"一词爆红——AI替人敲代码已成日常。于是问题来了:当“打字部分”被自动化,程序员剩下的核心竞争力是什么?
答案恰恰是这一讲从头讲到尾的两样东西:划分黑盒的能力(决定AI生成的代码块之间如何衔接、边界与承诺是什么)与设计语言的能力(为问题域发明恰当的词汇与规则,再用AI去填实现)。换句话说,1986年这堂课教的是“怎么写出咒语”;2026年的你需要它教的其实是“怎么设计咒语的语法”,然后让AI去念。老神课在这个意义上完成了一次漂亮的返老还童。
flowchart TD
A[开场祛魅<br/>CS是个坏名字] --> B[程序员如巫师<br/>程序即咒语]
B --> C[第一刀<br/>是什么 vs 怎么做]
C --> D[海伦迭代法<br/>过程性知识落地]
D --> E[第二刀<br/>黑盒抽象]
E --> F[三大机制<br/>原语 组合 抽象]
F --> G[许愿式思考<br/>先定接口再兑现]
G --> H[第三刀<br/>为什么是Lisp]
H --> I[S表达式<br/>代码即数据]
I --> J[系列伏笔<br/>用Lisp写Lisp解释器]
J --> K[终极主张<br/>编程即造语言]
本文由「51学通信」技术团队出品。51学通信由通信行业18年老兵爱卫生(微信ID: gprshome201101)维护,聚焦5G/6G核心网、3GPP标准解读、通信前沿技术深度分析。 出版作品有《5G核心网原理与实践》《IMS原理与实践》等4本通信专业书籍。知识星球「51学通信」提供深度技术答疑和行业洞察。
[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。
