黑客-计算机革命的英雄

​ 程序员的圈子里总流传着一些大神写代码以一当十,连续奋战几个日夜不休息的传说,这样的故事听多了就总想了解程序员里最厉害的一批人是什么样的,黑客,可能是最符合这个特征的一个群体,他们对计算机无比热爱,在某些领域的编程能力超强。那么到底黑客是什么样的一群人,由他们倡导的黑客文化又是什么样的一种文化,这本书《黑客-计算机革命的英雄》或多或少给出了一些解释。

​ 书籍的作者 Steven Levy是《连线》杂志特约撰稿人和资深作者,曾是《新闻周刊》(Newsweek)的首席技术作者和高级编辑。本书写于20世纪80年代,当时正是PC崛起、计算机解放浪潮的初期,主要来源于1982年和1983年的100多次个人访谈和作者参考的很多书面资料。以叙事的形式讲述了20世纪50年代到80年代期间,计算机和黑客文化发展史上一些有意义的任务和事件。这本书不是一本技术书,没有讨论技术细节的篇章,而是追溯了黑客传统和历史,讲述黑客的人生和故事,归纳黑客创造的技术奇迹,总结黑客文化和伦理。主观的讲,作者的叙事有些时候写的没那么生动有趣,甚至有些地方略显无聊,但本书第一次将黑客的价值观总结为六条“黑客伦理”,直到今天这几条伦理仍为这方面的经典论述。

​ 有些人在使用 “黑客” 一词时略带贬义,要么暗指有些书呆气无法融入社会的人,要么暗指那些编写恶意的、“不标准的” 计算机代码的 “非专业” 程序员。但在朴实无华的外表下,他们是真正的冒险家、梦想者、用于承担风险的人和艺术家,他们清楚地认识到为什么计算机是一种真正的革命性工具。作者Steven Levy深受这样一群人感染,他们是一些把计算机视为世界上最重要事情的程序员和设计师,这群人对黑客思想的追求是永无止境的。他们把 “黑客” 一词视为无上的荣耀,而不是贬损。他们奉行与计算机本身雅致的逻辑相一致的理念—共享、开放、分权,以及不惜一切代价亲自动手改进机器并改善整个世界。具有革命性意义的黑客道德并没有经过太多的讨论和辩论,大家心有灵犀地达成了一致。既没有发表什么宣言,也没有传教士式的说教和转化,是计算机实现了这种转化。

– 对计算机的访问(以及任何可能帮助你认识我们这个世界的事物)应该是不受限制的,任何人都有动手尝试的权利

​ 黑客们相信,通过将东西拆开,了解他们的工作原理,并根据这种理解创造新奇的甚至更有趣的东西,可以学习到关系系统(关于世界的重要知识)。他们痛恨一些试图阻止他们这么做的人、物理障碍或者法律。

– 所有的信息都应该可以自由获取

​ 如果你不能访问用来完善系统的信息,那么怎么能够修复他们呢?信息的自由交流,特别是以计算机程序形式存在的信息,能够提高整体的创造力。这避免了重复做无用功这一可怕且浪费时间的陋习:程序的最佳版本应该对所有人开放,每个人都可以自由地专研代码并进行完善,而不是每个人编写同一个程序的自己的版本,如此以来,这个世界将充满功能完善的程序,不但具有最少的错误,而且可调至完美状态。

– 不迷信权威——促进分权

​ 要促进这种信息的自由交流,最好的方法是拥有一个开放式系统,不要在黑客和信息或设备之间设置任何界限,因为这些都是他们追求知识、改进和联机所需要的东西。

– 评判黑客的标准应该是他们的技术,而不是那些没有实际用途的指标,比如学位、年龄、种族或职位

​ 黑客不太会关注他人表面上显露的品质,而会更多地关心他们的真实技术水平,更看重他们编写优秀程序的潜力,以及是否能够为系统提出新的功能。

– 你可以在计算机上创造出艺术与美

​ 程序的代码有自己固有的美感。由于早期的计算机内存空间有限,黑客们非常欣赏通过很少的指令实现复杂任务的创新技术。程序越短,留给其他程序的空间就越多,程序也会运行的越快。在某些时候,如果不需要过快的速度或很多的空间,也没有考虑到程序的艺术与美,那么你会编写一个看起来不够优雅的程序,这个程序只是用“蛮力”解决当前的问题。有些程序用最艺术的方式将行数压缩到最少,创作者的同事们看到这种程序时会佩服得五体投地。

​ 有时,程序压缩会成为一种带有竞争意味的事情,好像是用来证明自己在控制系统方面能力的比赛,看谁能挖掘出删去一两条指令的美妙途径,或者更好的是,重新思考整个问题并设计出可以去掉一整块指令的新算法。实现程序缩减最为明显的方式是不按常理思考,从之前从未有人想到但仔细想来却完全合理的非传统角度来处理问题。那些能够应用这种奇妙技术的人,身体里一定流淌着艺术创作的血液,这种技术像魔术般神奇而充满想象,于是人们可以摆脱那些陈腐观点的束缚,创造出完全超乎人们想象的新算法。

– 计算机技术可以让你的生活更美好

​ 这是黑客的信念,他们的行为微妙地体现出这一信念。黑客很少试图将“计算机基友神奇力量”这种观点强加给外行人。但是,这个信念主导了黑客的日常行为。

​ 计算机显然改变了他们的生活,丰富了他们的生活,并且成为他们生活的中心,令他们的生活充满冒险,计算机让他们主宰了自己的一部分命运。

​ 全书分为4部分,分别介绍20世纪50年代和60年代的第一批黑客,70年代的硬件黑客,80年代的游戏黑客以及“最后一名黑客”。

黑客的起源

​ 第一代黑客发源于麻省理工学院(MIT)的技术模型铁路俱乐部(Tech Model Railroad Club, TMRC),一个制作铁路模型的学生社团,社团里几名喜欢亲自动手的同学,遇见初代计算机以后就开始没日没夜的折腾起来。那时个人计算机还没有到来,只有一些科研机构或者高等学府才有的大型计算机,运行的还是分时操作系统,MIT的早期黑客们每天泡在实验室里,为了争取更多的上机时间,在实验室给导师工作,帮助其他同学调试程序,在大型机的控制台面前施展威力。

​ 为了能够长时间保持精力集中,他们夜以继日的工作,每天按照30个小时来过。这种作息时间有利于从事高强度的研究工作,因为平白无故的多出了一段不睡觉的时间用来编程。这个想法的目的是让他们的经历保持30个小时,直到精疲力竭,然后回家睡上12个小时。然而这个作息时间也有个缺点,就是他会让你的作息时间与现实世界里其他人的正常作息时间不一致,进而影响很多事情,如约会、就餐和上课。

​ 争论是TMRC里的家常便饭,有时他们会扯着嗓子相互叫喊,坚持自己的程序的编码方案。这种争吵行为并不代表他们真的固执己见,他们只是想弄清楚什么才是“正确答案”。对于黑客,“正确答案”这一术语意味着对于任何问题来说(不管是编程过程中的两难选择、硬件接口不匹配,还是软件架构的问题),总是存在着一种解决方案,这就是 “正确答案” 了,也就是最天衣无缝的算法。它是那种非常具体的、独一无二的、第一流的正确解决方案…… 它在同一时刻能够满足所有的约束条件。每一名黑客似乎都相信绝大多数问题都存在这么一种 “正确答案”。

​ 要想做出一点成就来,你需要有百折不挠的精神,假如试了几次以后就放弃了,你就永远解决不了这个问题……世界上的很多问题,只要你有其他人2倍或者3倍的毅力,就一定能解决。他们在解决问题时总是全力以赴,他们心无旁骛的工作状态是普通人难以企及的。初代黑客们相信没有任何一个系统或程序是真正完成了的,你总能让它变的再好一点。每个系统都是活生生的有机体:如果人们不再对它进行维护和完善,它就会死亡。

​ 第一代黑客沉浸在计算机的乐趣中无法自拔,共同遵循他们推崇的一套准则,在第二波黑客热潮催生下的这一批黑客,不但遵循着黑客道德,还看到了尽可能广泛地传播这种原则的需要。实现传播的自然方式就是借助计算机的力量,第二代黑客是硬件黑客,他们在加州实现的魔术将会建立在由MIT黑客们建立起来的文化基础上,并通过这篇土地传播黑客的梦想。

硬件黑客

​ 一批计算机爱好者在加州成立的家酿计算机俱乐部,在个人计算的发展史上有很大的作用,这批计算机硬件的爱好者聚集在这里无私分享,讨论问题,很多人有着一个共同的目的就是亲自设计出一台小型个人计算机。史蒂夫·沃兹尼亚克(他的朋友们总是称呼他”沃兹“),是体现家酿俱乐部的精神和增效作用最生动的例子。正是沃兹和他所设计的计算机最大限度地贯彻了黑客道德的理念,堪称家酿俱乐部留给后人的宝贵财产。高中期间,沃兹就挤出很多时间学习计算机知识,提高自己的专业技术水平,他觉得普通的设计思路不够完美,因此经常强迫自己将所有的解决方法都逐一试验后再行定夺,他一定要找到最佳方案才肯罢休,有时当你真正把方法足以验证过以后,你确实能找出更好的解决方法。25岁的沃兹”可以与任何人谈论任何技术问题“,甚至包括十多岁的少年。

​ 沃兹后来评论自己的工作:”我热爱这项工作,并且常常用最高的标准要求自己。我总觉得自己鬼点子多。设计计算机多我来说就好像做猜谜游戏,我一定要比别人少用哪怕一块芯片才行。我常常思考怎么才能完成出比别人更快、产品体积更小、设计思路更巧。我设计软件的时候,假如用6条指令完成就算及格,我会试着用5条或3条指令完成,如果我想做到极致,甚至会考虑怎样用用两条指令去实现。我总是想另辟蹊径,抄近道。假如脱离条条框框的束缚用另外一种方式思考,每个问题都会有更好的解决办法。这样的情况很多,每天我都能发现几个问题。假如是硬件问题,我会开动脑筋,想想以前用过的各种技巧是否还管用,计数器、反馈或者芯片寄存器等,以致最后连压箱底儿的法宝都用上看看管不管用,从上至下条分缕析,直至每个细节都想到。这么做以后就能构建出一种全新的数学模型。最终找到答案后的兴奋是我继续探索的动力,因为我又有了可以炫耀的资本了。我希望别人都能看到我的成果,然后惊叹,‘感谢上帝,这就是我想做的事“。

​ 对沃兹尼亚克来说,Apple计算机是他的一件杰作,不是用来赚钱的工具;是他的一件艺术品,不是他的生意。只要能攻克一个个难关、节省更多的芯片并到家酿计算机俱乐部炫耀一番,他就已经心满意足了。作为黑客,这么做是可以的,但时任Apple CEO的马库拉希望沃兹尼亚克至少也应该把时间全部投在公司的事务上。他让乔布斯转告他的合伙人,如果沃兹还希望苹果公司能够发展壮大,他必须辞去在惠普的差事,全力投入Apple II计算机的前期生产工作中来。

​ 这对沃兹尼亚克是一个十分艰难的决定。“这和那年我们在车库里组装成Apple I计算机的情况截然不同,”沃兹尼亚克后来回忆起当时的情景时如此说道。“这是一家实实在在的公司。我设计计算机是因为我喜欢设计,喜欢在众人面前炫耀一番。我的动机根本不是开一家公司挣大钱。迈克给了我3天时间考虑是否要辞去我在惠普的工作。我喜欢惠普。那是一家很不错的公司,在那里工作我没有什么顾虑,并且那里也有很多我感兴趣的工作。我不想离开惠普,所以我拒绝了迈克。

​ 当史蒂夫·乔布斯得知沃兹尼亚克的决定后,立刻打电话给沃兹尼亚克的亲戚朋友,请求他们说服沃兹尼亚克从惠普辞职,全身心为苹果公司工作。一部分人这样做了。就在有人问沃兹尼亚克“为什么不为了把Apple II计算机推广到全世界而工作呢”的时候,他真的开始重新考虑了。不过,即便他同意从惠普辞职、全力和乔布斯一起工作以后,他还是觉得自己的所作所为已经不再符合纯粹的黑客理念了。开一家公司创业和钻研计算机或从事创造性设计的工作完全是风马牛不相及的事。开公司的目的是为了赚钱。用沃兹尼亚克自己的话说就是“已经踏入了红线”。绝不见利忘义——沃兹尼亚克信任他的计算机并对他们这个小团队有能力制造和销售这款计算机充满信心——可是“我怎么也不可能把苹果公司和进行良好的计算机设计联系起来。设计Apple计算机的初衷并不是为了赚钱。而之后创立苹果公司则是为了赚钱。”

​ 为了贯彻黑客道德的宗旨,沃兹尼亚克公开了Apple计算机的所有技术细节,以利于他人在此基础上继续深入下去。设计中的每一处技巧和方法,BASIC语言解释器(这个功能是通过用电线连接一块定制电路芯片才附加进Apple计算机的)中的每一个编码构思,都在文档中详细注明并免费发布给需要的人使用。

​ 在MIT黑客的世界中,黑客道德仅仅在有限的、可以接触到计算机的的团体内盛行。而现在这个世界,计算机触手可及。硬件黑客在此新旧世界交替的过程中做出了自己的贡献。现在,人类已经生产出了数百万台计算机,每一台计算机都吸引着人们去编程、去探索,去用计算机语言编织神话、去改天换日。从组装线上制造出来的计算机就像一块块白板;新一代的黑客无法抵御在这些白板上涂写的冲动;他们会将所编写的软件呈献给一个新世界,这个世界将用完全不同于10年前的全新视角去看待计算机。

游戏黑客

​ 第二代硬件黑客将电脑从指令中解放出来,使人们更方便地访问电脑。人们可以自己购买电脑,或者使用朋友的电脑。这些电脑的功能不像政府机构的电脑那样强大,而且没有咨询团队、格林布莱特或者高斯珀,可以帮助用户消除挫败感,完成一些合适的工作,最后大获成功。但是第三代黑客并没有因为这些现实而烦恼。他们现在可以自由使用电脑。甚至在自己的卧室中也可以使用它。他们通过自己的黑客行为,可以学到很多知识,从而了解黑客行为和黑客道德的主旨。

​ 约翰·哈里斯是一名游戏开发这,他力求使自己的程序达到那种创新性。他对游戏的态度和对计算机语言的态度,或者对某种电脑的偏爱是类似的:个性特征突出,非常讨厌效率低、效果差的做事方法。在第三代黑客生活的时代,黑客道德已经大打折扣,但第三代黑客能够容忍这一现实,如果倒退回到过去,像格林布莱特和高斯珀这样的黑客将绝对无法容忍对黑客道德的妥协。一切都是金钱在作怪。编程的底线不可避免地与发行商的经济效益底线联系到一起。虽然优雅、创新和完美编码仍然受到人们的赞赏,但是,用来衡量黑客精英的一个新标准已经悄然出现,那就是销售额。早期的黑客可能根本没把销售额当回事儿,他们认为所有的软件,包括所有的信息,都应该是免费的,在他们看来,感到骄傲的应该是有多少人使用你的程序,以及你的程序给这些人留下了多么深刻的印象。但是,第三代黑客从来没有这样想,他们从一开始就把销售额看成是成功的关键。

​ 在黑客看来,程序是一个有机体,有自己的生命,独立于创作者。那些致力于改善这个机器语言有机体的高手应该受到欢迎。例如,如果用户觉得《Threshold》游戏中导弹的速度太慢,他可以仔细阅读代码,深入到系统中对它进行改善。

编后记

​ 一方面,信息应该是昂贵的,因为它非常有价值。你在正确的地方得到正确的信息,就会改变你的人生。另一方面,信息应该是免费的,因为获得信息的成本不断地降低。

真正的黑客从不度假,作者采访盖茨的时候,盖茨自己也很认同这一点。他说:“我相信必须要很大的工作强度,而且,我必须承认,在我十几岁和二十几岁的时候,我的工作强度非常大。我二十多岁的时候,每天都在工作。但是现在,到了下班时间,我就会回家吃饭。等到结婚生子以后,如果想维持家庭稳定的话,就必须减少对工作的狂热。”的确,回首往事,盖茨说,他的黑客时代来得比较早,他还是一个在湖畔小学上学的小孩时,就已经是一名黑客了。他说,“13~16岁这几年是最狂热、最重要的一段时间。”

我问他:“那么,当你去哈佛大学读书的时候,是不是你黑客时代的最高点?”

他说:“你指的是一天24小时都在编程,是吗?哦,当然了。在我17岁的时候,我的软件思想就已经成型了。

他对电脑的专注成就了他的工作和他的公司,在他的努力下,微软公司成为世界最大的软件公司,他也曾一度跃居为世界首富。他对黑客精神的信仰贯穿在他所有的工作中,也影响了他的人事决策。他说:“如果你想雇一个工程师,那就看一下他编写的代码。这就够了。如果他没有编写过大量代码,就不能雇用这个人。

​ 理查德·斯托曼称自己是最后一名黑客,1983年作者第一次采访理查德·斯托曼的时候,他就为黑客文化的衰退而唏嘘不已,他认为软件的商业化是一种犯罪。他说:“我觉得这个世界很快就会以把最后的真正黑客挤出去。

我做错什么了吗?斯托曼发起免费软件运动,与知识产权进行了不懈的斗争,也为他赢得麦克阿瑟基金会“天才”奖。他创立了自由软件基金会(Free Software Foundation),开发了GNU操作系统,这个操作系统在李纳斯·托沃兹开发出Linux以运行它以后得到了广泛的应用。很多设备都安装了这两个操作系统。更重要的是,斯托曼提供了引导开源运动的知识框架,对现代软件和Internet的发展产生了重大影响。如果在软件发展初期就有圣人斯托曼的引导,那么软件早蓬勃发展了。

​ 扎克伯格的做事风格可能或多或少受黑客道德的影响,他说:“我们一开始就不空谈大理论,而是连续几周的时间都攻关这个项目。我们的目标就是快速开发出产品。每6~8周的时间,Facebook就举行一次”黑客马拉松(hackathons),人们用一晚上的时间设计并完成一个项目。我们的想法是只需要一个晚上就可以开发出非常棒的产品,这也是Facebook公司的一个宗旨。我们坚持的理念就是快速发展,突破障碍,做出承诺后就努力去实现。这绝对也是我的重要个性。”