作者:蓬岸 Dr.Quest
知乎文章编号:28099354
创建于:2017-09-18 12:58:35
修改于:2017-09-18 12:58:35
原文:The Lost History of The Jargon File
原作者:Pete Trbovich
今天很多程序员都并不知道这个文件的存在。但这份文件却是一个鲜活的文化遗产,其中不仅编写了程序员文化的定义,也深入到程序员文化的精神内涵,并敏锐的捕捉到其中的幽默、伦理和背后古怪的世界观。在其出现之后的一段时间里,它甚至成为各方争议的话题,一方面警惕的学校管理员将其从学校图书馆下架,另外一边则有许多人呼吁这份文件的维护者引咎辞职。但任何在过去30年里以编程为生的人都知道,作为像“橡皮鸭调试法(Rubber duck debugging)”,“挥舞死鸡(Waving a dead chicken)”,“剪牦牛毛(Yak shaving)”等性格鲜明的俚语传播的起点,黑客们的黑色幽默抹黑了它的声誉。
Jargon File起源于1970年代末麻省理工学院电脑室中流传的一份充满半开玩笑的术语定义的简单的文本文件。随着其在留言板中分享扩散,在1980年代其内容逐渐增长,最终成为一系列被电脑科学领域的宗师们共同编辑并维护的书籍。甚至被一些重要的法律案例所引用。它的影响力从PDP-10用户逐渐扩大到大学里的各个角落,甚至登上了《人物》杂志的封面。那Jargon File究竟是什么呢?是电脑爱好者眼中一份神圣的手抄本,还是属于黑客的无政府主义手册?让我们一起来走进这个与黑客文化相关的迷人故事,来了解它究竟对今天的软件开发社区产生了怎样的深远影响。
1970年代末的PDP-10电脑
故事开始于1975年,电脑科学家Ralph Finkel将一份名为AIWORD.RF的文件上传到斯坦福大学人工智能实验室的电脑里。这份文件包括了当时技术圈子里常见俚语的列表,其中一些俚语与麻省理工学院的铁路模型技术俱乐部有着密切的联系。后来,马克∙克里斯平(Mark Crispin),也就是IMAP电子邮件协议的发明者,将这份文件通过FTP方式复制到麻省理工学院人工智能实验室。这份文件最初被命名为“AIWORD”,是因为它列出了一系列人工智能编程所常用的术语,但克里斯平注意到这份文件的内容早已超出了原作者的本意,收录了许多通用的电脑科学术语。他根据这份文件的来源斯坦福大学人工智能实验室(SAIL),将其重新命名为SAIL JARGON并开放所有人访问和添加内容。因此在 1970年代末,协作编辑的概念就已经产生了,这比维基百科的出现要早许多年。
在1983年之前,Jargon File一直都只在MIT内部流传,直到自由和开源软件的守护神,GNU通用公共许可证的创建者理查德·斯托曼(Richard Stallman)发现了这份文件,并为这份充满黑客智慧的词典贡献了数量众多的缩写词、术语和业内笑话。在当时,斯托曼是LISP编程语言最早的大牛之一,而LISP语言则是第一种在人工智能研究领域取得丰富成果的语言。
LISP电脑,在波士顿的MIT博物馆可以看到实物
“黑客”一词很快就成为热门话题,按照斯托曼自己的说法:
“他们的共同之处主要是对卓越的追求和对编程的喜爱。他们希望他们使用的程序尽可能的好用。他们希望事情能够做的干净利落,他们希望以比人们认为可行的方式之外更加精彩的方式去完成一些事情:‘看,这是多么神奇,我打赌你不会相信这事能成’”。
而事实的情况则是,今天我们所说的“黑客”很多时候是指“骇客”,那些像撬开保险箱一样入侵电脑系统的人。“黑客”一词的原意则有着其高尚的理想:那些可以通过电脑方面的聪明才智赢得同僚尊重的人,但媒体却将这个词推入了不确定的命运当中。电视和印刷媒体将黑客当成是入侵机器的人;杰夫·布里吉斯(Jeff Bridges)在1982年的电影《电子世界争霸战》(Tron)中称自己是“黑”(Hacking)进电脑系统将“黑客”和入侵电脑系统在大众的观念里牢牢的联系在一起。接下来,1983年的电影《战争游戏》让公众开始担心在空闲时间玩电脑是件危险的事情,而1995年的电影《黑客》中,安吉丽娜·朱莉则将“黑客”演绎为性感的“键盘侠(keyboard bandit)”,而不会有任何实质性的帮助。
电影《电子世界争霸战》描绘的虚拟空间
这就是当时电脑科学作为新兴领域的情形,今天,对于STEM职业的宣传。但曾经STEM职业也被大众当时的误解所影响。大概于此同时,电脑科学家盖伊·史提尔二世(Guy L. Steele,Jr.)开始进入人们的事业,他是Scheme编程语言的发起人之一,Emacs文本编辑器许多关键规格的设计者,同样也是早期计算机科学杰出的贡献者。不过他这个故事中出现则是因为他的漫画,在史提尔的漫画中,Crunchly被描绘为一个毛茸茸的小圆点,在电脑实验室里观察到诸多幽默的故事。当今天被称作“The Jargon-1 File”的快照被发表在《共同进化季刊》杂志中时,史提尔的Crunchly漫画也被加入其中并配合的相当完美,因此史提尔就这样命中注定般的被加入到Jargon File的历史进程中,他在Jargon-1 File的基础上编辑了《新黑客词典》并在1983年由哈珀与罗出版公司(Harper & Row)出版,其中包括了他全部的Crunchly漫画。
《新黑客词典》在1980年代中期的美国图书馆中广泛流传,而就在这时一群被称作“414”的少年黑客(414是团体所在的密尔沃基的电话区号)由于成功入侵大型银行的电脑系统而登上国际新闻的头条。《新闻周刊》杂志以耸人听闻的方式将414成员的照片刊载在封面上,并以标题“小心:黑客在玩耍”报道了这次时间。布鲁斯·斯特林(Bruce Sterling)出版了名为《黑客攻击》的图书,美国国会医院丹·格里克曼(Dan Glickman)开始着手制定阻止网络攻击的法律,他也使用了“黑客”(hacking)一词来描述网络攻击。
哎呀
仅仅用了五年的时间,大众就已经对黑客这一概念充满了恐惧。时至今日,如果您在Google中输入“黑客”并且查找图片,你会找到一堆带着滑雪面具拿着笔记本电脑的人。静下来想一想这一切是多么愚蠢。
登上《新闻周刊》封面的414成员尼尔·帕特里克(Neal Patrick)
由于修辞上的混杂,后来我们使用“白帽子”来描述电脑安全专家,而用“黑帽子”来描述电脑技术相关的犯罪,因为像“黑客”这样的词汇已经无法描述其中的区别了。
同时在1990年代早期,Jargon-1文件和其中的文字内容开始转由埃里克·雷蒙(Eric S. Raymond)负责。在整个1990年代中,雷蒙扮演者黑客社区中吟游诗人的角色,特别是对于FOSS社区,也就是自由和开源软件(Free and Open Source Software)社区来说更是如此。FOSS社区从Unix到Linux和BSD社区一脉相承,并最终延续到世纪之交的智能手机革命,直到Google开发出使用Linux内核的Android操作系统,Linux操作系统是自由和开源软件运动的标志性项目,是使用GNU通用公共许可证授权的替代型桌面PC操作系统。
雷蒙是开源软件模式最坚定的支持者之一,我们甚至可以说如果没有他在1999年出版的《大教堂和集市》一书,技术社区可能仍然不会对开源协作技术栈有足够的信任。雷蒙非常擅长以中层管理者熟悉的语言去描述工程概念,因此当Jargon File需要一个新的维护者的时候他很自然的就加入进来。
但雷蒙也在Jargon File中加入了不少私货,支持自由和开源软件的观点被强调,而关于商业和私有软件的条目则被污名化。当新世纪到来之时,愤怒的呐喊开始在留言板和博客中爆发出来,抗议雷蒙在被广泛信任之时破坏历史的举动。实际上他的问题也正显示出黑客文化仍在活跃的发展之中,而非是已经固定不变的化石。
Jargon File后来由几位独立的黑客接管,就像 Jargonfile/jargonfile 中的这个例子。但实际上大概从2003年开始,这份文件就已经不再有积极的维护者了。
Jargon的“官方”版本停留在4.4.7版
但是这背后到底产生了什么呢?一份单独的文本文件,记录了所有的网络文化,以真实的开源风格被世界所接受。2000年代中期,新的互联网模式“博客”开始取代静态的文本文件。而博客生态圈中信息资源的协作最终带来的维基百科的出现。而在维基百科出现之前,这种协作促使了Everything项目的出现,今天我们仍然可以通过 Everything2 访问它,Everything被视为维基百科的前身,而Everything中也包含了大量Jargon File的内容。
Jargon File可以被认为是网络文化领域中虚拟的维基百科。它被《牛津英语词典》(Oxford English Dictionary)视作电脑领域新词的词源。而《时代周刊》和《华尔街日报》则在出现计算机文化术语的时候反复引用该文件作为解释。
但Jargon File最不可思议的引用可能要数当年SCO状告IBM的法庭听证会了。2003年,Jargon File中“FUD”(害怕、不确定、怀疑)一词被用来形容一方对另一方的所作所为。SCO对IBM一案的影响非常巨大,以至于老一些的Linux专家们仍然对其谈之色变,在当时,这是一场关于Linux所有权的恶斗。
如果你可以查阅法律案卷,你会发现这桩开始于2003年的诉讼到今天仍然是一起技术上没有完结的官司,关于这起“木乃伊”诉讼的更多内容,可以在当年专门为此创办的Groklaw博客上找到,这里就不再赘述了。
终于到了解释一些词汇的时间了不是?
【Rubber duck debugging - 橡皮鸭调试法】将代码中的错误解释给橡皮鸭或类似的无生命物体的过程。其作用类似于“第三人学习”,通过大声的说出程序的流程来自行发现问题的根源,橡皮鸭可以减少这样做时的尴尬感。
【Waving a dead chicken - 挥舞死鸡】当已经尝试过所有办法之后为了满足第三方的要求所做的无谓举动。当互联网连接失效时,虽然你知道这是ISP的问题,但其他人可能仍然会要求你关机重启,然后你就去联系技术支持,类似这样的无用的动作就被称作“挥舞死鸡”。
挥舞死鸡的来源,是犹太教的加帕诺(Kaparot)仪式
【Yak shaving - 剪牦牛毛】针对与你真正想解决的问题相距甚远的意外情况所做的无用动作。它来自动画片《莱恩和史丁比》(Ren and Stimpy)。你想要处理税务文件,但是这些文件存储在台式电脑上,你希望把它们导入到笔记本电脑上,但ssh程序需要更新,但更新ssh会导致库依赖关系崩溃,因此你需要升级系统,但存储更新文件的Git仓库却需要更换网线才能工作,当你做完所有的这些时,你已经剪了不少牦牛。
想要更多?哦,我们才刚开始……
【Brute force and ignorance - 蛮力和无知】由于没有时间去以正确的方式解决问题而用笨拙愚蠢的方式解决问题。奥格用石头调试,恐吓电脑工作。
【ELIZA effect - 伊莉莎效应】人类对人工智能模拟不合理的依赖,即使人类明知到对方是机器。2015年的电影《机械姬》就是一个很好的例子。ELIZA是一个古老的聊天机器人,它可以模拟一个罗杰斯学派的心理医生,并被巧妙地嵌入在理查德·斯托曼的EMACS编辑中。
【Fiber-seeking backhoe - 光纤搜索挖掘机】当建筑工人挖断光纤线路时,就会导致今天我们所谓的“空中数据包(packet-over-air)”故障。
【One banana problem - 一只香蕉问题】简单到猴子都可以解决的问题,只允许为解决此问题支付一只香蕉。你的老板可能认为所有的问题都是如此。
【Rat belt - 老鼠带】这种小拉链可以将服务器机房里的电缆捆在一起,整整齐齐。
正如你所见到的,早期的黑客术语,像今天的互联网文化一样,混杂了流行文化的影响、技术问题、冷笑话、无理取闹似的调侃、圈内的老笑话和早期的模因。事实上,相比维基百科,Jargon File更类似于现在的Know Your Meme,这里面包含了RRS Boaty McBoatface(船能的船脸麦克号)和蓝屏死机(BSoD)这样的词汇,哦,作为黑客,我想者就是数字文化持续生存和发展的明证吧。
Pete Trbovich是BeMyApp的特约作者,此文仅代表作者本人观点