程序人生 陈剑 2000年 第18期 #1 程序员之死   4月14日,年仅37岁的菲利普·卡兹(Philip Katz)被人发现倒毙在美国威斯康星州密尔沃基的一家汽车旅馆里,据说死因是慢性酒精中毒引起的并发症。被人发现时,卡兹的手中仍握着一个烈性酒的酒瓶,在同一个房间里还发现了另外5个空酒瓶。这个噩耗很快就通过Internet传遍了世界,很多认识和了解卡兹的人们以不同的方式对这个不幸的消息发表评论,寄托哀思。你一定会好奇地问,这个菲利普·卡兹究竟是何方神圣?   说起菲利普·卡兹这个名字,很多人可能都茫然不知;但是相信一提到电脑里、Internet上那比比皆是的ZIP压缩文档,不知道的人就很少了。菲利普·卡兹正是ZIP这个大名鼎鼎的压缩文档格式的发明人,他开发的ZIP压缩软件PKZip在DOS时代已风行世界,成为人们使用最频繁的工具软件之一。今天,人们从Internet下载的文件几乎百分之百是用卡兹发明的ZIP压缩算法压缩过的。卡兹的这个发明和贡献,在使电脑之间交换信息的方式变得更加方便的同时,也大大降低了成本。特别是在今天这个Internet大行其道而通讯速度和带宽又很难令人满意的情况下,ZIP压缩软件得到世界各地的电脑爱好者的欢迎和喜爱就是极其自然的事情。看看身边有多少人在使用PKZip和Winzip,你就能真切地体会到菲利普·卡兹对于我们今天使用计算机的方式带来的巨大影响。 #1 压缩软件的争斗   现在回忆起来,ZIP压缩文档标准和PKZip压缩软件的问世颇有几分戏剧性的传奇色彩。   时光要回溯到1988年,那时候的Internet还处在蒙昧的“原始时代”的后期,当时网上的信息远远没有今天丰富,只是极少数大学、研究机构和美国军方才能够享用的“特权”,一般电脑爱好者很难有机会接触。那个时代,风靡北美大地的是通过电话线接入的老式“电子公告牌”(BBS)系统。热衷于电脑的“发烧友”们就通过这些现在几乎已经绝迹的方式来交换信息、交流思想和共享软件。由于电话线的数据通讯带宽很低、干扰大、稳定性很差,再加上当时流行的调制解调器(Modem)的速率也只有14.4Kbps,通过BBS传输体积较大的软件一直是让人头疼的难题。正是基于这种原因,文档压缩技术就变得极为有用。压缩后的文档一般只有原来体积的几分之一,可以大大减少传输的时间,也提高了可靠性。   当时流行的文档压缩技术有好几种,比较流行的一种是新泽西州的SEA((Systems Enhanced Associates)公司开发的ARC压缩技术,压缩生成的文档的后缀是.ARC。ARC能很好地工作,但是你必须花钱去向SEA公司购买。1988年的时候,20岁出头的菲利普·卡兹和很多同时代的年轻人一样,穿梭于BBS的自由空间,沉迷于狂热的编程体验里。由于深受断线的困扰,经常出没于BBS的卡兹索性自己开发了一个与SEA的ARC完全兼容的共享压缩软件,取名PKARC。PKARC推出以后,很快就在BBS上广为流传,深受电脑爱好者们的喜爱。它和SEA ARC一样工作得很不错,最要命的是,由于是以共享软件形式发布,人们可以随意地使用,如果觉得满意的话,才给作者付上很小的一笔注册费用。有了近乎免费的PKARC,人们当然不会再为SEA的ARC付出不菲的代价。直接的后果是,很多人都转向了PKARC——这个菲利普·卡兹的“业余作品”,SEA的ARC则销量巨减。这无异于放倒了SEA的“摇钱树”。恼羞成怒的SEA把卡兹告上了法庭,声称ARC压缩标准是它的专利,要求法庭禁止卡兹继续传播与其竞争的PKARC。虽然大多数的电脑爱好者都站在卡兹这边,但法庭最终还是作出了不利于卡兹的判决。这个结果对卡兹是一个不小的打击,他被迫放弃了PKARC这个心爱的软件项目。最让卡兹气愤的是,他感觉自由创新的权利被人剥夺了。在朋友和同好们的鼓励之下,憋足了一口气的卡兹发誓要写出一个更好的压缩软件,堂堂正正地击败SEA,而且要让它输得心服口服。这一次,卡兹的编程天才再次展露无遗。在短短的几周以后,卡兹就拿出了后来统治整个BBS世界乃至Internet的ZIP。这个全新的PKZIP,使用卡兹发明的ZIP压缩算法,比SEA的ARC速度快了将近一倍,压缩率也有一定的提高。卡兹继承了PKARC的做法,将PKZIP免费发放,使其很快成为人见人爱的“杀手应用”(Killer Appliction)。没有任何号召,遍及美国的各大BBS的管理员们都先后自发地将原有的.Arc压缩文档转换成卡兹的.ZIP格式。经过不到半年时间,原来风光无限的SEA的ARC就几乎绝迹了!取而代之的就是免费而且性能更加出众的PKZIP。在失去众多的用户的支持以后,SEA迅速沉沦,最终销声匿迹。有人在后来对此事的评论中说道,“菲利普·卡兹无疑扮演了ARC掘墓人的角色,他为ARC的棺材钉上了最后一颗钉子!”   有关ZIP打败强大的ARC和SEA的事迹成为了电脑爱好者们津津乐道的传奇故事,疾恶如仇而又身手不凡的菲利普·卡兹也成为那些热衷于编写非凡程序的青年人的偶像。此后,卡兹一直继续着对PKZIP的开发和维护工作。PKZIP及其“克隆”作品Winzip成为Internet历史上最有名的共享软件之一,ZIP压缩格式也成为压缩文档的事实标准,建立起一个统治Internet的“ZIP王朝”。菲利普·卡兹为世界贡献了一个伟大的共享软件,而他自己却几乎没有从中获得任何好处! #1 意外的结局   菲利普·卡兹的突然去世,对于他本人,对于他的家庭,乃至整个计算机界都是一个令人扼腕的悲剧。人们从此失去了一个才华横溢的程序员,失去了一个传奇英雄。噩耗传出以后,在著名的IT网站ZDNET的新闻反馈页面上,许许多多的网友留言体现了人们对卡兹早逝的惋惜和他生前成就的褒扬。正像来自南美洲巴拉圭的一位系统分析员在留言中写到的那样:“菲利普·卡兹和他的.ZIP压缩格式必将得到永生。每一个.ZIP文件都将永远记住菲利普·卡兹,因为每个ZIP文件的开头都嵌有他姓名的字头缩写字母‘PK’……”   也有报道指出,菲利普·卡兹的英年早逝除了与长年编写软件的巨大压力有关外,也与其不良的个人生活方式关系密切。卡兹的直接死因,无疑是其长期酗酒恶习的悲剧结局。作为一名程序员,菲利普·卡兹获得了巨大成功。但于之形成鲜明对比的是,在个人生活方面,卡兹却一直很不顺利。郁闷的结果让卡兹觉得只能求助于酒精才能获得解脱,而这最终让他付出了生命的代价!数据压缩和程序设计占据了卡兹短暂的生命历程的绝大部分。他的杰作让世界各地的人们从“压缩”中获益匪浅,然而,不幸的是,菲利普·卡兹的生命似乎也被令他得意非凡的压缩软件压缩得那样短暂。不知道这是不是造物弄人? #1 他们是程序员   人生如戏,戏如人生。对生活在无比精彩的计算机时代乃至互联网时代的一代又一代和菲利普·卡兹一样的天才程序员们来讲,这句话如果改成“人生如程序,程序如人生”可能会更加贴切一些。这些在常人眼中聪明绝顶、特立独行的古怪“家伙”简直就将程序看作了自己的生命,写不出好用的软件,对他们无疑是一场灾难。在很大程度上,程序已经成为他们生命中不可割舍的一个最重要的组成部分了。这些充满灵性的程序不再仅仅是玄妙无匹的0和1的排列组合体,它们根本就是呕心沥血的程序员们的人生哲学甚至整个人生的写照。菲利普·卡兹或许只是一个极端的例子而已。   在这个剧烈变革的大时代中,我们并不缺乏伟大的程序员。他们中的绝大部分睿智、热情、乐观、无私,由于他们的天才与杰作,我们的生活和工作变得从未有过的精彩、丰富、刺激、舒适。被誉为“自由之神”的自由软件阵营的精神领袖理查德·斯托曼(Richard Stallman)极力倡导的GNU计划,吹响了计算机软件进军“共产主义社会”的号角;永远拥有一张“娃娃脸”的比尔·盖茨经过20多年的奋斗,成了不可企及的“微软帝王”,每个人的桌上摆上一台PC的梦想很快就将成为现实;发明免费操作系统Linux的莱纳斯·托沃兹(Linus Torvalds)让人们看到了打破微软霸权的希望曙光;被美誉为Internet上的“孤独骑士”的拉里·沃(Larry Wall)因为偷懒而发明的Perl语言,成为目前Internet上使用最广的编程语言……这些出色的程序员的故事,写下来都是一段让人不忍释卷的传奇。然而,使我们这个对信息的依赖日甚一日的世界良好运转的是更多默默无闻地分布在世界各地的辛勤的程序员们。没有这些忘我工作的人们,数字化社会就只能永远是美好而遥远的幻梦!有人将编程看成是一种艺术而并非技术,这在一定程度上不无道理。那是一种艺术家一般的灵感和激情的产物,美妙的程序是要用心、用血去书写的。现在虽然时时听到身边的程序员悲叹“我们吃的可是时光短暂的青春饭”,但真正因此“金盆洗手”而罢手不干的还是少之又少。挑战困难、勇于创新已经成为融入了每一个真正的程序员血液的特质,成为他们生命中不可分割的部分。他们也因为这些而赢得人们的尊敬。   在可敬、可爱有时甚至是可恨的程序员们的身上或许还存在这样、那样的问题,或许还远远谈不上完美,但是我们不能对他们苛求太多。毕竟,他们和我们一样,也是普普通通有血有肉的人。我们为他们创造的杰作和奇迹欢呼,为他们面对的失败和失意惋惜,为他们遭遇的不幸和悲惨流泪,就因为他们是程序员!在这里,我们没有任何夸耀或是贬低的潜台词,因为那是世界上一部分真实人群的真实的生存状态和生活方式,我们很难给其贴上对与错或是好与坏的“标签”,况且,我们也许根本就没有这样的权力。是非功过的评说,最有说服力的是时间……