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