《若为自由故:自由软件之父理查德·斯托曼传》-–—第6章:Emacs公社

20世纪70年代,从哪个角度看,麻省理工学院的人工智能实验室都是个特别的地方。里面有尖端的项目和顶级的研究人员,为整个实验室赢来了美名。而实验室内部的黑客文化,无政府主义的基调又为实验室平添了一层反抗权威的个性。几年之后,实验室中很多科学家和明星开发人员纷纷离开,黑客们这才意识到自己曾经的环境是多么独特。

在一篇1998年《福布斯》杂志上的文章中,斯托曼回忆当时实验室的氛围,说:“那就好像是个伊甸园。在那样的环境中,我们不可能拒绝互相合作。”

这样的描述也许略显夸张,但却反映了一个很重要的事实:技术广场545号楼9层,那里曾经不仅仅是一个工作场所。对于像斯托曼一样的黑客来说,那里更像是家。

“家”这个字,在理查德⋅斯托曼的心中,有着特别的分量。他少年时,家中的变故和经历让他直到上了大学,才对家这个概念有所感悟,并心存感激。他曾把哈佛的宿舍当作自己第一个真正的家。描述起当年离开宿舍的时候,他甚至依然心存悲伤。有一次,他提起自己的大学生涯,说到大学期间最悔恨的一件事情就是被哈佛踢出校门。我问他究竟是触怒了何方神圣,才被赶出学校的。这才发现斯托曼早有准备:

“哈佛有个规矩,你修了太多的课程,就必须得毕业了。”斯托曼道。

离开了宿舍,又不想回纽约。斯托曼跟随着和格林布拉特、高斯伯、萨斯曼等人的足迹,来到了麻省理工学院,继续读博士。他在剑桥市一带租了一所公寓,但没有多久,他就把人工智能实验室当作了自己真正的家。在1986年的一次演讲中,斯托曼回忆起那时的人工智能实验室:

“比起其他人,我睡在实验室里的日子可能更久些。因为每隔一两年,我总会因为各种原因,有那么几个月的时间没地方住。这期间,我就住在人工智能实验室里。我一直觉得那里很舒服,冬暖夏凉。那个时候,睡在实验室一点也不稀奇。他们都是热情满满,一直写代码调程序,因为你实在不想停下来。等到实在太累了,就在旁边找片平坦舒服的地方,倒头睡下。大家都是这么不拘一格。”

实验室里的这种氛围,有时候也会引来麻烦。有些人把它看作是个宿舍,而外人看来就像是个电子大烟馆。1976年,麻省理工学院的一位研究人员约瑟夫⋅魏岑鲍姆(Joseph Weizenbaum)曾在一本名为《计算机的能力与人类的理性》(Computer Power and Human Reason)中,用“电脑流浪汉”来形容类似人工智能实验室里的这批人,并对此多有指责:“衣服打着褶、头发不洗、胡子不刮、蓬头垢面。这群人不管自己的形象,更不会关注外面的世界。这种电脑流浪汉就存在于我们的现实世界之中,他们沉迷于计算机,一切生活只能依赖电脑,而他们的日子里只有计算机。”

如今,这篇文章已经发表了二十多年,而斯托曼听到“电脑流浪汉”这个词依然心存不快。一说起这事,斯托曼就用一般现在时来形容,就好像魏岑鲍姆在他身边一般:“他就希望大家把这当成一份职业。你干这活就该只为挣钱,干完活你就走人,回到家就什么都不记得。他所谓的这种正常生活,在我看来根本就是个悲剧。”

然而,黑客的生活中,也依然会有悲剧。斯托曼回忆,在他从人工智能实验室的兼职黑客,到转成全职黑客的这些年间,经历了一系列不平静的遭遇。他只能靠玩弄计算机来度过这段难熬的日子。正如他之前说的,第一个不幸遭遇就是从哈佛毕业。之后他凭着对物理学的兴趣,在麻省理工学院开始攻读物理系的博士学位。选择麻省理工学院是个非常顺理成章的事情。一来,有众多著名校友做榜样:有1936年毕业的校友,晶体管发明者之一威廉⋅肖克利(William Shockley);1939年毕业的校友,著名的理论物理学家理查德⋅费曼(Richard P. Feynman);1951年毕业的校友,夸克之父默里⋅盖尔曼(Murray Gell-Mann)。除了这些名人以外,吸引斯托曼的自然还有人工智能实验室和里面那台全新的PDP-10计算机。斯托曼说:“我那时越来越喜欢编程,但当时觉得,没准我能两者兼顾,编程、物理两不耽误。”

白天读着物理学的博士课程,晚上跑去人工智能实验室鼓捣计算机,斯托曼试着在这种生活里保持平衡。两头的忙碌,让他只能在每周末偷出几分闲暇,跑去民族舞俱乐部,放松一下身心。而这个活动,也成了他唯一能认识异性朋友的机会。然而,在麻省理工学院的第一年结束时,悲剧再次降临。他膝盖受伤,从此不能再跳舞了。一开始,他还以为只是个小伤,养一阵子就会好。他还是照常参加俱乐部活动,聊聊天、听听音乐。可暑假结束,他膝盖依旧疼痛,加上新学期课程开始,斯托曼开始担心。他回忆:“我膝盖一直也没见好,这就意味着我很可能终生都无法跳舞了。我当时伤心透了。”

离开了大学时的宿舍,又没法继续跳舞,理查德⋅斯托曼丧失了所有的社交机会。斯托曼发现自己与其他黑客圈子以外的人,尤其是与女性的交际能力明显下降了,就好像宇航员处在了失重的状态下那样倍感无助。在人工智能实验室待了四个月以后,他在哈福大学四年中所积累起来的自信在不经意间就消失得无影无踪了。 离开了大学时的宿舍,又没法继续跳舞,理查德·斯托曼丧失了任何社交的机会。跳舞是唯一能让他在女性面前获得成就感的活动,他甚至有时候还能借此和女生单独出来约会。不能跳舞本身已经让他够痛苦了,而这也同样意味着,他从此恐怕就没机会和女生约会了。

“我当时就觉得自己像个泄了气的气球,失去了做各种事的动力,彻底绝望了。”

这之后,斯托曼再次远离了这个世界,专心投入人工智能实验室的工作。1975年10月,他放弃了麻省理工学院的课程,从此没再回到课堂。软件开发,曾经只是他的兴趣,如今则成了他的责任。

回头看看这段往事,斯托曼觉得,从一个学生转变成一个全职黑客几乎是命中注定的。他觉得,自己早晚都会放弃其他任何追求,专心成为一名黑客。他说:“物理和数学领域里,我很难做出一些自己原创的贡献。倘若我能在那里有所成就,我自然乐见其成。可我始终没能在这些领域里,找出自己的套路。我甚至都不知道从何开始。而在软件领域中,我立即就能知道怎么写软件,怎么让它跑起来,怎么做出有用的东西。软件领域里的知识,让我有了继续深究下去的动力,也让我从中感受到了无尽的乐趣。”

这份乐趣,并非只有理查德⋅斯托曼一人能感受到。很多黑客早已乐此不疲。人工智能实验室里充斥着很多这样的人,他们和斯托曼一样,都在学业中途转职成了全职黑客。其中的大多数人都是数学或电子工程专业出身,他们当初选专业,一来为拿个文凭,二来可以体验解决旷世难题后的那份欣喜。当年圣⋅托马斯⋅阿奎那(St. Thomas Aquinas)编写《神学大全》时,曾号称感受过上帝的异象。而这份体验,黑客们也常有感受。他们通过集中精神,身心齐动,也达到了内心上的超脱,开始了忘我地工作。虽然斯托曼和其他黑客都拒绝毒品,但在电脑前写上二十来小时的代码,也同样能给他们带来一份飘飘然的感觉。

这其中,最能让他们陶醉的,恐怕就是那份无法言状的自我满足感。斯托曼简直天生就是个黑客。他少年时熬夜学习的经历,让他可以轻易胜任长时间的工作,并且只睡很少的觉。而他的数学背景,又让他有着过人的严密逻辑和数感。很多让其他黑客望而生畏的设计难题,放到斯托曼面前却变得轻而易举。

杰拉尔德·萨斯曼(Gerald Sussman)是人工智能实验室的教授,1985年之后,他还担任了自由软件基金会董事会成员。回忆起斯托曼,他赞叹:“他太特别了。思维清晰,设计流畅。”萨斯曼曾邀请了斯托曼加入人工智能实验室,参与了1973年和1975年的项目。两个人工智能的项目目标,都是通过编写程序,让计算机能够像人类的电子工程师一样,分析电路。这个项目需要一位Lisp语言的专家,同时,还能了解人类是如何解决类似的电路分析的问题。Lisp语言曾是专门设计用来编写人工智能程序。1975年的项目,则开辟了相关性制导回溯技术(dependency-directed backtracking)的先河,这个技术又名真值维护(Truth maintenance),基本思路是首先产生几个假设,然后检测在假设前提下是否存在矛盾,如果存在矛盾,则重新设计假设。

这些正式项目之外,斯托曼也会花时间维护自己的个人项目。黑客们都喜欢改进实验室的各种基础软件。斯托曼当时手头最大的个人项目就是实验室的一个编辑器软件,名为TECO。

20世纪70年代,斯托曼在TECO上的工作和之后的自由软件运动是一脉相承的。而这段历史在计算机史上,也值得一书。20世纪50~60年代,计算机刚刚进入大学校园,所谓的编程还是个很抽象的概念。那时的程序员,如果想要和计算机沟通一下,就必须得拿着一大摞卡片,上面打着孔,记录着软件中的指令。他们得把这一叠卡片交给系统管理员,让管理员把它们一张一张插到计算机里。计算机执行完卡片上的指令,然后把结果用打孔的方式,输出在另外几张卡片上。程序员则拿着这些计算机输出的卡片,回去分析解读。这个流程,通常被称为“批处理”。批处理是个非常费时费力的活,而且也给了计算机管理员太大的权力。黑客们痛恨权威的传统,恐怕很大一部分原因要归咎于当时的计算机管理员权力过大,他们有权决定哪个程序优先运行。

1962年,很多计算机科学家和黑客都参与了麻省理工学院的MAC计划(Project MAC)。这一计划是人工智能实验室的前身,它曾试图解决批处理带来的问题。MAC计划引入了“分时”(Time sharing)的概念。这个概念之前曾叫作“偷时”(Time stealing),它利用一个程序运行中间的空隙来执行另外一个程序,由此,多个程序可以有效地利用计算机。同时,电子打字机也被引入进计算机系统,作为人际交互的设备。从此,人们再也不用靠打孔来和计算机交互,人们可以利用打字机,把命令敲进去,然后等着计算机把结果一行一行打印到纸上。

20世纪60年代,交互界面的设计也有了长足进步。在1968年,一次讲座从此出名。讲座上,斯坦福研究中心的科学家,道格⋅英格巴特(Doug Engelbart)展示了第一款现代图形用户界面的原型。他们把计算机和电视机连起来,并且还加入了一个定点设备——英格巴特把这个定点设备昵称为“老鼠”,也就是今天的鼠标。这套系统的交互性比麻省理工学院的分时系统更好。他们把电视机当作一个高速打印机,用来显示各种输出。这套系统还允许用户使用鼠标来移动屏幕上的光标,并且实时地显示出光标的位置。用户可以使用鼠标把光标移动到屏幕上的任何字符上。

不过,这些发明要等二十年才能进入市场。到了20世纪70年代,显示器逐渐开始作为显示设备,取代了电子打字机。这一改变,使得计算机可以使用全屏幕来显示。这就不必像以前一样,每次只打印几行内容在纸上。

人工智能实验室的TECO程序,是早期的几个使用全屏幕显示的程序之一。TECO是“文本编辑及修正程序”(Text Editor and COrrector)的缩写。它的前身,诞生于PDP-6和电子打字机的年代,是黑客们把它一步一步升级至今。

比起以前的那些编辑器,TECO是一大进步,但仍旧存在不足。如果要创建并编辑某个文件,程序员必须要输入各种命令,才能完成不同的操作。这个过程非常抽象。今天的编辑器,每敲进一个字母,都会在屏幕上显示出来。而使用TECO来编辑文件,则需要输入一些命令,然后告诉它“命令结束”,然后才能把文件修改好。经过一段时间的练习,一名黑客可以使用一套漂亮的命令来完成很大的修改。不过,正如斯托曼所说,这种技能是需要“类似下盲棋一样的脑力消耗”。

为了辅助这种编辑流程,人工智能实验室的黑客们开发了一套系统,可以把屏幕分为两部分,分别显示正在编辑的文件内容和输入的命令。这个小改变的确有用,可是想要使用TECO依旧需要很多技巧,以及事先规划。

在当时,除了TECO,还有几个其他的全屏编辑器。1976年,斯托曼去了一趟斯坦福的人工智能实验室。在那里,他见到了一个叫作E的编辑器。这个程序有个功能,可以在根据用户的输入,实时更新显示器上的内容,让用户看到最新的修改结果。用20世纪70年代的话讲,E是早期的几个“所见即所得”的编辑器之一。所谓“所见即所得”,常常写作WYSIWYG,即What you see is what you get的缩写。它意味着用户可以直接在显示出来的文本上进行编辑,而不用再另外使用一个后台的编辑器程序。

斯托曼一下子对这技术感兴趣了,他决定回到麻省理工学院之后,把这个功能加到TECO上。他发现TECO上有个功能叫做“Control-R”。这个功能是卡尔·米克尔松(Carl Mikkelson)开发的。使用这个功能的快捷键和它的名字一样:Control-R。利用这个快捷键,用户可以让TECO实时地显示出编辑的内容。不过有个小瑕疵:用户只能使用五行来显示编辑的内容,这显然是不够的。斯托曼重新实现了这个功能,让程序可以使用整个屏幕来显示编辑内容。他还做了个不起眼,但影响深远的修改:他还允许用户把一连串TECO命令绑定在快捷键组合上。这一连串的命令称为“宏”。TECO的资深用户早就把各种常用的命令组合记下来了。斯托曼的这个改变让他们可以通过宏更快捷地使用这些组合。最后的结果,是一个允许用户自己扩展的“所见即所得”的编辑器。盖·斯蒂尔(Guy Steele)曾是当年人工智能实验室的一名黑客,他回忆起斯托曼的这个改动,说:“这在当时是个突破。”

斯托曼回忆,加入“宏”之后,各种创造接踵而来。他说:“大家都开始把各种常用命令的组合写成宏,然后把各自的宏互相分享,大家一起不断改进,再分享。这样,这些宏越来越强大,并且涵盖了很多常用操作。这些宏俨然成为了一套单独的系统软件。”

越来越多的人开始使用宏,并把各种宏加入到自己的TECO编辑器上。随着大家对宏的狂热,TECO作为编辑器的功能反而倒在其次了。斯托曼说:“我们开始意识到,TECO已经不仅仅是个编辑器,更是个编程语言。”用户不断改进自己的想法,不断交流分享,大家身在其中,自得其乐。

又过了两年,各种创新最后带来了一些麻烦。大家互相交流分享,使用的宏越来越多。每个人的手头都有自己的一套宏,由此就引来了各种兼容性问题。盖⋅斯蒂尔说:“我们遇到了沟通障碍。”

“这种障碍阻碍了大家的交流。”盖⋅斯蒂尔说。黑客们当年设计了ITS系统,其中一个很重要的设计原则就是帮助程序员们分享知识,互相改进各自的工作。这就意味着,程序员可以坐到另外一个同事的电脑前,打开这个同事的程序代码,直接修改代码,或者加上几行注释。斯蒂尔解释说:“有些时候,要想教人怎么写程序,或者怎么调试某个程序,最好的办法就是坐在电脑前,实际演示给他们看。”

引入宏之后的第二年,这种做法变得越来越难。黑客们开始在自己的TECO编辑器里加入各种宏,不断扩展TECO的功能。这就导致人们只要坐到一台电脑前,第一件事情就是需要了解每个宏都是做什么的。

一番受挫之后,盖⋅斯蒂尔决定着手解决这个问题。他收集到四套常用的宏,打算根据每套宏实现的功能,列出常用的功能,写成一份文档,并根据这四套宏,实现出一套符合这份文档的宏。在实现的过程中,盖⋅斯蒂尔的工作吸引了斯托曼的注意。

盖⋅斯蒂尔回忆说:“他站在我身后,看着我的屏幕,问我在做什么。”

盖⋅斯蒂尔是个说话温和的黑客,并没怎么和斯托曼打过交道。回忆起当时的情景,他依旧记忆犹新。在当时的人工智能实验室里,站在别人身后看看别人的工作,是个非常平常的举动。理查德⋅斯托曼,在当年是TECO的维护者。看到盖⋅斯蒂尔的工作,他觉得非常有趣,于是决定帮助他完善这个工作。

说起这事,盖⋅斯蒂尔笑道:“我常跟人们这么说,我做了最初的百分之零点零零一的工作,斯托曼把剩下的都做了。”

这个项目的名字被称为Emacs,是斯托曼建议的名字。Emacs是Editing macros的缩写,意思是“宏编辑器”。它标志着宏出现之后的又一个进步。它也参考了当年各种软件的名字,斯托曼注意到,在ITS系统上,还没有哪个软件名是以E开头的。把它叫作Emacs,用户就可以自己在设置中把它叫作E,一个字母就能运行这个程序。这又得归咎到黑客简约的风格上了。

为了可以开发一套标准的宏,斯托曼和斯蒂尔需要非常小心地处理一些政治上的问题。因为开发一个所谓的“标准”程序,明显是与黑客精神相违背的,黑客们所崇尚的应该是一种“去中心化”的设计理念。同时,TECO上现有的五花八门的创新设计也为这项工作增加了难度。

当然,一开始,并不是所有人都转头使用Emacs。用户依旧可以继续使用他们以前的TECO编辑器。不过大多数人都觉得转用Emacs更加方便。Emacs有着更强的扩展性,用户可以按照自己的需求,轻松地替换或者增加某些功能。

盖⋅斯蒂尔说:“一方面,我们试图创造一个统一的命令集;另一方面,我们还希望程序能有很强的扩展性,因为这一点至关重要。”

为了解决这个问题,斯托曼、斯蒂尔、大卫⋅穆恩(David Moon)和丹⋅温里布(Dan Weinreib)决定把进行标准化的工作范围仅局限在控制在屏幕上显示文本的那些所见即所得相关的命令上。Emacs其余的部分仍然会保留像积木玩具那样的可扩展性。

这个时候,斯托曼又遇到了一个难题:如果用户做出了修改,但是并不把这些修改分享出去,沟通障碍早晚会再次出现。本着黑客的分享精神,斯托曼在源代码里写上了使用条款。用户可以自由地修改和分发这个软件的代码,但必须把所有的改动都发回来。斯托曼把这称作“加入Emacs公社”。当年的TECO最后变得不仅仅是个编辑器;如今,这个Emacs则变得不仅仅是个软件。对于斯托曼来说,这更是个社会契约。在早年1981年的一份备忘录上,斯托曼在Emacs这个项目下写道:“Emacs是以分享的形式发布的。对Emacs的各种修改,必须要发给我,以便加入到以后的版本中。”

并不是所有的人都乐意接受这个契约。Emacs原本只能运行在PDP-10上。不过很快,其他平台上的用户也希望能运行Emacs编辑器。之后十年,各种创造依旧继续。带来了各种类似Emacs的编辑器,运行在不同平台上。Emacs公社的规矩则不适用于这些编辑器上,因为它们完全是另外一套代码。这些编辑器中,有些在名字上就提及了斯托曼的Emacs编辑器。比如:Sine,全称Sine is not Emacs;Eine,全称Eine is not Emacs;Zwei,全称Zwei was Eine initially。作为一个资深的黑客,斯托曼没有理由要去通过法律的手段来阻止这些创新。但是,总是会有一些不自觉的人,总想着从社区的宝库中偷出一些东西,起个新名字就开始在市场上抛头露面。真正的类Emacs软件必须要提供用户可编程的扩展。一些Emacs的克隆软件只是使用了Emacs的快捷键,并没有提供扩展机制,这些一般被成为“伪Emacs”。其中一个例子就是Mine,全称Mine is Not Complete Emacs,意为“Mine不是一个完成的Emacs”。

如此粗鲁的行为与黑客圈子中其他开发者的行为格格不入。斯托曼在人工智能实验室开发Emacs的时候,黑客圈子里还有很多其他的开发,也干得热火朝天。正如第1章提及的那样,1979年,布莱恩·瑞德(Brian Reid)决定在Scribe里放入“定时炸弹”,这样就可以让没有付费的用户无法使用这个软件,以此让Unilogic公司获利。布莱恩的这个决定在斯托曼看来不是个好兆头。布莱恩回忆起斯托曼对此的看法,说:“他觉得,这简直就是法西斯行为。”布莱恩之后创立了Usenet新闻组上的alt分支,可每次提起斯托曼的指责,他依旧愤愤不平:“他说所有的软件都得免费,他觉得所有软件的收费行为都是违背人性的。”

虽然斯托曼无法阻止布莱恩给用户装上“定时炸弹”,可他还是有自己的一套法子,来遏制其他类似的行为。作为Emacs代码的主要维护者,斯托曼开始利用他的力量发起一轮政治影响。当时,为了去掉系统的登录密码,他正跟计算机系的机房管理员闹得不可开交。在冲突的关键时刻,他发起了一轮“软件抗议”:如果实验室的成员不反对系统登录密码,斯托曼就不给他们Emacs用”。斯托曼的这种做法,只是做出一个姿态。因为如果哪个人想用Emacs,他们还是可以自己动手安装的。斯托曼是想借此传达一个信息:如果你在ITS系统上使用密码,那么将会被人嫌弃,受人指责。。这次的抗议活动并没有进一步提升斯托曼在社区中的偏激形象,不过,它传达了一个明确的观点:社区的成员必须努力弘扬黑客的价值观。

在接受《黑客》一书的作者史蒂芬⋅李维采访时,斯托曼回忆说:“很多人觉得我绑架了实验室的各位成员,我在勒索大家。从某种意义上说,的确如此。因为我觉得那些管理员在用暴力威胁着每一个人,我只能以暴制暴。”

渐渐地,Emacs成了黑客文化的宣传品。Emacs有着极强的扩展性。这种扩展性增进了用户之间的交流合作。不仅如此,Emacs甚至要求这样的合作。如果用户不把自己的修改贡献出来,就很可能用不到最新的版本,用不上最新的功能。而每次更新,各种新功能可是不少。1984年,斯托曼又重写了Emacs,命名为GNU Emacs。如今,GNU Emacs的用户遍布全球,大家已经把它扩展得异常强大。用户可以把它当作电子表格、计算器、数据库、网络浏览器等。以至于之后的Emacs开发者,都找不出什么词来概括Emacs的功能了。斯托曼说:“这就是我们想要传达的。Emacs里包含的东西既有用,又有趣。”

和斯托曼同时代的人工智能实验室成员更是感谢斯托曼的贡献。哈尔⋅埃布尔森(Hal Abelson)曾是麻省理工学院的一名博士。20世纪70年代,他曾在萨斯曼教授手下做过研究。之后,帮助斯托曼成立自由软件基金会,并成为董事会成员。形容起Emacs,他说:“那绝对是个精品佳作!”他描述,Emacs既可以让程序员不断添加新功能,又不会影响整个系统。斯托曼的经验为未来大规模合作开发的软件工程铺平了道路。“它结构稳定,可以接受世界各地的人贡献代码。这种松散的大规模协作开发,恐怕要算前无古人了。”

盖⋅斯蒂尔对此也表示了钦佩。如今,盖⋅斯蒂尔已经是Sun公司的一名科研人员。回忆起斯托曼,他脑海中浮现的是“一位才华横溢的程序员,他可以瞬间写出大量几乎没有Bug的代码。”尽管他和斯托曼性格不太合得来,可他们俩还是合作了一段时间。这段时间里,盖⋅斯蒂尔对斯托曼的那种暴风闪电般的编程风格印象深刻。他记得在20世纪70年代末,他俩曾一起为Emacs添加“重排版”的功能。所谓“重排版”,最初是斯蒂尔的点子。它可以让用户使用快捷键,来为Emacs中编辑的代码重新排版,使得代码更加易读。这个功能更增强了软件“所见即所得”的质量。这个功能一下子吸引了斯托曼的注意,接着斯蒂尔和斯托曼决定一起开发这个功能的改进版。

斯蒂尔回忆:“我们早晨开始坐到电脑前。我敲键盘,他就坐我身边,告诉我怎么写。”

俩人就这样,持续开发了10个小时。斯蒂尔说,这10个小时,他们俩谁也没休息,甚至都没聊多余的话。到最后,他们把整个功能精简到一百多行代码。斯蒂尔回忆:“我当时手指就没离开键盘。我就觉得我俩的想法直接就流到了屏幕上。他告诉我写什么,我就按他说的写。”

整整10个小时,光是这时间长度就足够显示出斯托曼的编程风格了。斯蒂尔离开实验室,走出技术广场545号大楼。外面已是夜幕降临,他虽然早就习惯了这种马拉松式的编程,但这次却别有一番滋味。跟斯托曼一起工作,他必须要集中精力、心无旁鹜。如今回忆起来,斯蒂尔说,斯托曼的这份才智和精力,既让人振奋,又令人生畏。“我回想起来,第一感觉是那是个很好的经历,流程紧凑、快速高效。再细想想,妈呀,我可不想再来一次。”


本页最后更新时间:2015-12-04 Fri 14:01.
小过的布拉格 - Copyright©2013-2017 - @xiaoguo - Powered by Emacs 28.0.50 (Org mode 9.3)
行路难,行路难, 多歧路,今安在。长风破浪会有时,直挂云帆济沧海。