当年彼得·萨姆森为什么会深更半夜在mit26号楼里四处转悠,可能连他自己都很难解释清楚,有些事情是无法用语言来表达的。彼得·萨姆森正准备于1958-1959年冬季进入mit读大学一年级,如果你像他即将认识并成为好友的那些人一样,你就会知道这根本无需解释。例如,在迷宫般的实验室和库房周围“侦察”,在机房中寻找电话交换机的秘密,在地下蒸汽管道中追踪电线或继电器的路线,这些行为都实属寻常,根本无需理由。如果遇到一扇关着的门,门后面传来巨大而又令你非常好奇的噪声,那么无需邀请,推开它就是了。接下来,如果没有人阻止你接近那台发出噪声的机器,你就会摸摸它,打开不断颤动的开关,看看反应,最后拧开螺丝,拆下一块板子,碰碰二极管,再拧拧几个接头。彼得·萨姆森和他的伙伴就是在这种与外界进行特殊互动的环境中长大的,那时,只有搞清楚东西是如何工作的,才能理解它的意义。如果不动手,怎么能学到东西呢?
彼得·萨姆森和他的朋友们正是在26号楼的地下室里发现了eam机房。26号楼是一栋由玻璃和钢筋建造的长长的大楼,它是mit一栋新盖的大楼,与麻省大道对面庄严的柱式结构建筑形成了鲜明对比。eam机房——会计电算化机房(electronicaccountingmachinery)就位于这栋缺乏个性的大楼的地下室里。这个房间里隐藏着像计算机一样运行的机器。
早在1959年,见过计算机的人并不多,更别提亲手摸摸了。萨姆森,这个瘦瘦高高、长着一头红色卷发的小伙子,就这样在造访mit时看到了计算机——看吧,他拖长了声音念着,仿佛正在领会(屏幕上闪过的)字里行间的意思。他的家就在马萨诸塞州的路威,距离校园只有30英里。这次造访使他成为了一名“剑桥少年”——该地区无数狂热追求科学的高中生之一,他们就像受到地球引力一样,被吸引到这个坐落在剑桥市的校园。他甚至装配了一台自己的计算机,用的材料是别人丢弃的弹球机的零部件,因为这是他能够找到的最好的逻辑单元。
“逻辑单元”这个词似乎包含了吸引一位碾磨机修理工的儿子——彼得·萨姆森对电子学感兴趣的东西。一切都源于兴趣。当你带着探索一切的好奇心成长起来时,发现像电路逻辑这种精致的、所有连接都必须构成完整回路的东西的喜悦会让你无比激动。彼得·萨姆森很早就特别欣赏这些事物的数学简捷性,他还能够回忆起在波士顿公共电视频道(wgbh)看到的一个电视节目,这是一个入门介绍,讲的是用计算机语言对计算机进行编程。这个节目激发了萨姆森的无限想象力,在他看来,计算机无疑就像一盏阿拉丁神灯——你擦擦它,它就会执行你的命令。因此,他努力尝试学习这个领域的知识,制造他自己的机器,参加科学项目竞赛,并来到他像这类人所向往的地方:mit。像他这样的人是高中生当中最聪明的人,他们戴着像猫头鹰般的眼镜,他们没有发达的胸肌,他们是数学老师眼中耀眼的明星,却无法通过体育考试,他们不想在舞会上出风头,而是梦想着能够进入通用电气科学竞赛的决赛。他的理想是进入mit,在这里他可以在午夜2点徜徉于走廊里,寻找着感兴趣的东西,在这里他将真正发现一些深深吸引他的东西,这些发现将把他带入一种全新的创造过程和生活方式,并把他推向一个只有那些名声不怎么好的少数派科幻作家才能够想象出来的世界的最前沿。他将发现一台他能够亲自摆弄的计算机。
萨姆森偶然发现的这个eam机房里装满了庞大的键控穿孔机,一个个都像文件柜那么大。没有人看管它们,这个机房只有白天才有工作人员,而且只有一小部分经过严格筛选获得了正式许可的人才有权利把长长的马尼拉卡片交给操作员,然后操作员根据这些人想要输入到卡片上的数据来使用机器打孔。卡片上的孔代表了计算机指令,用来告诉计算机把一块数据放到某个地方,或者在某块数据上执行一个函数,或者把一块数据从一个地方移动到另一个地方。一摞这样的卡片就是一个计算机程序,一个程序就是一系列的指令,最后产生某种预期的结果,就像菜谱上的指示一样,当你准确地按照菜谱来操作,就可以做出一块蛋糕。这些卡片将被交给楼上的另一位操作员,他把卡片输入到“阅读器”中,阅读器记录卡片上孔的位置,然后把信息发送给26号楼一层的ibm704计算机——那个庞然大物。
ibm704价值数百万美元,它占据了整整一间屋子,始终由一小队专业的机器操作员看管,而且需要专用的空调,以免机器内部炽热的电子管由于温度过高而把数据烧坏。当空调停机时(这经常发生),会发出巨大的声响,这时三位工程师就会立刻从旁边的办公室中跳出来,飞快地打开机箱,这样它内部零件才不会融化。负责打孔、把卡片输入到阅读器中以及在机器上按动按钮和开关的这些人通常被称为牧师(priesthood),而有资格向这些最神圣的牧师提交数据的人则是正式的信徒(acolyte)。这几乎是一种仪式般的交换。
信徒:哦,机器,你能接受我提供的信息以便运行我的程序,并为我做一次计算吗?
牧师(代表机器):好,我们试一试,但我不做任何保证。
通常,即使是这些享有特权的信徒也不允许直接接触机器,而且他们可能看不到机器“吞食”他们的成批卡片(这个过程有时是几小时有时甚至是几天)的结果。
萨姆森知道这些事,当然,这令他失望极了,他想要摸摸那台机器,因为这是他生命的全部意义。
萨姆森所不知道的(也是他发现后感到很高兴的)是eam机房里也有一台特殊的打孔机器,它叫做407,不仅能打孔,还能读取卡片、对卡片分类并把它们打印成清单。看起来这些机器似乎没有人看守,但它们也可以算是某种计算机。当然,它们使用起来并不轻松,要在一块叫做“插线板”的板子上绕线,这块板子全是由两英寸的塑料方块做成的,板上布满了密密麻麻的孔。如果按照一定的顺序把几百根线从这些孔中穿过,会得到一个像老鼠窝一样的东西,不过可以把它插入到这台电子机器中,从而改变机器的属性。它可以做你想要做的事。
于是,在没有得到任何人许可的情况下,彼得·萨姆森就和同样来自mit且都对铁路模型特别感兴趣的几位好友开始做这些事了。虽然这是他们走向充满科幻色彩的未来的第一步,并且这一步是那么偶然,没有人能够预想得到,但这也是非主流的亚文化自我引领并发展为一股强大的地下力量,从而最终形成一种真正文化的必由之路。虽然它来得有点唐突,并且未得到正式认可,但这种文化却是计算机王国的灵魂。我们从技术模型铁路俱乐部(techmodelrailroadclub,tmrc)第一代计算机黑客的“胡作非为”中就能够看到这种精神。
彼得·萨姆森在1958年秋天进入mit的第一个星期就加入了tmrc。这所大学的大一新生们参加的第一个活动是个传统的欢迎会,每个曾经在mit学习的人都参加过与此一模一样的欢迎会。“看看你左边的人,再看看你右边的人,你们三人当中会有一个人不能从本校毕业。”这段讲话的目的是为这群新生制造一种危机感。在这些新生进入大学之前的学习生涯中,几乎从来没有感到任何学习上的压力,因为他们都是最聪明的人。但现在不同了,在每位新生左边或右边站着的人都和他一样聪明,也许比他更聪明。
但对某些学生来说,这根本不算是挑战。这些年轻人以一种难以言表的友好眼光来看待他的同学:或许他们可以相互帮助,共同探索事物的本质,进而掌握它们。已经有很多难题等着他们去解决,为什么还要在乎那些愚蠢的、喜欢阿谀奉承的老师呢?为什么还要为分数担心呢?对彼得·萨姆森这样的学生来说,探求问题比学位重要得多。
欢迎会之后不久就是新生集会。所有校园组织(包括特殊兴趣小组、互助会等)在一个大体育馆里摆好展位以招募新成员。吸引了彼得·萨姆森的小组就是tmrc。其成员是一些热情的、剃着平头的高年级学生,他们说话像连珠炮一样,夸耀说他们在20号楼有一个永久使用的俱乐部活动室,里面陈列着ho比例尺sup/sup的火车模型。彼得·萨姆森对火车一直很着迷,特别是地铁。于是他打算去20号楼看看,这是一栋二战期间修建的临时性建筑,楼的外墙镶了木瓦。这栋楼的走廊很阴暗,虽然俱乐部的活动室设在二楼,但光线微弱,感觉就像在地下室一样。
屋内是一个巨大的火车规划模型。它几乎占满了整个房间,如果你站在一个称为"thenotch"的小块控制区域,你会看到一座小城镇,一个小工业区,一条微型的正在运转的电车线路,一座纸塑的山,当然,还有好多火车和铁轨。为了模拟原物,火车模型制作得非常精细,它们在弯弯曲曲的铁轨上轧轧地行驶着,像画中那样完美。
彼得·萨姆森又看了看支撑整个模型的齐胸高的板子下面,这令他大吃一惊。这个模型下面是一个更庞大的像矩阵一样的、由电线、继电器和纵横开关组成的网络。彼得·萨姆森做梦也没有想到会有这么复杂的东西。开关排列整齐有序,古铜色的继电器也一排排整齐地排列着,一长捆红、蓝、黄相间的线缠绕在一起,呈现出彩虹般的颜色,就像爱因斯坦的爆炸式发型一样。这是一个令人难以置信的复杂系统,彼得·萨姆森发誓要弄明白它是怎么工作的。
tmrc的成员在为模型工作40个小时之后,就会得到一把该活动室的门钥匙。新生集会是在星期五举行的,到了星期一,彼得·萨姆森就有了一把自己的钥匙。
tmrc内分为两个小组。一些成员喜欢花时间来制作有历史和纪念价值的火车模型,并给它们刷油漆,或者为模型制作真实的景物。这个小组的成员就像是一伙雕刻家和油漆工,他们订阅了铁路杂志,还为俱乐部预订一些老掉牙的火车线路旅行。另一个小组可以称为俱乐部的“信号和动力”(signalsandpower,s&p)小组委员会,他们更关心模型下面的事情。这就是“系统”,它的工作状态就像鲁宾·戈德堡sup/sup和沃纳·冯·布劳恩sup/sup之间的协作一样,而且不断在改进、更新和完善,有时它还会停止工作,用俱乐部的术语说就是“被搞砸了”。s&p专注于研究系统的工作原理,研究它不断增加的复杂性,一个部分的修改将对其他部分有何影响,以及如何调整各个部分之间的关系以便让它们优化使用。
系统的很多部件都是电话公司通过“西部电子大学捐赠计划”捐赠的。俱乐部的指导教师同时负责校园的电话系统,他注意到复杂的电话设备可以供技术模型铁路俱乐部的学生们研究。以这套设备为起点,学生们设计了一种工作模式,允许几个人同时控制火车,即使火车在同一条铁轨的不同位置上。利用电话的拨号盘,tmrc的“工程师”们可以指定他们想要控制哪个路段,并从那里运行火车。这是通过电话公司的几种类型的中继器实现的,包括纵横中继器和步进式开关,这样,通过听“轧-轧-轧”的声音就可以听出动力从一块传递到另一块。
是s&p小组设计了这个绝妙的控制模式,也正是隐藏在s&p小组内心深处的永无休止的好奇心驱使他们在校园中寻找着动手摸摸计算机的机会。他们是“动手主义”的忠实支持者。s&p的负责人是一位名叫鲍勃·桑德斯的高年级师兄,他长着一张圆胖、红润的脸,笑声极具感染力,是一个电子学方面的天才。当他还是芝加哥的一名孩子的时候,就在中学的一个项目中制作了一台高频变压器,这是一个6英尺高的特斯拉线圈,这种线圈是19世纪由一位工程师发明的,能够发出强烈的电波。桑德斯说他的线圈能够使好几个街区的电视收不到信号。另一个被吸引加入s&p小组的是阿伦·考托克,他来自新译西州,五短身材,下巴很小,戴着一副厚厚的眼镜,与萨姆森在同一个班。考托克的家人至今还能够回想起他在3岁的时候,用一把螺丝刀研究墙上的插座,结果把它拆了下来,导致火花四溅。他在6岁的时候,就能够安装电灯和为灯接线了。上高中时,他有一次参观了附近的哈登菲尔德的mobil研究实验室,第一次看到了计算机,那次愉快的经历使他决定进入mit。在大学一年级,他就赢得了tmrc最有能力的s&p人员的殊荣。
s&p小组的人会在周六的时候去萨莫维尔的埃里哈弗伦旧货市场淘一些零部件,他们还会连续几小时坐在小小的转椅里(他们把自己的转椅叫做“睡觉的地方”),研究交换机系统中的关键位置,他们会通宵达旦地工作,在没有任何授权的情况下把tmrc的电话连接到东校区。技术就是他们的一方乐土。
小组的核心成员会连续几小时待在俱乐部里,不断改进他们的系统,讨论下一步能做什么。他们还发明了自己的一套外人不怎么懂的行话,他们总是穿着短袖的格子衬衫,兜里插着铅笔,下身则穿着斜纹棉布裤子,而且总是随身带着一瓶可口可乐。(tmrc花了165美元买了一台自己的可乐售卖机,并以5美分一瓶的价格出售,3个月就收回了成本。为了促销,桑德斯为购买可乐的顾客制造了一台自动换瓶机,并且一直用了十多年。)他们自己发明的术语是这样的sup1/sup:当设备中有一个零件不能工作了,他们就说它"losing";当一个零件坏掉了,他们就说它"munged"(masheduntilnogood);房间角落里的两张桌子也不叫办公台,而叫做"orifice";坚持上课的人叫做"tool";垃圾叫做"cruft";如果一个正在进行的项目或正在构建的产品不仅仅是为了实现某个建设性目标,而且只要是参与进来就会有莫大的乐趣,那么这个项目就叫做一个"hack"。
"hack"一词大概很早就由mit的学生提出了,他们一直用这个词来形容本校学生发明的一些精心策划的恶作剧,例如在校园里最高的那座楼的屋顶上插满反光的金属薄片。但tmrc的人在使用这个词的时候却包含着很大的尊敬。虽然可能有人把一个巧妙的中继器连接叫做"merehack",但大家都知道,一项技艺要想称得起"hack",它必须有创新、有风格、有技术含量。虽然有人可能会自谦地说他正在"hackingawayatthesystem"(就像挥斧砍圆木),但他的成就可能会被认为是相当了不起的。
s&p小组中效率最高的人非常骄傲地称他们自己是"hacker"(黑客)。虽然他们仅仅拥有20号楼中的一个俱乐部房间,虽然他们的活动室仅限于"toolroom"(他们的很多研究和技术讨论会都是在这间屋子里举行的),但他们怀着冰岛传说般的英雄态度无私地奉献着自己。彼得·萨姆森就是这样看待他自己和他的朋友们的,在俱乐部的新闻通讯里,他在一首充满桑德堡sup/sup风格的诗里这样写道sup2/sup:
switchthrowerfortheworld,
fuzetester,makerofroutes,
playerwiththerailroadsandthesystem'sadvancechopper;
grungy,hairy,sprawling,
machineofthepoint-functionline-o-lite:
theytellmeyouarewickedandibelievethem;forihaveseenyourpaintedlightbulbsunderthe
luciteluringthesystemcoolies...
underthetower,dustallovertheplace,hackingwithbifurcatedsprings
hackingevenasanignorantfreshmanactswhohasneverlostoccupancyandhasdroppedout
hackingthem-boards,forunderitslocksaretheswitches,andunderitscontroltheadvancearound
thelayout,
hacking!
hackingthegrungy,hairy,sprawlinghacksofyouth;uncabled,fryingdiodes,proudtobe
switchthrower,fuze-tester,makerofroutes,playerwithrailroads,andadvancechoppertothe
system.
(诗歌大意:我们是聪明的投球手,我们是引信测试员,我们是开路先锋,我们研究的是铁路和系统中先进的断路器。我们研究的系统非常复杂,我们的机器是衡量计算能力的标志。趁你刚刚入学,趁你还是俱乐部的一员,趁你还没有退学,尽情地施展吧!)
只要有可能,萨姆森和其他人就会带着他们的插线板偷偷溜进eam机房,尝试着用机器来跟踪隐藏在地下的交换机。还有一件同样重要的事,那就是他们看到了机电式计数器的功能,并把它发挥到了极致。
1959年春天,mit开设了一门新课程。这是大一新生可以参加的第一门计算机编程课程。授课老师是一个非常严肃的人,一头爆炸式的头发,胡子也是乱蓬蓬的,他就是约翰·麦卡锡。麦卡锡本人是一位数学大师,也是一位典型的心不在焉型教授。校园里有不少这方面的传言,说他常常在别人向他提问后几小时、有时甚至是几天才会突然给你解答。如果他在走廊上碰到你,不跟你打招呼便用机械而准确的措辞开始滔滔不绝,就好像你们之间的交谈刚刚停顿了不到1秒而不是一个星期。不过他迟来的解答通常都能切中要害,精彩绝伦。
麦卡锡是少数几个以全新的方式使用计算机进行科学调查的人之一。他将自己的研究领域命名为“人工智能”(artificalintelligence,ai)。这一名字中似乎透露出麦卡锡本人的一种略显傲慢的味道,这毫无疑问是其研究领域驳杂并且在研究过程中与大家观点相差甚远的根源。其实,他认为计算机可能非常聪明。即使在mit这个散发出浓郁科学气息的地方,绝大多数人还是认为他的想法过于荒谬:他们认为计算机虽然在处理海量数字运算和导弹防御系统(mit最大的计算机——whirlwind便是专为sage早期预警系统而建造的)方面功不可没(即使它多少有些昂贵),但他们对那种认为“计算机本身也是科学研究的一个领域”的观点嗤之以鼻。在20世纪50年代末,计算机科学还没有正式成为mit的一个系,麦卡锡和其他研究计算机科学的同事都隶属于电气工程系,只有这里才开设这样一门课程(课程编号是641),就在1959年的春天,考托克、萨姆森和另外几名tmrc的成员都选修了这门课程。
麦卡锡在ibm704(即那台巨型计算机)上主持着一个庞大的项目,他们想赋予这台计算机下国际象棋的非凡本领。在乐于对处在萌芽阶段的人工智能领域品头论足的批评家看来,这个项目只不过是说明约翰·麦卡锡等人盲目乐观的一个典型示例而已。但麦卡锡本人却对计算机能够做些什么有着自己的见解,让计算机下象棋只不过是个开头。
吸引考托克、萨姆森以及其他人的不是计算机的发展前景,而是眼前的那些有趣的东西。他们想学习怎样才能让这些机器运转起来。尽管麦卡锡在讲授编号为641的课程时屡屡谈到的新出现的lisp编程语言确实十分有趣,但更吸引他们的还是编写程序本身,还有当你从“牧师”那里取回机器自己打印出来的程序,花上好几个小时看看到底哪里出了问题或怎样编程效率才能更高时,你所体会到的那种美妙感受。tmrc的黑客们当时正在想办法进一步利用ibm704计算机做些什么(不久,该计算机便升级为更先进的709型)。考托克等人想方设法找到了不少上机时间,他们每每在凌晨时到计算中心泡上几个小时,和“牧师们”也渐渐熟悉起来,最后,他们终于得到恩准,可以按下这台计算机上的几个按钮,观看计算机运行时闪烁的灯光。
mit某些可以接触到ibm704的资深人士或在“牧师圈”有熟人的人费了九牛二虎之力才弄明白ibm计算机的几个不传之秘。让人觉得不可思议的是,其中几名程序员(也是麦卡锡手下的研究生)甚至写了一个利用那一排点点灯光的程序:该程序控制灯光的明暗变化,看上去好像一只小球从右侧向左侧滚动;假如操作员在合适的时机拨动开关,灯光的运动方向便会反转——这绝对就是一只计算机乒乓球!毫无疑问,这就是你要拿来在同伴面前炫耀的那种东西,而你的同伴一定会看一看你在程序中是如何做到这一点的。
要想在编程方面出类拔萃,某些人可能会想方设法用更少的指令完成同样的任务——这样的努力确实很有必要,因为当时计算机的内存非常小,不可能同时装入很多条指令。约翰·麦卡锡就曾经见过他那些使用ibm704计算机的研究生打算改进自己的程序以便将指令条数减到最少,并将程序压缩,这样只需把较少的卡片输送到读卡机里面就行了。这些人往往为了能够省下一条或两条指令而废寝忘食。麦卡锡常常将这些学生比做滑雪爱好者。他们从“将代码效率发挥到极致”的精神中得到的快感就像狂热的滑雪爱好者从山坡上飞驰而下时体会到的那种感觉。因此,在不影响输出结果的情况下使用尽量少的代码进行计算机编程,便被称为"programbumming"。你会时不时地听到有人喃喃自语:“也许我还可以再少用几条指令,这样我只需三张而不是四张八进制修正卡就够用了。”
1959年,麦卡锡的兴趣从象棋转移到一种新的与计算机交互的方式上,这种全新的语言就是"lisp"语言。阿伦·考托克和他的朋友们迫不及待地接手原来的象棋项目。他们在ibm的批处理计算机上,开始了训练704型、后来的709型甚至更往后的7090型下象棋的漫漫征程。最后,考托克的小组成为整个mit计算机中心计算机用时最大的一群用户。