【黄金时代厅】
1975年,Interlisp (Xerox PARC)正式问世。由Xerox PARC主导开发,面向跨平台平台用户。
交互式编程的先驱,让LISP从理论走向实用工具。
技术特色:编程语言、人工智能、开发环境。
影响力评估:技术维度 8/10,商业维度 5/10,文化维度 7/10,用户维度 4/10。
作为黄金时代厅的经典代表,Interlisp (Xerox PARC)在软件发展史上留下了深刻的印记。
交互式编程的先驱,让LISP从理论走向实用工具。
【黄金时代厅】
1975年,Interlisp (Xerox PARC)正式问世。由Xerox PARC主导开发,面向跨平台平台用户。
交互式编程的先驱,让LISP从理论走向实用工具。
技术特色:编程语言、人工智能、开发环境。
影响力评估:技术维度 8/10,商业维度 5/10,文化维度 7/10,用户维度 4/10。
作为黄金时代厅的经典代表,Interlisp (Xerox PARC)在软件发展史上留下了深刻的印记。
1975年,当大多数程序员还在穿孔卡片和电传打字机前排队等待批处理作业时,位于加州帕洛阿尔托的施乐帕克研究中心(Xerox PARC)里,一群研究人员正坐在一台名为Alto的图形工作站前,用鼠标点击着窗口,在一个名为Interlisp的环境中实时编写和调试代码。他们面前的屏幕上,不仅有代码,还有可以展开的菜单、可以拖动的窗口,甚至有一个名为DWIM的程序会猜测他们想输入什么,然后自动修正错误。这种体验,对于当时的整个计算机世界而言,几乎像是来自未来。
要理解Interlisp有多么超前,就必须先回到那个时代的编程环境。上世纪七十年代初,计算机是庞大、昂贵且稀缺的资源。程序员的典型工作流程是:在纸上写好程序,用穿孔机将代码打在卡片上,将一叠卡片交给操作员,等待数小时甚至一天,然后拿到一份打印输出,上面可能只写着“语法错误”。即便是当时最先进的交互式系统,如麻省理工学院(MIT)的ITS或Multics,也主要基于字符终端,键盘是唯一的输入设备,屏幕只能显示固定宽度的绿色或琥珀色字符。LISP语言本身,尽管由约翰·麦卡锡在1958年发明,一直被视作人工智能研究的利器,但它的运行环境往往简陋得令人沮丧——大多数LISP系统运行在专用硬件上,比如MIT的PDP-6和PDP-10,程序员必须记住晦涩的调试命令,通过命令行与系统对话。LISP的强大——它的符号计算、递归、垃圾回收——被其糟糕的开发体验所掩盖。
正是在这样的背景下,施乐帕克研究中心开始了一场静默的革命。帕克成立于1970年,目标不是制造更好的复印机,而是探索“未来的办公室”。这里汇聚了计算机科学史上最耀眼的一群头脑:艾伦·凯(Alan Kay)、巴特勒·兰普森(Butler Lampson)、查尔斯·西蒙尼(Charles Simonyi),以及后来因以太网获得图灵奖的罗伯特·梅特卡夫(Robert Metcalfe)。他们相信,计算机应该成为个人使用的工具,而不是被锁在玻璃房中的怪兽。这个信念催生了Alto(1973年),世界上第一台配备图形用户界面、鼠标和位图显示的个人计算机。而Interlisp,正是为了让这台神奇机器上的编程变得流畅、直观甚至愉悦而诞生的。
Interlisp的起源可以追溯到1970年代初的BBN(Bolt, Beranek and Newman)公司,那家后来因开发ARPANET和互联网早期路由技术而闻名的公司。在BBN,一个由丹尼尔·G·博布罗(Daniel G. Bobrow)和沃伦·特尔曼(Warren Teitelman)领导的团队,正在开发一套名为BBN LISP的系统。这套系统运行在PDP-10上,但它最大的创新不在于语言本身,而在于它提供的“编程环境”。博布罗和泰特尔曼发现,程序员的大部分时间不是在写新代码,而是在调试、修改和理解现有代码。他们决定构建一套工具,让这些常见任务变得自动化。1972年,这个系统被重命名为Interlisp,意为“交互式LISP”。随后,施乐帕克向BBN购买了一份Interlisp的许可证,并开始将其移植到Alto上。这项工作由帕克的拉里·马斯拉特(Larry Masinter)和来自BBN的沃伦·泰特尔曼主导。1975年,运行在Alto上的Interlisp-D(D代表Display)正式发布,它不仅是LISP的方言,更是人类历史上第一个真正意义上的集成开发环境(IDE)。
Interlisp-D的核心技术令人瞠目结舌。首先,它完全运行在Alto的图形用户界面之上。程序员面对的不是命令行,而是一个充满窗口、图标和菜单的桌面。鼠标可以点击、拖拽、选择文本。代码不再是一行行单调的字符,而是可以折叠、高亮、以不同字体显示的符号。Interlisp的编辑器(称为Tedit或后来的DEdit)不是简单的文本编辑器,它是一个结构编辑器,能够理解LISP的S表达式(括号结构),允许程序员以语法单位(如函数定义、参数列表)来操作代码,而不仅仅是逐字修改。这意味着,你可以直接拖拽一个函数到另一个位置,系统会自动调整缩进和括号匹配,永远不会出现括号不匹配的语法错误。
但Interlisp最传奇、最令人津津乐道的功能是DWIM——Do What I Mean。这个名字本身就是一种宣言:系统应该理解程序员的意图,而不是机械地执行字面指令。DWIM是一个纠错引擎,当编译器或解释器遇到错误时,它不会简单地报错然后停止,而是会尝试猜测程序员真正想写什么。比如,你打错了函数名,把PRINT打成了PRNIT,DWIM会检查所有已定义的函数名,找到最接近的匹配,然后自动修正,并继续执行。它甚至能处理更复杂的错误,比如忘记关闭括号、变量名拼写错误等。当然,DWIM并非万能,有时它会猜错,导致程序执行出意料之外的结果。但据统计,在大多数日常编程中,DWIM的正确率超过90%。这个功能极大地减少了程序员的“摩擦感”,让他们可以专注于逻辑,而不是语法细节。DWIM背后是一套复杂的启发式算法和词法数据库,它代表了人工智能早期在“用户意图理解”上的大胆尝试。
除了DWIM,Interlisp还提供了MasterScope——一个程序分析工具,可以显示函数之间的调用关系、变量的使用情况,甚至可以自动生成调用图。在当时,这相当于拥有一个内置的代码审查助手。还有CLISP(Conversational LISP),它允许程序员用类似自然语言的短语来调用系统功能,比如“编辑函数FOO”或“编译所有未编译的函数”。Interlisp还支持增量编译:当你修改一个函数时,系统只重新编译那个函数,而不是整个程序。这使得在Alto这样内存只有128KB到512KB的机器上,大型LISP程序的开发周期从小时级缩短到秒级。帕克的研究人员将这些工具统称为“程序员助手”(Programmer's Assistant),它们共同构建了一个闭环:写代码、测试、发现错误、自动修正、继续测试。
Interlisp的诞生,正值人工智能的第一次黄金时代。施乐帕克本身就是AI研究的重镇。在这里,Interlisp成为了许多突破性工作的试验场。最著名的例子是MYCIN,一个由斯坦福大学开发、运行在Interlisp上的医疗诊断专家系统,能够根据症状推断细菌感染类型并推荐抗生素。另一个是XCON(又称R1),由卡内基梅隆大学为DEC公司开发,用于配置VAX计算机系统,它运行在Interlisp上,每年为DEC节省数千万美元的配置错误成本。在帕克内部,Interlisp被用于开发文档排版系统、网络协议分析工具,甚至早期的电子表格原型。艾伦·凯的Smalltalk团队虽然使用不同的语言,但Interlisp的交互式图形环境深深影响了他们。可以说,Interlisp是那个时代AI研究者的标配,就像今天的Python之于机器学习研究者。
然而,Interlisp的历史也是一部关于“伟大技术如何错失市场”的教科书。施乐帕克虽然诞生了无数革命性发明,但施乐公司的高层始终无法理解这些技术的商业价值。他们更关心如何卖更多的复印机。Alto从未被作为商业产品大规模销售,Interlisp自然也仅限于帕克内部和少数合作大学使用。1981年,施乐终于推出了商业化的Star工作站,它拥有比Alto更精致的界面,但价格高达1.6万美元,且主要面向办公室文档处理,而不是编程。Star上运行的是更商业化的Interlisp-D的变体,但市场反应冷淡。与此同时,个人计算机革命已经爆发。苹果的Macintosh(1984年)将图形用户界面带给了大众,但它的编程环境是Macintosh Toolbox,一个基于C语言和Pascal的库。LISP这种需要垃圾回收和动态类型的语言,在当时内存和CPU都极为有限的机器上显得过于庞大。
到了1980年代中期,LISP的生态开始分裂。麻省理工学院发展出Maclisp和后来的Common Lisp,而加州大学伯克利分校则推广更轻量的Scheme。Interlisp虽然功能强大,但它与Alto/Star硬件深度绑定,且施乐拒绝将其开源或移植到更便宜的硬件上。当1980年代末期,基于Unix的C语言工作站(如Sun Microsystems)成为主流时,Interlisp逐渐失去了用户。1990年代初,施乐最终停止了Interlisp的维护。它的最后一版是Interlisp-VAX,运行在VAX/VMS上,但那时,Common Lisp已经统一了LISP世界,而C++和Java正在崛起。
尽管商业上失败,Interlisp对后世的影响却如暗流般深远。首先,它定义了“集成开发环境”的概念。今天每一个程序员使用的IDE——无论是Visual Studio、Eclipse还是PyCharm——都继承了Interlisp的基因:语法高亮、结构编辑、增量编译、代码分析、自动补全。DWIM的“推测意图”精神,在现代IDE中演化为IntelliSense和代码建议。其次,Interlisp的MasterScope是今天静态代码分析工具(如SonarQube)和重构工具(如ReSharper)的鼻祖。第三,Interlisp的交互式、图形化编程理念,直接影响了后来的可视化编程环境,比如苹果的Interface Builder(1988年)和微软的Visual Basic(1991年)。甚至现代Web开发的“热重载”(Hot Reload)功能,也可以追溯到Interlisp的增量编译。
在文化遗产层面,Interlisp是一个关于“可能性”的纪念碑。它证明了,在1975年,当大多数计算机还在用纸带输入时,人类已经可以拥有鼠标、窗口和自动纠错。它提醒我们,技术的进步不是线性的,有些伟大的想法会沉睡数十年,直到硬件和生态成熟才重新苏醒。今天,随着WebAssembly和JavaScript的兴起,LISP的方言(如ClojureScript、Hy)正在浏览器中复兴,而交互式编程环境(如Jupyter Notebook)也在回归Interlisp的“对话式”传统。2021年,施乐帕克将Interlisp的源码作为历史档案公开,供研究人员和爱好者下载。一些复古计算爱好者甚至成功让Interlisp-D在模拟的Alto上重新运行,体验四十多年前那种“未来”的感觉。
最后,讲一个轶事。据说在帕克,一位访客看到Interlisp的DWIM自动修正了一个拼写错误后,惊叹道:“这太神奇了!它怎么能知道我想什么?” 沃伦·泰特尔曼微微一笑,回答说:“它不知道。它只是猜得比你犯错误的速度快。” 这句话,既是对技术的谦逊,也是对Interlisp设计哲学的精准概括:系统不必完美,只要足够有用,就能让人类创造力的流动不被琐碎打断。Interlisp如同一座被遗忘的灯塔,它的光芒虽然一度暗淡,但它的设计思想,早已渗透进每一个现代程序员敲击键盘的瞬间。
对技术发展和工程实践的推动程度
对商业模式和市场格局的影响深度
在科技文化和社会层面的持久影响力
用户群体的广度和普及程度