
人类最优秀软件排行榜.doc
17页人类最优秀软件排行榜作者:佚名 文章来源:本站原创 点击数: 1358 更新时间:2007-2-1 伟大软件必须体现出突破性价值、具备很强的技术优势;研发它是前人未尝试过的艰难任务;而且最终它必须在现实世界得到广泛运用 如果问截至目前哪款软件最棒,大多数技术专家会很快给出答案但若是花些时间仔细研究那些催生出真正杰出软件的因素,答案就不那么显而易见了我所知道的一个极其重要的程序体甚至不是软件二战期间,在英国人研制出破译德军电报密码的“巨人机 ”(Colossus)之前,盟军得用 6 个小时破解密码,而仔细分析情报、得出准确结论再将信息转给军事指挥部得耗费一天或更多时间在巨人机的帮助下,盟军及时掌握了德军在英吉利海峡沿岸的活动情况,这一情报给了德怀特艾森豪威尔(Dwight Eisenhower)将军取胜的信心,后者踌躇满志地发动了诺曼底登陆战役巨人机建于 1944 年,它能在纸质数据带上进行布尔运算这台机器每小时可“吐”出 30英里的数据带布尔算法的逻辑和这台设备融合在一起巨人机本身也许是有史以来无法被记录下来的最伟大的软件那么这一史实说明什么问题?首先,我们评价伟大软件得有统一标准:应该只在特定历史背景下评判相关软件。
伟大软件必须体现出突破性价值、具备很强的技术优势;研发它是前人未尝试过的艰难任务;而且最终它必须在现实世界得到广泛运用巨人机将旷日持久的机械运算转变为电子运算——它是现代计算机雏形—并通过提高破译加密电报码速度为军方提供有价值服务这个庞然大物为软件发展史翻开了第一页另外一款伟大程序就是国际商业机器公司(IBM)的 360 系统它诞生于 1964 年,是世界上第一款通用型电脑操作系统在弗雷德利克布鲁克斯(Frederick Brooks)描述 360 系统项目开发和管理的著作《人/月神话》[阿狄森卫斯理专业出版社,1995编者注:书名中“人/月” 是软件开发领域术语,是指一个组织于单位时间内( 一个月)开发程序所需的人力资源]中,他率先提出许多我们至今恪守的原理——简洁的软件设计优于复杂的;少数熟练程序员能比一大群熟练程序员取得更多成就等早在 360 项目启动前,布鲁克斯就清楚大型软件研发项目中存在太多容易出错的因素实际上,他是 IBM 内部 360 项目的激烈抨击者——尽管最终由他来主导 360 系统的研发工作布鲁克斯认为可能导致项目失败的潜在问题有很多我猜,这是 IBM 让他来负责这个项目的原因。
这种做法十分明智布鲁克斯领导的 360 系统研发组,创造出全球第一套可同时运行不同应用程序的电脑系统360 系统的问世,促使 IBM 推出一系列大型主机:从原先的 370 系列(370 Series)一直发展到如今的 z 系列(zSeries) 时至今日,这些主机还得落伍地和布鲁克斯的 360 系统兼容:这让我意识到伟大软件的另外一个品质:它得长久拥有独特优势,无法被轻易取代何为“伟大软件 ”? IBM360 是最棒的软件之一:没人会否认这点要是从长远的历史眼光来衡量,何谓“伟大软件”一目了然然而距离现在越近,你就越难决定哪款软件才能配得上这个称号 凭借自身洞察力,我排出了一张最伟大软件榜:时间跨度从巨人机诞生的那年到现在为了制作榜单,我咨询了软件大师詹姆士兰堡(James Rumbaugh,享誉全球的软件开发方法学大师)、美国计算机学会主席斯图尔特 费尔德曼(Stuart Feldman)、创投资本家安摩根珊勒(Gary Morgenthaler)、网站脚本软件 PHP3.0 作者济夫 古曼兹(Andi Gutmans)和我的弟弟沃利(Wally)不过这张榜单仍是我个人的榜单那些觉得榜单充满智慧闪光点、且不失启发意义的人可给我写信。
要是你觉得这份榜单有误导之嫌、令人反感或蓄意罔顾事实,请发送消息给沃利,他身高 6 英尺 3 英寸,曾是篮球明星,至今仍十分健壮我一直对阿波罗飞船(Apollo Spacecraft)的导航系统惊叹不已,该系统是麻省理工学院 (MIT)的仪器实验室编写的1969 年,这套系统令阿波罗成功飞抵月球、分离出登月舱并使之成功登陆月球表面,最终使 3 名宇航员平安返回地球当时这套系统不得不依靠飞船上内存少得可怜的“雷神 ”(Raytheon)电脑—该设备只有 8K 内存,如今连个打印机程序都使唤不了在飞船重返大气层时,万一系统失灵,根本没时间重启系统谢天谢地,当时没有用视窗(Windows)操作系统来导航在经验老道的电脑技术员看来,“阿波罗” 飞船导航系统似乎不过是例行软件如今的飞船所用导航系统要复杂得多阿波罗” 系统的精髓是基于公认逻辑的若干著名算法但对我而言,这仍然是最尖端的科技伟大软件的一个优点就是:在所有环节都可能出错的前提下仍能正常工作,这点让我们至今叹为观止对于那些因“阿波罗 ”空间导航系统设计相对简单,而认定其 “不过尔尔”者,请问:你宁愿将生活交由处理移动物体的复杂系统来打理么?例如,还记得当年负责丹佛国际机场(Denver International Airport)分拣和运输行李的 BAE 自动系统软件吧。
当机场在 1993 年正式启用时,该系统造成的遗失或错发、还有在传送带的检查口堆积的行李是如此之多,以至于有关方面被迫将机场正式启用日期推迟了 16 个月这给丹佛市带来的损失高达每天1,100 万美元而且,我们的生活已经被这样的软件掌控美国联邦航空管理局(The Federal Aviation Administration)斥资上亿美元——不是一次而是 3 次——试图建立一套有效的空中交通管制系统到目前为止,这套系统有一半的功能已经被弃用,技术成本总值 1.44 亿美元,而剩下的一半功能也定期出错和停顿要说谁才是伟大软件,我宁可坚持选择“阿波罗” 导航系统一款被公认成功的软件,得能胜任原先设计时就希望依靠它完成的工作这一公理当然也适用于 VisiCalc—世界上第一款电子表格软件之所以称其伟大是它因为展现出个人计算的威力,赋予大大小小的企业分析和处理海量数据的能力但尽管它体现出一种突破性概念,VisiCalc 本身却无法被定义为伟大软件它错误百出而且界面很不友好,无法胜任用户希望它能完成的许多工作电子表格软件领域的巨大突破并非 VisiCalc,甚至不是 Lotus 1-2-3[莲花公司(Lotus)1983 年所推出的电子表格软件] ,而是微软公司(Microsoft,下称微软)的 Excel,它不但扩展了电子表格软件的能力,并且添加了商务人士能利用的形形色色的计算公式。
虽然大众对微软声称它的使命就是创造伟大软件这点尚有争议,但 Excel 无疑是一款伟大软件几乎每个人都领教过它的威力寻找智能按理说,人工智能领域应出现众多伟大软件曾几何时,科学家认为人工智能应该是一种类人的智能机器:它能跟人类顶嘴;传授我们曾无法理解的知识;并能将出色的推理能力和海量数据的处理指令结合在一起那么人工智能领域里的软件究竟怎样呢?“工”则“工”矣,“智”尚不足源自人工智能研究的人工神经元网络(Neural Nets) ,创造出在全世界范围内广为使用的指纹自动识别系统它具备良好的“模式匹配” 特征,但是它是真正的智能系统么?看来未必如此科学家运用人工智能推出的第一种具有真正突破性意义的产品是推理引擎(Inference Engine),该产品拥有一套囊括各种条件和规则的知识库像推理引擎这样的电脑能将一种特定条件——如病人发烧到摄氏 40 度——和特定条件(比方说细菌感染会导致高烧) 匹配在一起来完成推理推理机中的佼佼者是用于医疗诊断的 MYCIN(Mycin Medical Diagnosis)专家系统,基于病人感染细菌的临床症状,它能准确识别病情的概率达 65%,比普通内科医师还要称职。
但它从来没有走出实验室进入实用领域因为没人知道如果出现误诊该承担法律责任的主体是什么我最喜欢的人工智能体是 IBM 的“深蓝”(Deep Blue)电脑,它曾在一场 6 局比赛中击败国际象棋冠军加里 卡斯帕罗夫(Garry Kasparov)卡斯帕罗夫指控深蓝之所以取胜是因为幕后有人类在帮忙他说的没错在每局棋赛间隙 IBM 程序员拼命改写“深蓝” 程序以应对卡斯帕罗夫的棋路这使“深蓝” 无缘跻身我的最伟大软件榜 IBM 的这种行为并未违反规则,但也并不公平:在这种情况下卡斯帕罗夫该如何跟深蓝比拼?难道他也调整自己的大脑结构?人工智能软件能让人印象深刻,但我举的所有实例中却没有哪款能跻身最伟大软件的行列有时我将浏览器形容成一名情感表达存在缺陷的哑巴终端我弟弟沃利是一个研究图书馆员,他使我相信:Mosaic 作为互联网历史上最早出现的图形界面网页浏览器(Graphical Browser),让网络不再是一小撮技术迷的玩物,而为普通人类所共享它的一个前辈 Gopher,差点成为最伟大的浏览器;除此以外,还有 Viola WWW,历史上第一款嵌有网页间后退和前进按钮的浏览软件 但 Mosaic 将地址栏、鼠标点击功能、多媒体文件展示和超链接结合在一起,使得用户可以游刃有余地运用互联网上日益丰富的信息源。
Mosaic 包含着易用的元素—工具栏位于顶端和一系列下拉式菜单—这一模式随后被网景公司(Netscape)的 Navigator 浏览器、微软的IE 和火狐浏览器 (Firefox)所仿效在你自己的 IE 浏览器上,点击菜单栏上的“帮助” ,然后点击“关于 Internet Explorer”,跳出来的对话框上就有 Mosaic 的使用版权声明Mosaic 是浏览技术的伟大突破吗?不尽然,但它的确是一款用户迫切需求、且综合多种全新技术手段的软件换言之,它是一款“既开风气亦为师” 的伟大软件那互联网本身是否也担得起这样的赞誉呢?蒂姆 李(Tim Berners-Lee)创造出一款整合超文本链接、普适的源代码定位器、以及 HTML 页面显示功能的界面,应该说,它极大地改变了我们这个世界但网络本身来源于已有的观念,这些都需要倚赖底层的 TCP/IP 网络协议和 BIND(伯克利互联网域名)域名服务器,一款非常底层的软件,它能驱动路由器正常工作当然网络本身并非伟大软件,但是它的广泛影响的确让它身价倍升用户为先继续往下看至少从一个方面而言,谷歌公司(Google,下称谷歌)就是伟大软件网络搜索让谷歌超越 Lycos、数字仪器公司(Digital Equipment) 的 AltaVista 和其他搜索引擎。
然而谷歌在筛选搜索结果时采用了网页排序(Page-Ranking)的算法,将搜索引擎获取的数以千计的页面进行标记,从而按它们被链接的次数来分等级衡量一篇学术论文的价值,得看它被其他论文引用的次数谷歌将这一传统借用到了互联网上摩根珊勒风险投资公司(Morgenthaler Ventures)的摩根珊勒表示它同时赋予上百万搜索新手一种很有价值的信息构成工具它就是伟大软件我曾认为太阳计算机系统公司(Sun)的 Java 语言是 C 语言大家族衍生出来的一种语言,它完善了 C 语言已有的传统然而通过反思,现在我知道自己错了Java 在客户端电脑设置虚拟机,从而实现了代码通过网络流传,并且不受硬件环境的限制Java 率先采用起到过渡作用的字节码(Byte Code) ,它是一种经过预编译的源代码,当它进入客户端电脑的那一刻就能被编译为机器码Java 的可移植性和功能性都很强Java 语言严格限制下载到“沙箱”(Sandbox)里的代码——譬如说,客户端电脑的硬盘被设置成严禁读写这种“ 沙箱”让用户没有安全风险方面的后顾之忧,当用户使用微软未经限制的 Active X 代码时常遭遇此类风险由于具备这些基于网络的特性,在互联网处在襁褓。












