www-zh-cn-translators
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

提交《GNU历程》(The Road to GNU)的翻译


From: Ventus Uta
Subject: 提交《GNU历程》(The Road to GNU)的翻译
Date: Fri, 8 Sep 2023 21:52:57 +0800

GNU CTT各位好:

  我翻译了《GNU历程》(The Road to
GNU,https://www.gnu.org/gnu/road-to-gnu.html)这个页面,请各位审阅。
  我不晓得“hacking”一词该如何翻译,因此遇到“hacking”时保留了原文。希望有大佬能给出合适的翻译。
  由于个人能力有限,一些部分显得生硬。如果可以的话,还麻烦各位帮忙润色。
  另:之前的邮件似乎没有在邮件列表里面显示,不知道为什么。

                * * *

GNU历程

        理查德·斯托曼描述了他为自由软件世界而奋斗的经历。

  
1983年4月左右,斯托曼写了《快乐黑客——电脑俚语词典》的简介。其中,他谈到了他在麻省理工学院人工智能实验室和Lisp机器之战的经历。他还详述了Emacs是怎么被开发的。以下文本是1983年末的更新版本,在GNU初始声明发布后不久。

---

目录

■人工智能实验室
■实验室成就体现的哲学
■你的打印机叫什么?
■实验室被背叛
■战争爆发
■我该去往何方?

---

>大伙儿在机房跳舞,周四晚八点
>与世界上最令人愉悦的电脑一起,
>庆祝编程的乐趣。
>虽然只有五个人,但是我们很开心。

  
我对电脑的第一次体验是从营地辅导员那里借来的各种语言的手册。我因为对编程概念的着迷,而在纸上尝试编写程序。我不得不努力思考程序应该作什么,因为除了“我想编程”这种想法以外,我并没有任何目标。我曾在不同时期用几种汇编语言编写了将数字表的立方相加的程序。
  我第一次见到真正的电脑是我在高中时期于IBM纽约科学中心见到的IBM
360。在那里我很快对语言设计、操作系统、文本编辑器产生了兴趣。我在暑期被雇佣用Fortran写一个无聊的数值分析程序,几周后我就完成了这个程序,这让我的老板感到惊讶。夏天剩下的时间,我用APL写了一个文本编辑器。
  
我还快速的展现出了对权威的不敬。整个中心都被拒绝访问大楼内的IBM电脑,我们不得不使用低速电话连接到剑桥科学中心。有一天,一位IBM高管来向我们介绍各个IBM科学中心正在进行的工作,最后说道:“当然,你们都知道这里正在进行的重要工作。”我问他:“倘若我们的工作真这么重要,为什么我们不能使用这栋楼里的电脑?”在这次会议之后,我的朋友告诉我,他们也想这么干,但是怕遭到报复!为什么?事实上,我一点事都没有。他们似乎已经养成了对权威屈服的习惯,即使他们没有受到任何威胁。这对权威来说非常好。我决定不学习这种“经验”。

■人工智能实验室

  
纽约科学中心在我进入大学后关闭了。我发现剑桥科学中心对我不感兴趣,这其实对我来说不错,因为这让我不再对更先进的非IBM计算机一无所知,尤其是迪吉多牌的PDP-10和PDP-11。那时我意识到并不是所有的计算机都同样有趣,我到处寻找最有趣的计算机,并在麻省理工学院人工智能实验室找到了它们。那里有一群自称为“黑客”的人创建了他们自己的分时系统,即不相容分时系统,专为hacking而设计。不相容分时系统和所有实用程序(包括调试程序DDT,也被称为HACTRN的“外壳”)都在那里维护。我是来寻找他们系统的文档的(我真是天真)。我没能留下任何文档,因为它们不存在,但我得到了一份暑期工作。我受雇于拉塞尔·诺夫斯克,一名工程师/系统管理员。讽刺的是,正是这人后来在实验室的毁灭中扮演了主要角色。这项工作成为永久性的,一直到今天。
  
在我证明自己能力后,我便可以自由控制整个操作系统,这是很少有实验室和任何公司会给我的学习和高效工作的机会。黑客们的态度是:“如果你能做好工作,那就继续吧——无论你是谁。”
  
和人工智能实验室相比,我发现其他地方人们的自由是多么少,有多少不必要的困难。在IBM和哈佛,权力常常被不公平的分配。一些人给出任务,一些人(不包括我)做。教授们有他们自己的终端,但常常处于空闲,而我们其他人却经常因为共享终端不够而无法工作。人们会问:“你有权这样做吗?”而不是“你知道怎么做吗?有建设性吗?”他们宁愿让一个被授权的白痴来完成工作,也不愿让一个不知名的天才来完成。我不再经常去哈佛的计算机实验室,因为麻省理工学院要好得多。(我主修物理;天生的黑客不需要参加正式的计算机课程,与优秀的黑客一同hacking有挑战性的程序是更好的培训)
  
人工智能实验室的态度有所不同。我们有一个传统,破开任何敢把终端锁在办公室的教授的门。他们回来时将会看到一扇开着的门和一张纸条,上书:“请不要让我们浪费时间来解锁这个终端。”终端是拿来用的,闲着就是浪费。我们对电脑时间也是这个态度,PDP-10每秒可执行三十万条指令。如果没用户请求它们,它就会把这些时间浪费在计算自己多久没干活上面。对于任何人来讲,用于建设性的目的都比浪费要好。因此,在不影响我们的情况下,我们允许“游客”(访客用户)。我们鼓励他们了解这个系统,寻找少数愿意成为黑客并加入我们的人。至少有两名实验室工作人员和一名麻省理工学院教授是这样进来的。
  
我发现计算机系统体现了组织之间的差异。例如,大多数计算机系统都设置有安全功能,允许少数人告诉其他人他们可以做什么和不可以做什么。少数人拥有不可动摇的权力。我们黑客把这种制度叫做“法西斯主义”,因为这样的计算机系统确实具有极权警察国家的社会组织。
  
为了防止用户关闭安全功能,系统程序周围必须建立一个堡垒。穿过城墙的每一条可能的通道都必须被守卫,否则受压迫的群众就会偷偷溜进去。事实证明,计算机不可能区分偷偷穿墙和人们为了完成工作而经常需要做的许多其他活动。由于维护安全比完成工作更重要,因此所有此类活动都被禁止。结果是你必须经常要求一位掌权人为你做一些你不被允许做的事情。如果他不喜欢你,或者如果他想要贿赂,他可以毫不费力地让你的工作变得比实际应该的困难加倍。
  
人们理所当然的认为,只有掌权人才被允许修改或安装任何系统程序,以免下属通过“特洛伊木马”潜入来关闭安全功能(这一限制通过“文件保护”来强制执行)。他们的方式使得更少的人能够为改进系统做出贡献,并且用户对系统缺陷形成了一种宿命论、绝望的态度。他们了解奴隶的精神面貌。与人工智能实验室相反,在人工智能实验室中,游客致力于系统程序上意味着他正使自己变得有用并成为一名黑客。
  
在迪吉多这样的地方,即使是那些负责改进系统的人也必须与大量的官僚作风作斗争,以至于他们的效率和士气减半。正如罗伯特·汤森德在《提升组织》一书中所说,大多数机构阻碍员工做好工作,从而挫伤员工士气,浪费他们的潜力。安全功能和权限是这一点在电脑系统上的体现。
  
许多人接受这种制度是因为他们觉得工作很繁重,且不关心钱之外的东西。但对于黑客来说,hacking“不仅仅是”一项工作,更是一种生活方式。最初的黑客通过在系统设计中忽略安全性和文件保护来确保无此问题。我们系统的用户是自由人,被要求对自己的行为负责。我们拥有的不是掌权人,而是知识精英,由有学习动机的人们组成。由于没有人可以在我们的机器上支配其他人,因此实验室在无政府状态下运作。这种明显的成功使我转向了无政府主义[1]。对大多数人来说,“无政府状态”意味着“浪费、毁灭性的混乱”,但对像我这样的无政府主义者来说,它意味着根据需要自愿组织,强调目标而不是规则,也不会为了统一而统一。无政府主义并不意味着提倡弱肉强食的丛林。美国社会已经是一个弱肉强食的丛林,其规则也维持着这种状态。我们希望以对建设性合作的关注来取代这些规则。
  
大多数计算机系统上的文件保护意味着要非常注意如何限制他人对您文件的权限。用户被教导文件保护是守护他们每天工作成果的唯一堡垒。我们这些黑客在没有文件保护的情况下幸福地生活了多年,并不觉得我们错过了任何东西,他们的态度被我们称为“偏执狂”。系统中的所有内容都可以访问,这非常有用;这意味着错误无法隐藏在不允许您修复的文件中。
  
我们也将这些态度融入到编程语言设计中。想想“结构化编程”运动及其“禁止GOTO”宣言吧。这些人说:“除了我们,你们所有程序员都是没能力的。只有我们知道你应该如何编程。我们将设计语言,强迫你使用它们、以这种方式编程。”我们黑客认为改进编程语言的更合适方法是提供更易于使用的构建;帮助用户写出好的程序,而不是在他可能写出糟糕的程序时打扰他。我们提供了这些功能,如果用户不喜欢我们提供的构建,可以创建自己的构建。

■实验室成就体现的哲学

  
人工智能实验室的态度是我最著名的作品EMACS屏幕编辑器(小盖伊·史提尔与其他人也对此作出了贡献)的内在。如今,屏幕编辑器(又名“文字处理”程序)已经很常见,且每台家庭电脑上都能找到。但在1973年,显示器终端比打字机终端贵,所以大多数人仍使用打字机终端,而拥有显示器终端的人们往往把它们当打字机终端用(即,“玻璃打字机”)。人工智能实验室有显示器,但是没有屏幕编辑器。
  
EMACS与一众屏幕编辑器不同,它十分强大且可扩展。EMACS包含自己的编程工具,我用它来提供其他编辑器没有的命令,用户也用它来提供他们想要但我没有给他们的任何命令。用户可以创建命令库并共享它们,如果他们做的不错,这些库只需包含在手册中就可以成为标准EMACS系统的一部分。
  
许多其他编辑器都有“宏”功能。EMACS有一种用于编写编辑器命令的编程语言,与通常的编辑器命令完全分开。因为它不必是一种编辑器命令,所以它可以是一种更好的编程语言,适合编写复杂的程序。并且,其不区分内部实现和用户扩展。几乎所有EMACS的“内建”命令都是像用户扩展一样编写的。每个用户都可以自己更换或更改它们。
  
EMACS的开发遵循了一条表现实验室性情的道路。当我来到实验室时,编辑器是TECO,一个打印终端编辑器,比其他编辑器具有更多的编程功能。用户输入一个由许多命令组成的命令串,然后TECO就会执行它。在显示终端上,TECO知道如何在每个命令字符串之后重新显示文件的文本。提供屏幕编辑的自然方法是将其添加到TECO并适应现有的重新显示机制。
  
原本,屏幕编辑器只是TECO的命令之一。它的功能非常有限,如果您需要做任何复杂的事情,例如将文件保存在磁盘上或搜索字符串,您需要退出屏幕编辑器并使用常规TECO。然后,一位用户建议我提供几个屏幕编辑器命令,用户可以将它们挂到已保存的TECO命令或“宏”上。在实现这个功能的过程中,我发现让用户用已保存的TECO命令替换任何屏幕编辑器命令同样容易。
  
这引发了思想的火花。许多人都在编写自己重新定义的屏幕编辑器命令集合,这是他们通常干活时喜欢用的命令。人们会分享它们并改进它们,使它们更强大、更通用。重新定义的集合逐渐成为其本身的系统程序。它们的范围不断扩大,因此使用TECO本身进行实际编辑的理由越来越少。它变成一种用于编写编辑器的编程语言。我们开始在心理上将其归类为一种编程语言,而不是一种将编程作为额外功能的编辑器,这意味着将其与其他编程语言而不是其他编辑器进行比较。结果是对其他编程语言所具有的许多功能的需求。我以这种方式改进了TECO,而其他黑客则使用新功能来改进他们用TECO编写的编辑器。
  
经过大约两年的疯狂演变后,小盖伊·史提尔认为是时候编写一个能够结合其他所有编辑器最佳想法的编辑器了。我们一起开始,但他很快就转向了他的其他兴趣。我将编辑器称为“EMACS”,意思是“编辑宏”(此处原文为“editing
macros”)。还有,我希望新编辑的名字有一个单字母缩写,“E”是尚未使用的字母之一。
  
因此,基础的EMACS命令语言是许多用户维护人员在自己的编辑器上进行多年实验的结果,这只是由于可扩展性和人工智能实验室鼓励用户添加到系统的态度而成为可能。在我赋予用户重新定义自己的屏幕编辑器的决定性的一天,我不知道这会带来一个翻天覆地的新编辑器。我遵循人工智能实验室的启发,即给予用户更多的权力总是好的。然后,人工智能实验室的态度鼓励用户使用这种力量并分享他们由此产生的成果。
  我在EMACS项目上工作了大约五年,免费分发给大家,条件是他们反馈自己所做的所有扩展,以帮助 EMACS
改进。我将这种安排称为“EMACS公社”。就像我分享一样,他们的责任是分享、相互合作而不是对抗。EMACS现在被所有最好的大学的计算机科学系和许多其他地方使用。它也被模仿了大约十次。遗憾的是,许多仿品都缺乏EMACS的真正本质,即它的可扩展性;它们是仅模仿表面的“代EMACS”。
  
现在的EMACS用户很少用TECO进行编辑,而且大多数人甚至不知道TECO。事实上,我已经忘记如何用TECO编辑了。我已经习惯了以TECO编程的方式思考,以至于在极少数情况下,当我需要用它进行编辑时,我会有一分钟左右的时间不知所措。条件反射全部消失了。
  我注意到,编辑器改进是有价值的一个迹象是,在使用它几周后,我忘记了如果没有它该怎么做。这证明,要坚持按照老方法做事,一定需要付出很大的努力。
  
我不认为像EMACS这样的东西可以商业化开发。企业的态度是错误的。商业世界对用户的基本公理是他们无能,如果他们对系统有任何控制权,他们就会把事情搞砸。首要目标是让用户没有明确的投诉,而不是给他们提供帮助自己的方法。这就像为什么美国食品及药物管理局宁可不让药品上市而害死一千个人,也不愿意错放药品而害死一个人一样。第二个目标是赋予管理者凌驾于用户之上的权力,因为决定购买哪个系统的是管理者,而不是用户。如果商业化的编辑器有任何可扩展性的方法,他们可能会让你的管理者为你决定事情,而不给你任何控制权。基于这两个原因,公司永远不会设计出用户可以像麻省理工大学用户那样进行实验的编辑器,他们也不可能在实验结果的基础上开发出EMACS。此外,公司也不愿意给你源代码,而没有源代码,编写扩展程序就难上加难了。

■你的打印机叫什么?

  
当我在实验室的激光打印机系统上为EMACS手册安装新字体时,我注意到初始化菜单包含一个用于更改打印机名称的选项,该名称出现在每个用户输出的封面上。(如果您有不止一台打印机并且想知道哪一台打印机生成了您的输出,则此功能非常重要。)我们的打印机有一个可爱且毫无意义的名称“特雷蒙特”,作为一名黑客,我有责任用更有趣的东西替换它。我选择“卡夫卡”来唤起令人不安的联想。(你听说过哪个早上醒来变成激光打印机的人吗?)
  
在接下来的几天里,其他黑客不断谈论这个新名称,并提出其他有趣的名称(“树食”“文裂”“克苏鲁”……)。我尝试了每个名字几天,同时收集更多建议。这对几乎每个人来说都很有趣。唯一的例外是一位教授告诉我,我无权这样做,我应该停止。我回答说,我直接知道人们会因此而获得乐趣,因此我应该继续下去,至少只要这些建议仍然有效。最后,我用严厉而正式的措辞告诉他,他无权说hacking是未经授权的。
  这可怜的家伙并没有让事情就此结束。他说:“如果您认为重新命名打印机很有趣,为什么不重新命名
PDP-10呢?”这真是一个绝妙的主意,我对此一直心怀感激。第二天,DM
PDP-10(佐克的家)被称为“地下城模型”(此处原文为“Dungeon
Modelling”),而不是“动态模型”(此处原文为“Dynamic Modelling”);ML
PDP-10(用于数学研究和医疗决策)被称为“医疗保险”(此处原文为“Medical
Liability”)而不是“数学实验室”(此处原文为“Math Lab”);MC
PDP-10被称为“最大混乱”(此处原文为“Maximum Confusion”)而不是“MACSYMA财团”(此处原文为“MACSYMA
Consortium”);AI PDP-10被称为“无政府主义者国际”(此处原文为“Anarchists
International”)而不是“人工智能”(此处原文为“Artificial Intelligence”)。我再也没有听到更多的抱怨。

■实验室被背叛

  
现在还有一个叫麻省理工学院人工智能实验室的机构,我仍然在那里工作,但它的旧品质已经不复存在了。它受到了一家衍生公司的致命打击,这从根本上并且(我相信)永久地改变了它的性质。
  
多年来,只有我们人工智能实验室和其他几个实验室欣赏最好的软件。当我们谈论Lisp的优点时,其他程序员会嘲笑我们,尽管他们对自己在说什么知之甚少。我们没有理会他们,继续我们的工作。他们说我们在象牙塔里。
  然后“现实世界”的一部分意识到我们关于Lisp的看法一直都是正确的。商业界对Lisp产生了浓厚的兴趣。这是终章的开始。
  
人工智能实验室刚刚开发了一台名为Lisp机器的电脑,这是一台具有很大虚拟地址空间的个人电脑,因此可以运行非常大的Lisp程序。现在人们希望将这台机器进行商业化生产,以便其他人都可以拥有它们。Lisp机器的发明者、顶级黑客理查德·D·格伦布勒制定了建立一家非传统黑客公司的计划,该公司将缓慢但稳定地发展,不使用炒作,并且比标准的美国公司更少贪婪和无情。他的目标是提供一种支持黑客和hacking的替代方式,并为世界提供Lisp机器和优秀的软件,而不仅仅是实现利润最大化。这意味着不需要大多数外部投资,因为投资者会坚持传统方法。这家公司就是Lisp机器公司(此处原文为“Lisp
Machines Incorporated”),一般简称LMI。
  
Lisp机器项目的其他人认为这行不通,并批评格伦布勒缺乏商业经验。作为回应,格林布拉特请来了他的朋友诺夫斯克,他几年前离开实验室进入工业界。诺夫斯克被认为在商业上经验丰富。他很快就以最务实的方式在背后捅了一刀,证明了这种印象的正确性:他和其他黑客抛弃了格林布拉特,成立了另一家公司。他们的计划是寻求大量投资,尽可能快地发展,引起轰动,然后魔鬼会把任何人或任何东西溺死在其中。尽管黑客们只能获得公司计划创造的一小部分财富,但即便如此,他们也能致富!他们甚至不需要更加努力地工作。他们只得停止像以前那样与他人合作。
  
这导致了两家相互竞争的Lisp机器公司:格伦布勒的LMI和诺夫斯克的辛博利克斯(此处原文为“Symbolics”)(在人工智能实验室中通常称为“史莱姆”(此处原文为“Slime”)或“伯利克斯”(此处原文为“Bolix”))。人工智能实验室的所有黑客都与其中之一有联系,除了我,因为即使是LMI也涉及我不想做出的道德妥协。例如,格伦布勒反对专有操作系统软件,但赞成专有应用软件;我不想拒绝分享任何一种程序。[2]
  
辛博利克斯直接获得了数百万美元的投资,并坚持雇佣了麻省理工学院所有没有被拉拢的人。格伦布勒曾设想人们在LMI和人工智能实验室兼职工作,以尽量减少对实验室的伤害。辛博利克斯指责存在利益冲突,迫使LMI人员也离开麻省理工大学。突然我是最后一个黑客了,而一个人是不够的。实验室正走向死亡。
  我强烈怀疑,摧毁人工智能实验室是一种蓄意行为。商人一旦得到金蛋,就会杀死那下金蛋的鹅,以确保自己的垄断地位。
  
回忆起这段时光,我感到非常痛苦。留在实验室的是教授、学生和非黑客研究人员,他们不知道如何维护系统或硬件,也不想知道。机器开始坏了,而且永远也修不好[3];有时候它们就被直接扔掉了。软件无法进行必要的修改。非黑客对此的反应是转向商业系统,因为商业系统带来了法西斯主义和许可协议。我经常在实验室里徘徊,晚上穿过曾经满满当当的房间,空荡荡的,心想:“哦,我可怜的人工智能实验室,你快死了,我却救不了你。”每个人都认为,如果培训出更多的黑客,辛博利克斯就会把他们招走,所以似乎根本不值得一试。实验室管理部门没有努力团结我们,而麻省理工学院的管理部门就像一个牟利公司一样敛财,进一步打击了人们的士气。
  
过去,黑客时不时地离开,但留下来的黑客会培养新的黑客来取代他们。现在,整个文化荡然无存,没有足够的余力为新人提供榜样,也没有伟大的东西吸引最优秀的人来到这里。例如,黑客们过去每天都在一起吃晚饭(通常是中国菜)。虽然不是每天都有一个人,但你可以指望在晚餐时间找到其他人一起吃饭。现在这种做法瓦解了,当人们不再指望找到其他人一起吃饭时,他们就不会计划在通常的时间饿着肚子出现,从而加剧了这种影响。
  
过去,整个人工智能实验室只有一个公用电话和一个公共广播系统。(电话的分机号码是6765,我们接听的是“6765”,或者“斐波那契数列的第20位”,因为6765是斐波那契数列的第20个数字)。打电话很方便,可以联系到任何人。现在,大多数人和终端机都搬到了6765无法到达的其他楼层,而9楼,实验室原来的中心,也被机器填满了。这种变化进一步削弱了实验室的社会凝聚力。现在我甚至不能打电话询问是否有人饿了,也没人能通过电话联系到我。
  
就这样,我一下子失去了我的社交网络,失去了堂堂正正干事业的机会,也失去了我帮助建立起来的大部分东西。我觉得自己是一个灭绝部落的最后幸存者,注定要在不理解我的陌生人中间度过一生。如果一个现有的、以前很健康的实验室无法承受压力,那么建立一个具有人工智能实验室优良品质的新实验室的机会就不大了。电脑行业也不愿意让我按照黄金法则的要求与其他黑客分享。我开始寻找不涉及计算机的新职业,但并不预期能找到一个,而且除了从事会计程序或其他黑客(包括我在内)都不感兴趣的工作外,我看不到任何前途。这样的生活毫无意义,但如果他们不想要我正在做的事情的话,至少我不会因为拒绝与其他黑客分享而感到羞耻。我不确定这样做是否比更直接的自杀方式更好。
  
在大约一年的时间里,这里有LMI、辛博利克斯和人工智能实验室的遗迹。三者共享Lisp机器操作系统。不时地,辛博利克斯的黑客们会在收到错误报告后说:“这在当前系统上无法修复。请等待我们的新机器。”这样做是为了让新机器听起来更像是一种改进。不久之后,我就会宣布我已经修复了这个错误,这对我来说是一件非常有趣的事情。

■战争爆发

  
但事情变得更糟了,因为LMI并没有像辛博利克斯所预言的那样失败。它正在生产和销售Lisp机器,而且售价比辛博利克斯低得多,因为辛博利克斯需要收回巨额投资并支付大量工资。大约一年后,辛博利克斯意识到,如果不采取更激烈的措施,其大肆宣传的必然胜利就不会实现。他们的计划是:结束软件改进的三方共享。由于LMI的规模要小得多,他们预计LMI将无法跟上他们的步伐(人工智能实验室不再被视为重要的贡献者)。
  
辛博利克斯要求人工智能实验室遵守新的条款:使用辛博利克斯的改进,但不得与LMI分享[4]。这一要求被以新闻术语的方式宣布为一种伟大的慷慨行为。实际上,即使允许麻省理工大学继续使用他们的改进,也不过是另一种策略,目的是绑死实验室,使其为他们提供错误报告和演示,并单独向他们购买。这种动机并不罕见。许多公司向麻省理工大学捐赠他们制造的计算机就是出于这个原因。但通常情况下,他们都是通过慷慨解囊而不是敲竹杠来获得麻省理工大学的合作。
  
毫无疑问,辛博利克斯公司希望实验室立即屈服,完全转用他们的软件品牌。但我拒绝屈服,拒绝被征召帮助辛博利克斯对抗LMI。LMI更值得我的帮助。我再也不能保持中立了,我要与那些强迫我战斗的人战斗[5]。
  
我没有使用辛博利克斯的改进,而是对上一个共享系统进行了类似的改进。实验室的大多数用户继续使用麻省理工大学系统;有些人是因为不喜欢辛博利克斯,有些人是因为认为其在技术上更胜一筹,还有些人是因为可以更自由地更改系统。在过去的一年半里,我一直在这样做,让麻省理工大学系统保持同样的性能,有时甚至更好。由于LMI可以使用我所做的所有改进,因此LMI的系统也同样出色。辛博利克斯拒绝共享的主要结果是,由于两个系统不兼容,给用户带来了很多麻烦。
  
一般来说,我会让辛博利克斯公司设计一个新功能,然后查看他们的文档,并实现一些基本兼容的功能。我可以在不关注他们的情况下改进系统,但这将是一个糟糕的策略。他们可能会逐字逐句地复制我的改进,然后把时间花在额外的改进上。或者,他们也可以无视我的设计,实施类似但不兼容的东西,给所有用户带来麻烦。就像在自行车比赛中,如果你紧随其后,就会省事得多。作为一个人与一个大团队比赛,我需要这种优势。我可以轻而易举地冲在前面,但这并不能有效地利用我的体力。
  
辛博利克斯通过威胁提起诉讼(虽然他们没有提起诉讼)和试图让我被解雇来进行反击。有传言说,他们每天都会多次阅读我的电脑邮件,寻找可以指控我的证据;有一次,他们被发现了,结果适得其反(用惩罚每个人的安全措施来阻止他们是违背我的原则的)。他们认为,如果有人不劳而获,那就不好了;与其让他们的竞争对手和他们一样受益,还不如让东西白白浪费掉。正是这种分歧使我们的国家陷入瘫痪。
  
通过这种方式与辛博利克斯合作,我不仅不必屈从于他们的条件,还能伸张正义,让他们因摧毁旧人工智能实验室而受到应有的惩罚。起初,我还希望能提供一个自给自足的核心,以重振实验室。但没有人加入我的行列;现在每个人都坚持自己的研究。

■我该去往何方?

  
辛博利克斯从未在软件方面取得优势,但他们的新机器比LMI的新机器更快。现在,他们已经向麻省理工大学交付了许多这样的机器,我的用户也正在改用它们。在这些机器上使用麻省理工大学的系统版本是不现实的,因为机器太不一样了。
  
用户的流失使我很难验证我的新软件是否真的有效。但幸运的是,我能在辛博利克斯胜出前够坚持足够长的时间。LMI刚刚开始供货。很快,他们就会取得巨大成功,并为自己的系统开发提供支持,而辛博利克斯将陷入精益求精的激烈竞争中。一旦LMI能够在没有我的帮助下继续发展,那么对辛博利克斯的最终惩罚就会完全安排妥当。到那时,我就可以停止Lisp机器的工作了。我已将今年的感恩节定为停止工作的时间。
  一旦我安排好了对作恶者的惩罚,我就该开始重建被他们摧毁的一切了。
  
人工智能实验室无法重建这一切。麻省理工大学试图对这里完成的任何有用的工作做出许可协议,留在这里继续分享本身就是一场斗争。而且,被辛博利克斯机器和半出卖所包围,无论如何都不是一件有趣的事。我需要重新开始生活,而第一步就是远离过去的废墟。因此,我要辞职。
  在Lisp机器上工作无法重建这一切。麻省理工大学声称拥有Lisp机器软件,因此只能秘密共享(LMI
是个例外,他们与麻省理工学院签有合同)。这种地下合作总比不合作好,但它不能产生一种新的生活方式。这需要公开、公共、广泛的合作。与让辛博利克斯默认获胜相比,在Lisp机器系统上开展工作似乎更为正确,但这并不是一种必要的生活方式。出于同样的原因,我不能为LMI工作,尽管他们愿意让我的工作部分公开。我可以在战争中做出妥协,但在建造好东西的时候,这种妥协是没有用的,因为这会让我建造的东西变得不好。
  
相反,我选择了一个雄心勃勃的项目,它从根源上打击了商业化、维持不利生活的方式。我将编写GNU,它是Unix软件系统(内核、编译器、实用程序和文档)的完全替代品,并自由提供给所有人。
  
GNU将使黑客们能够轻松地决定以共享和合作为生。使用计算机需要软件系统,但当下,由于没有自由软件系统,拒绝使用专有软件是一种巨大的牺牲。但是,一旦有了理想的自由软件系统,这种压力将永远消除。黑客们将可以自由分享。
  
我将从感恩节开始。我正在请求计算机制造商为这项事业捐款,但即使我必须去打工当服务员,我也会这样做。其他怀念旧方法的程序员已经开始团结起来支持这一事业。加入并提供帮助!也许人工智能实验室的旧品质会再次复活。

Good Hacking
理查德·斯托曼
快乐的黑客

---

脚注

1. 
我喜欢人工智能实验室的无政府主义生活方式和运作方式,但我并不是真正的无政府主义者。我并没有呼吁废除国家及其许多有用的活动,以及以民主方式做出社会决策的可能性。请参阅《为什么我们需要一个国家》(https://www.stallman.org/articles/why-we-need-a-state.html)。
2. 人工智能实验室在两家公司之间保持中立;我很乐意成为这种中立的一部分。
3. 人工智能实验室的PDP-10在1982年2月坏了,而且从来没被修复过。
4. 1982年3月16日,恰巧是我的生日,辛博利克斯发出了最后通牒。我认为那一天是辛博利克斯攻击人工智能实验室和LMI的日子,目的是征服前者以摧毁后者。
5. 
具有讽刺意味的是,彻底的冲突让我看到了一些积极的奋斗目标,从而将我从绝望中拉了出来。我不再迷茫,不再没有前进的方向。一场斗争突然降临到我的头上——一场值得我竭尽全力去打败的侵略。

                * * *

  顺带一提,《GNU无障碍声明》(GNU Accessibility
Statement,https://www.gnu.org/accessibility/accessibility.zh-cn.html)这个页面的第二段似乎未删除原文。

顺颂时祺
Ventus Uta

website: www.ventusuta.com
twitter: twitter.com/ventusuta

reply via email to

[Prev in Thread] Current Thread [Next in Thread]