通往 GNU 之路
理查德·斯托曼描述了使他准备好为自由软件世界而战的经历。
大约在 1983 年 4 月,斯托曼写了一篇《快乐黑客 - 计算机俚语词典》的介绍。在其中,他谈到了他在麻省理工学院人工智能实验室的经历和 Lisp 机器之战。他还详细介绍了 Emacs 的开发过程。以下文本是 1983 年末的更新版本,在 GNU 的最初公告之后不久。
机房民间舞蹈,周四晚上 8 点
来庆祝编程的快乐,
使用世界上最令人愉悦的计算机。
我们只有五个人在跳舞,但我们玩得很开心。
我第一次接触计算机是在夏令营辅导员那里借来的各种语言的手册。我会在纸上写程序,只是因为编程概念的迷人之处。我必须努力思考程序应该做什么,因为除了我想编程之外,没有任何东西可以给我提供目标。我曾经在不同时期用几种汇编语言编写程序来计算数字表中数字的立方和。
我遇到的第一台真正的计算机是 IBM 360,在我在高中时期的 IBM 纽约科学中心。在那里,我很快对语言设计、操作系统和文本编辑器产生了兴趣。我夏天被雇佣用 Fortran 编写一个枯燥的数值分析程序,我几周后就完成了,这让我的老板很惊讶,然后我把剩下的时间都用来用 APL 编写一个文本编辑器。
我也很快表现出对权威缺乏应有的尊重。整个中心都被禁止访问大楼里的 IBM 计算机,我们不得不使用缓慢的电话连接到剑桥科学中心。有一天,一位 IBM 主管来告诉我们各个 IBM 科学中心正在进行的工作,最后说:“当然,你们都知道这里正在进行的重要的工作。” 我问他,“如果我们的工作如此重要,为什么我们不能再使用这栋大楼里的计算机了?” 会议结束后,我的朋友告诉我,他们也想说这样的话,但害怕报复!为什么?当然,结果我什么事都没有发生。他们似乎已经习惯了在权威面前畏缩,即使没有实际的威胁。这对权威来说真是太好了。我决定不吸取这个教训。
人工智能实验室
纽约科学中心在我搬去上大学的时候及时关闭了。我发现剑桥科学中心对我没有兴趣,这对我很幸运,因为它使我不至于对远比 IBM 计算机优越的非 IBM 计算机一无所知,特别是 Digital 的 PDP-10 和 PDP-11。现在我意识到所有计算机并非都同样有趣,我四处寻找最令人愉悦的计算机,并在麻省理工学院人工智能实验室找到了它们。在那里,一群自称“黑客”的人创建了自己的分时系统,即不兼容分时系统,专门用于方便黑客行为。ITS 和所有实用程序(包括调试程序 DDT,它也是被称为 HACTRN 的“shell”)都在那里维护。我来这里是为了寻找他们系统的文档(我真天真)。我离开的时候没有拿到任何文档,因为它根本不存在,但我却找到了一份暑期工作。我被一位工程师/管理者 Russell Noftsker 雇佣了——具有讽刺意味的是,这个人后来在实验室的毁灭中起到了主要作用。这份工作变成了永久性的,一直持续到今天。
一旦我展示了自己的能力,我就获得了整个操作系统的自由支配权,这是一个学习和提高效率的机会,很少有实验室和公司会给我。黑客的态度是,“如果你能做好,那就继续做——无论你是谁。”
通过与人工智能实验室的比较,我开始看到其他地方的人们有多么少的自由和有多少不必要的困难。在 IBM 和哈佛,权力分配非常不均。少数人发号施令,其余的人(如果他们不是我)就接受命令。教授们会拥有自己的终端,这些终端通常是闲置的,而我们其余的人经常因为共享终端太少而无法工作。人们会问,“你被授权做这件事吗”,而不是,“你知道怎么做这件事吗?它有建设性吗?” 他们宁愿让一个被授权的白痴来做这项工作,也不愿让一个不知名的天才来做。我不再光顾哈佛的计算机实验室,因为麻省理工学院要好得多。(我的专业是物理学;对于一个天生的黑客来说,没有必要参加正式的计算机课程,因为在优秀的黑客中破解具有挑战性的程序是更好的训练)。
人工智能实验室的态度不同。我们有一个传统,就是撬开任何敢于把终端锁在办公室里的教授的门。他们回来后会看到门开着,上面有一张纸条写着:“请不要浪费我们的时间来解锁这个终端。” 终端是用来使用的,如果它们闲置,就会被浪费掉。我们把同样的态度延伸到计算机时间。PDP-10 每秒执行 300,000 条指令。如果没有用户要求使用它们,它就会花费这些指令来计算它有多少时间没事可做。最好让任何人出于任何建设性目的来使用它们,而不是浪费它们。所以我们允许“游客”——客座用户——只要他们不妨碍我们。我们鼓励他们了解系统,寻找少数会成为黑客并加入我们的人。至少有两名实验室工作人员和一名麻省理工学院教授就是这样开始的。
我发现计算机系统反映了各个组织之间态度的差异。例如,大多数计算机系统都设计有安全功能,允许少数人告诉其他人他们可以做什么和不能做什么。少数人拥有权力,没有人可以挑战它。我们黑客称之为“法西斯主义”,因为这样的计算机系统实际上具有极权主义警察国家的社会组织。
为了防止用户关闭安全,必须在系统程序周围建立一个堡垒。必须守卫墙上的每一个可能的通道,否则受压迫的民众就会偷偷溜进去。事实证明,计算机无法区分偷偷溜过墙和人们经常需要做的许多其他活动,以便完成他们的工作。由于维护安全比完成工作更重要,因此所有此类活动都被禁止。结果是,你必须经常要求精英人士为你做一些你不能做的事情。如果他不喜欢你或你身上的任何东西,或者他想要贿赂,他可以毫不费力地让你的工作难度增加一倍。
人们理所当然地认为,只有精英才能修改或安装任何系统程序,以免下属偷偷植入“木马”来关闭安全。(此限制是使用“文件保护”强制执行的。)与人工智能实验室恰恰相反,在人工智能实验室,一个在系统程序上工作的游客意味着他开始让自己有用并成为一名黑客。他们的方法使得很少有人可以为改进系统做出贡献,并且用户会对系统缺陷产生一种宿命论的、绝望的态度。他们学会了奴隶的心态。
在像 Digital Equipment 这样的地方,即使是那些负责改进系统的人也必须与如此多的官僚作风作斗争,以至于他们的效率和士气减半。正如罗伯特·汤森在《向上组织》中所说,大多数机构都会通过阻碍员工做好本职工作来打击员工的士气并浪费他们的潜力。安全和特权是计算机系统上完成此操作的方式。
大多数人接受这种制度,因为他们期望工作是繁重的,并且除了钱之外,不希望从工作中获得任何东西。但是对于黑客来说,黑客行为不仅仅是“仅仅”一份工作,它是一种生活方式。最初的黑客通过在系统设计中省略安全和文件保护来确保他们不会遇到此类问题。我们系统的用户是自由人,被要求负责任地行事。我们没有一个权力精英,而是一个由有动力学习的任何人组成的知识精英。由于没有人可以在我们的机器上支配他人,因此实验室以无政府状态运行。这种明显的成功使我转变为无政府主义 [1]。对大多数人来说,“无政府状态”意味着“浪费、破坏性的混乱”,但对我这样的无政府主义者来说,它意味着根据需要进行自愿组织,重点在于目标,而不是规则,并且不坚持为统一而统一。无政府主义并不意味着提倡弱肉强食的丛林。美国社会已经是一个弱肉强食的丛林,它的规则维持着它。我们希望用对建设性合作的关注来取代这些规则。
大多数计算机系统上的文件保护意味着人们非常关注如何限制谁可以对你的文件做什么。用户被教导要期望文件保护是他们每天的劳动成果不被破坏的唯一保障。我们这些多年来在没有文件保护的情况下快乐生活并且不认为我们缺少任何东西的黑客,称他们的态度为“偏执”。系统中所有内容都可以访问是非常有用的;这意味着错误无法隐藏在你不允许修复的文件中。
我们也把这些态度带入编程语言设计中。考虑一下“结构化编程”运动,以及它“禁止 GOTO”的平台。这些人说,“除了我们少数人,你们所有的程序员都是不称职的。我们知道你应该如何编程。我们将设计语言来强迫你以那种方式编程,然后我们将强迫你使用它们。” 我们黑客认为,改进编程语言的更合适的方法是识别和提供更容易使用的构造;帮助用户编写好的程序,而不是在用户可能编写坏程序时责难他。并且我们提供了设施,以便用户可以创建自己的构造,如果他们不喜欢我们提供的构造。
实验室成就中体现的哲学
AI实验室的态度是我最著名的作品——全屏编辑器EMACS(Guy Steele和其他人也为此做出了贡献)的内在组成部分。如今,全屏编辑器(“文字处理”程序)很常见,每台家用电脑上都有。在1973年,显示终端比打印机贵得多,所以大多数人仍然使用打印终端,而那些拥有显示终端的人通常也像使用打印终端一样使用它们(也就是说,作为“玻璃电传打字机”)。AI实验室有显示器,但还没有屏幕编辑器。
EMACS在屏幕编辑器中很特别,因为它功能强大且可扩展。EMACS包含自己的编程工具,我用它来提供其他编辑器没有的命令,用户也用它来提供他们想要的而我没有提供的任何命令。用户可以创建命令库并共享它们,当他们做得很好时,这些库只需包含在手册中就成为标准EMACS系统的一部分。
许多其他编辑器都有“宏”功能。EMACS有一种用于编写编辑器命令的编程语言,它与通常的编辑语言完全分离。由于它不必是编辑语言,因此它可以成为更好的编程语言,适合编写复杂的程序。第二个要素是不区分实现者和用户。EMACS几乎所有“内置”命令的编写方式都与用户扩展一样。每个用户都可以替换它们或为自己更改它们。
EMACS的开发遵循了一条说明实验室性质的道路。当我来到实验室时,编辑器是TECO,一种打印终端编辑器,它比其他编辑器具有更多的编程功能。用户会输入一串包含许多命令的命令字符串,然后TECO会执行它。在显示终端上,TECO知道如何在每个命令字符串后重新显示文件的文本。提供屏幕编辑的自然方法是将它添加到TECO并调整现有的重新显示机制。
最初,屏幕编辑器只是TECO的命令之一。它的功能非常有限,如果你需要做任何花哨的事情,例如将文件保存在磁盘上或搜索字符串,你需要退出屏幕编辑器并使用普通的TECO一段时间。然后,一位用户建议我提供几个屏幕编辑器命令,用户可以将这些命令连接到保存的TECO命令字符串或“宏”。在实现此功能时,我发现让用户用保存的TECO命令字符串替换任何屏幕编辑器的命令同样容易。
这引发了一场爆炸。每个人都在编写自己的重新定义的屏幕编辑器命令集合,为他通常喜欢做的每件事编写一个命令。人们会传递它们并改进它们,使它们更强大和更通用。重新定义的集合逐渐成为它们自己的系统程序。它们的范围扩大了,因此越来越没有理由使用TECO进行实际编辑。它仅仅成为一种用于编写编辑器的编程语言。我们开始在心理上将其归类为编程语言,而不是具有额外编程功能的编辑器,这意味着将其与其他编程语言而不是其他编辑器进行比较。结果是对其他编程语言拥有的许多功能的需求。我以这种方式改进了TECO,而其他黑客则使用新功能来改进他们用TECO编写的编辑器。
大约两年这种疯狂的演变之后,Guy Steele决定是时候编写一个编辑器了,它将结合所有其他编辑器的最佳想法。我们一起开始,但他很快就转向了他的其他兴趣。我将编辑器称为EMACS,表示“编辑宏”。此外,我希望新编辑器的名称具有单个字母的缩写,“E”是尚未使用的字母之一。
因此,标准EMACS命令语言是多年来许多用户维护者在他们自己的编辑器上进行实验的结果,这只有通过可扩展性和AI实验室鼓励用户添加到系统的态度才有可能实现。在那个命运攸关的日子里,当我赋予用户重新定义他们自己的屏幕编辑器的权力时,我并不知道这会导致一个震天动地的新编辑器。我遵循了AI实验室的启发式方法,即给用户更多权力总是好的。AI实验室的态度随后鼓励用户使用这种权力并分享他们因此产生的东西。
我为EMACS工作了大约五年,免费将其分发给每个人,条件是他们必须返回他们所做的所有扩展,以帮助EMACS改进。我称这种安排为“EMACS公社”。当我分享时,他们有义务分享,互相合作而不是对抗。EMACS现在被所有最好的大学计算机科学系和许多其他地方使用。它也被模仿了大约十次。可悲的是,许多这些模仿缺乏EMACS的真正本质,即其可扩展性;它们是“替代EMACS”,仅模仿了表面外观。
如今,EMACS用户几乎从不使用TECO进行编辑,而且大多数人甚至不知道TECO。事实上,我已经忘记了如何使用TECO进行编辑。我已经习惯了用TECO进行编程的思维方式,以至于在极少数情况下我需要用它进行编辑时,我会在一分钟左右的时间里不知所措。反射都消失了。
我注意到,编辑器改进有价值的一个迹象是,在使用它几周后,我忘记了如何没有它。这证明为了以旧方式做事,必须付出巨大的努力才能保持练习。
我认为像EMACS这样的东西不可能在商业上开发出来。企业持有错误的态度。商业世界对用户的主要公理是他们是无能的,如果他们对自己的系统有任何控制权,他们会把它搞砸。主要目标是不要给他们任何具体的抱怨理由,而不是给他们一种自助的方式。这与为什么FDA宁愿通过将药物排除在市场之外来杀死一千人,也不愿因错误释放药物而杀死一个人是一样的。第二个目标是让管理者对用户拥有权力,因为是管理者决定购买哪个系统,而不是用户。如果企业编辑器有任何可扩展性的方法,他们可能会让你的经理为你决定事情,而根本不给你任何控制权。由于这两个原因,一家公司永远不会设计一个允许用户像MIT用户那样进行实验的编辑器,他们也无法在实验结果的基础上构建EMACS。此外,该公司不希望向您提供源代码,没有它,编写扩展程序会困难得多。
你的打印机叫什么名字?
当我在实验室的激光打印机系统上为EMACS手册安装新字体时,我注意到初始化菜单中有一个用于更改打印机名称的插槽,该名称会出现在每个用户的输出封面页上。(如果您有多个打印机并且想知道哪个打印机产生了您的输出,此功能非常重要。)我们的打印机的名字很可爱且毫无意义,叫做“Tremont”。作为一名黑客,我有责任将其替换为更有趣的东西。我选择了“Kafka”,以引起令人不安的联想。(你有没有听说过一个人早上醒来变成激光打印机的故事?)
接下来的几天里,其他黑客一直在谈论这个新名字,并提出了其他有趣的名称(“Treemunch”、“Thesiscrunch”、“Cthulhu”……)。我尝试了每个名字几天,同时收集了更多的建议。这对于几乎每个人来说都非常有趣。唯一的例外是一位教授,他告诉我我没有被授权这样做,我应该停止。我回答说,我亲身知道人们因此而感到有趣,因此我应该继续,至少只要建议仍然成立。最后,我用严厉而正式的语气告诉他,他没有被授权说黑客行为是未经授权的。
可怜的家伙并没有就此结束。他说:“如果你认为重命名打印机这么有趣,为什么不重命名PDP-10?”这真是一个绝妙的主意,我仍然对此感激不尽。第二天,DM PDP-10(Zork的所在地)被称为“地牢建模”,而不是“动态建模”;ML PDP-10(用于数学和医学决策研究)被称为“医疗责任”,而不是“数学实验室”;MC PDP-10是“最大混乱”,而不是“MACSYMA联盟”;AI PDP-10被称为“无政府主义者国际”,而不是“人工智能”。我没有听到任何更多的抱怨。
实验室的背叛
仍然有一个名为MIT人工智能实验室的机构,我仍然在那里工作,但它过去的优点已经消失了。一家衍生公司对其造成了致命的打击,这从根本上(而且我认为是永久性地)改变了它的性质。
多年来,只有我们AI实验室和其他一些实验室才欣赏软件的最佳之处。当我们谈到Lisp的优点时,其他程序员嘲笑我们,尽管他们对他们所谈论的内容知之甚少。我们无视他们,继续我们的工作。他们说我们身处象牙塔。
然后,“现实世界”的一部分意识到我们在Lisp方面的观点一直是正确的。对Lisp的巨大商业兴趣出现了。这是结束的开始。
AI实验室刚刚开发出一种名为Lisp机器的计算机,这是一种具有大型虚拟地址空间的个人计算机,因此它可以运行非常大的Lisp程序。现在人们希望该机器能够商业化生产,以便其他人都可以拥有它们。Lisp机器的发明者,黑客Richard Greenblatt计划成立一家非传统的黑客公司,该公司将缓慢但稳步地增长,不使用炒作,并且比你的标准美国公司更不贪婪和无情。他的目标是为黑客和黑客行为提供一种替代的支持方式,并为世界提供Lisp机器和良好的软件,而不是仅仅为了最大化利润。这意味着放弃大部分外部投资,因为投资者会坚持传统方法。这家公司是Lisp Machines Incorporated,通常被称为LMI。
Lisp机器项目的其他人认为这行不通,并批评Greenblatt缺乏商业经验。作为回应,Greenblatt请来了他的朋友Noftsker,他几年前离开了实验室进入工业界。Noftsker被认为在商业方面经验丰富。他以一种非常商业化的背后捅刀子的方式迅速证明了这种印象的正确性:他和另一位黑客抛弃了Greenblatt,组成了另一家公司。他们的计划是寻求大量投资,尽快发展,引起轰动,然后让魔鬼带走任何或被它淹没的任何东西。尽管黑客只能获得该公司计划获得的财富的一小部分,但即使是这么多也足以让他们变得富有!他们甚至不必更加努力地工作。他们只需要停止像过去那样与他人合作。
这导致了两家竞争的Lisp机器公司:Greenblatt的LMI和Noftsker的Symbolics(在Al实验室周围通常被称为“Slime”或“Bolix”)。AI实验室的所有黑客都与其中一家公司相关联,除了我,因为即使是LMI也涉及我不想做的道德妥协。例如,Greenblatt反对专有操作系统软件,但赞成专有应用程序软件;我不想拒绝分享任何一种程序。[2]
Symbolics直接获得了数百万美元的投资,并坚持不懈地挖走了MIT的每个人。Greenblatt设想人们在LMI兼职并在AI实验室兼职,以最大程度地减少实验室的创伤。Symbolics指责存在利益冲突,迫使LMI的人也离开了MIT。突然,我成了最后一个黑客,一个人是不够的。实验室正在消亡。
我强烈怀疑AI实验室的毁灭是有意为之。一旦商人得到金蛋,他就会杀死鹅以确保他拥有垄断地位。
回想起那段时光,我感到非常痛苦。当时留在实验室的人是教授、学生和非黑客研究人员,他们既不知道如何维护系统或硬件,也不想知道。机器开始损坏,而且永远得不到修复[3];有时它们直接就被扔掉了。软件所需的改动也无法进行。非黑客们对此的反应是转向商业系统,并带来了法西斯主义和许可协议。 我曾经在实验室里游荡,穿过夜晚空荡荡的房间,那里曾经挤满了人,我就会想,“哦,我可怜的AI实验室,你正在死去,而我却无能为力。” 每个人都认为,如果培养出更多的黑客,Symbolics公司就会把他们挖走,所以似乎连尝试一下都不值得。实验室管理部门没有努力团结我们,而麻省理工学院的管理层像一家唯利是图的公司一样贪婪,进一步打击了人们的士气。
过去,黑客们偶尔会离开,但留下的人会培养新的黑客来取代他们。现在,整个文化都被抹杀了,没有足够的遗留来为新人提供榜样,也没有什么伟大之处来吸引最优秀的人来到这里。例如,黑客们过去每天都会一起吃晚餐(通常是中国菜)。虽然不是每个人每天都在那里,但你可以指望在晚餐时间找到其他人一起吃饭。现在,这种做法瓦解了,当人们不再期望找到其他人一起吃饭时,他们就不会计划在通常的时间饿着肚子出现,从而加剧了这种影响。
整个AI实验室过去共用一个电话号码和一个公共广播系统。(电话的分机号是6765,我们接电话时会说“6765”或“斐波那契数列的第20项”,因为6765是第20个斐波那契数。)打电话给任何人或每个人都很容易。现在,大多数人和终端都搬到了6765无法到达的其他楼层,而9楼,实验室最初的核心,正被机器填满。这种变化进一步削弱了实验室的社会凝聚力。现在我甚至无法打电话问问是否有人饿了,也没人能通过电话联系到我。
就这样,我一下子失去了我的社交网络、以正直的方式追求事业的机会,以及我帮助建立的大部分东西。我感觉自己就像一个已灭绝部落的最后一个幸存者,注定要在不理解的陌生人中度过一生。如果一个现有的、曾经健康的实验室都无法在压力下生存,那么建立一个具有AI实验室优良品质的新实验室的机会不大。计算机行业不会允许我按照黄金法则的要求与其他黑客分享。我开始寻找一份不涉及计算机的新职业,但并不期望能找到,而且除了做会计程序或其他任何黑客(包括我)都不会感兴趣的事情之外,我看不到任何未来。那将是一种毫无意义的生活,但至少我不会因为拒绝与其他黑客分享而感到羞愧,如果他们不想要我正在做的事情的话。我不确定这是否比更直接的自杀方式更好。
大约一年里,有LMI公司、Symbolics公司和AI实验室的残余。Lisp机器操作系统由三者共享。Symbolics公司的黑客有时会通过说“这个问题在当前系统上无法修复。等待我们的新机器吧。”来回应一个错误报告。这是为了让新机器听起来更像是一种改进。我很高兴能够在不久之后宣布,我已经修复了这个错误。
战争爆发
但情况变得更糟,因为LMI并没有像Symbolics公司公开预测的那样失败。它正在制造和销售Lisp机器,而且销售价格远低于Symbolics,后者有巨额投资需要收回,还有很多薪水要支付。大约一年后,Symbolics意识到,如果不采取更激烈的措施,其广为宣传的必然胜利就不会发生。他们的计划是:结束三方共享软件改进。由于LMI规模小得多,他们预计LMI将无法跟上他们的步伐。(AI实验室不再被认为是重要的贡献者。)
Symbolics要求AI实验室接受新的条款:使用Symbolics的改进,但不与LMI分享[4]。这一要求以一种“新语”风格宣布,是一项伟大的慷慨之举。实际上,即使允许麻省理工学院继续使用他们的改进,也只不过是另一种策略,旨在锁定实验室,以便它为他们提供错误报告和演示,并只从他们那里购买。这并不是一个不寻常的动机。许多公司正是出于这个原因向麻省理工学院捐赠他们制造的计算机。但通常他们会试图通过慷慨而不是挥舞鞭子来获得麻省理工学院的合作。
Symbolics无疑期望实验室立即屈服,并完全切换到他们的软件品牌。但我拒绝屈服,拒绝被征召去帮助Symbolics对抗LMI。LMI更值得我的帮助。既然不再允许保持中立,我就会与那些强迫我战斗的人作斗争[5]。
我没有使用Symbolics的改进,而是对最后一个共享系统进行了类似的改进。实验室的大多数用户继续使用麻省理工学院的系统;有些人是因为不喜欢Symbolics,有些人是因为他们认为在技术上更优越,还有一些人是因为他们可以更自由地更改它。在过去的一年半里,我一直在这样做,保持麻省理工学院的系统同样好,有时甚至更好。由于LMI可以使用我所做的所有改进,LMI也拥有同样好的系统。Symbolics拒绝分享的主要结果是,由于两个系统之间的不兼容性,用户面临很多麻烦。
通常,我让Symbolics设计一个新功能,然后查看他们的文档并实现一些基本兼容的东西。即使不关注他们,我也能同样出色地改进系统,但这会是一个糟糕的策略。他们可以逐字复制我的改进,并将时间花在额外的改进上。或者他们可以忽略我的设计并实现一些类似但不兼容的东西,从而给所有用户带来麻烦。就像在自行车比赛中一样,如果你紧跟在另一个人后面,就会省力得多。作为一个与大型团队比赛的人,我需要这种优势。我可以很容易地冲到前面,但那并不是有效利用我的能量。
Symbolics通过威胁诉讼(尽管他们没有提起诉讼)和试图解雇我来反击。传闻说他们每天多次阅读我的计算机邮件,寻找可以指控我的东西;有一次他们被抓住了,结果适得其反。(使用惩罚所有人的安全措施来阻止他们,是违背我的原则的。)他们认为如果任何人不劳而获就很糟糕;与其让某些东西白白浪费,不如让他们的竞争对手与他们平等地受益。这种分裂正是使我们的国家瘫痪的原因。
通过这种方式对抗Symbolics,我不仅可以摆脱不得不屈服于他们的条款,还可以帮助实现正义,并惩罚他们因摧毁旧的AI实验室而应受的惩罚。最初我还希望为振兴实验室提供一个自给自足的核心。但是没有人加入我;现在每个人都坚持自己的研究。
我现在该去哪里?
Symbolics在软件方面从未取得优势,但他们新的、更快的机器比LMI新的、更快的机器更早准备就绪。现在他们已经向麻省理工学院交付了很多这些机器,我的用户正在转向它们。在这些机器上使用麻省理工学院的系统版本是不切实际的,因为机器差异太大。
用户的流失使我很难验证我的新软件是否真的有效。但是,如果运气好,我将能够坚持足够长的时间,以防止Symbolics最终获胜。LMI刚刚开始交货。很快他们就会非常成功并自行支持系统开发,而Symbolics将被迫面对精简且具有攻击性的竞争。一旦LMI能够在没有我的帮助的情况下继续前进,对Symbolics的最终惩罚将完全安排好。然后我可以停止在Lisp机器上的工作。我已将今年的感恩节定为停止工作的时间。
一旦我安排好了对作恶者的惩罚,就到了我开始重建他们摧毁的东西的时候了。
它无法在AI实验室重建。麻省理工学院试图为在这里完成的任何有用的东西申请许可,待在这里并保持共享本身就是一场斗争。而且,被Symbolics机器和半吊子的卖国贼包围着也一点都不好玩。我需要重新开始生活,第一步是离开过去的废墟。因此,我打算辞职。
它无法通过在Lisp机器上工作来重建。麻省理工学院声称拥有Lisp机器软件的所有权,因此它只能秘密共享。(LMI是一个例外;他们与麻省理工学院有合同。)这种地下合作总比没有好,但它无法创造一种新的生活方式。这需要公开、公开、广泛的合作。在Lisp机器系统上工作似乎比让Symbolics默认获胜更正确,但这绝不是一个可以长期生存的好方法。出于同样的原因,我不能为LMI工作,即使他们愿意让我的工作部分公开。我可以在战争中做出妥协,但当涉及到构建好的东西时,这种妥协毫无用处,因为它会使我构建的任何东西都无法变得好。
相反,我选择了一个雄心勃勃的项目,它触及了维持商业、敌对生活方式的根源。我打算编写GNU,它是Unix软件系统(内核、编译器、实用程序和文档)的完整替代品,将免费赠送给所有人。
GNU将使黑客很容易决定通过共享与合作来生活。使用计算机需要一个软件系统。现在,由于没有可用的自由软件系统,拒绝使用专有软件是一种巨大的牺牲。但是一旦有令人满意的自由软件系统可用,这种压力将永远解除。黑客将可以自由分享。
我将在感恩节开始。我正在向计算机制造商寻求捐赠,但我即使不得不做服务员也要这样做。已经有其他怀念过去方式的程序员正在为这项事业而团结起来。加入并提供帮助!也许AI实验室的旧精神会再次复活。
祝你编程愉快
理查德·M·斯托曼
快乐的黑客
脚注
- 我喜欢AI实验室的无政府主义生活方式和运作方式,但这并不是真正的完全无政府主义者。我并没有呼吁废除国家及其许多有用的活动,也没有呼吁以民主方式做出社会决策的可能性。请参阅为什么我们需要国家。
- AI实验室在两家公司之间保持中立;我很高兴成为这种中立的一部分。
- AI实验室的PDP-10在1982年2月坏了,而且从未修复。
- Symbolics在1982年3月16日发出了最后通牒,巧合的是我的生日。我把那天看作是Symbolics攻击AI实验室和LMI的日子,目的是征服前者以摧毁后者。
- 具有讽刺意味的是,彻底的冲突把我从绝望中拉了出来,因为它向我展示了一些值得为之奋斗的积极的东西。我不再迷茫,没有前进的方向。一场斗争从天而降——一场值得我竭尽全力去击败的侵略。