Frederick Brooks: 计算机科学家的使命是制造工具 II, 翻译连载第1部分

Frederick Brooks: 计算机科学家的使命是制造工具 II, 翻译连载第1部分The Computer Scientist as Toolsmith II翻译 杨贵福[杨注:Brooks先生著有《人月神话》和《设计原本》,领导过IBM OS/360系统的
设计。只是为Brooks先生的睿智所倾倒,我不自量力地把这篇演说翻译为中文。
绝非谦虚,很多地方我也没有读懂,更遑论先生文笔精彩而又幽默诙谐、随手用
典。希望看到翻译有误的同学,回贴也好,开骂也好,能够让读到本文的同学们
不致被我误导。]翻译的第1部分Fred Brooks是ACM Allen Newell奖的首位获得者。ACM Allen Newell奖每年度授
予致力沟通计算机科学与其他学科的个人。Brooks的获奖原因是他在计算机科学
与工程学科内的广泛研究,及他对生物化学的可视化方法的跨学科贡献。在这
里,我们发表他在SIGGRAPH 94会议获奖时的演讲。Frederick Brooks: 计算机科学家是工具制造者 II接受以Allen Newell冠名的奖项是一项殊荣。Allen是"计算机之父"之一。他作为
一位前瞻者和引路人,在把人工智能发展为一个学科分支中具有重要地位,他清
晰地阐明了人工智能的远景。一个人的品性比他的专业工作更加重要,因此,Allen的谦虚、高贵、无私的品德
对于获奖者而言是双重的奖励。我深深地感谢评奖委员会。我不想讨论某个特别
的研究领域,而是想遵循Newell Awardr的精神,分享那些我在计算机事业中进行
了一生的谨慎思考,那些我对于这个宇宙的信念。我第一次谈到本次演讲的标题和一些公开过的小节,是在1977年一次演讲上。让
我重申一下那些要点,既然你们中很多人那时候刚刚出生。在某段时间,计算机
图形学还是个后娘养的孩子,还有点另类。从某个角度上讲,计算机科学是致力
于解决问题的系统的学科,而在这个角度上,计算机图形学非常接近学科的核心。- 错误命名的学科当我们的学科初生的时候,按常例,在命名上有点混乱。在教堂山[杨注:估计指
北卡罗莱纳大学教堂山分校],我们遵从,我相信,遵从了Allen Newell 和
Herb Simon的命名方法,称我们的系为计算机科学系。现在,得益于过了三十
年,我可以放一个马后炮,我相信我们把名字起错了。如果我们了解原理,那么
我们就可以更好地理解工艺。那么,什么是科学?Webster词典里,科学的定义是"涉及观察事实和对事实分类的分支,尤其是通过
建立可检验的通用规律和量化公式的手段。"这非常清楚–科学是与对事实和规律
的观察有关的。一条学术专业的民间谚语说,"凡是称自己为科学的,都不是科学。
"按这一标准,物理学、化学、地质学、天文,可能都是科学;政治科学、军事科
学、社会科学,还有计算机科学,都不是科学。可能最恰当的区别是在科学与工
程学科之间。这一区别不在于参与者的活动,而在于他们的目的。高能物理学家
可能会花大部分时间建造设备;空间飞行器工程师可能要花费大部分时间研究真
空中的材料的特性。然后,科学家是为了研究而建造,工程师是为了建造而研究。我们的学科是什么?我提议,根据合理的标准,我们称之为计算机科学的这一学科,事实上不是科
学,而是人造的[杨注:synthetic]工程类学科。我们从事制造东西–这些东西
是计算机、算法、或者软件系统。与其他工程学科不同,我们多数的产品都是无形的:算法、程序、软件系统。
Heinz Zemanek恰当地定义了计算机学科,"抽象对象的工程"。甚至当我们造计算
机的时候,计算机科学家们设计的也只是抽象的特性–架构和实施方案。电子工程
师,机械工程师,致冷工程师设计那些真实的实现。与那些制造房屋、汽车、药品、服装的工程师正相反,他们是为了人类的需求和
愉悦,而我们制造的东西本身并不直接满足人们的需求,而是由他人使用这些东
西来制造出满足人们生活的东西。一句话,计算机科学家是工具制造者–即不多
也不少。这是一个光荣的称呼。如果我们正确地认识我们的角色,那么我们可以更清晰地认识到成功的标准:工
具制造者的成功在于,也只在于,工具的用户在他的帮助下成功。不管刀刃多么
亮,刀柄有多少宝石,重量掂起来多么完美,只有切割才是真正地检验一把刀的
依据。刀匠的成功,就是他的客户死于衰老。- 命名如何误导我们?如果我们的学科命令错误,会怎么样呢?显然,叫做计算机科学,有一种无害的
自豪感。名字当中隐含着什么?很多。我们自己错误的命名导致了许多不好的趋
势。首先,这暗示着我们接受这样一种地位序列,更多尊重自然科学家,而更少尊重
工程师,因此我们据此为自己谋求更高的地位。这是一种怎么的看法,因此也是
可疑的。而且,这也是一种有风险的看法;在一些自命不凡的社会"科学"的案例
中,科学这个名字恰恰是滑稽的,而且使得参与者看起来很愚蠢。更进一步的,
这一看法也并无实在用处–我们应该因技术而获得尊重,而不是头衔。其次,科学以对事实和法律的发现作为其自身合理的终级目的。科学的成果就在
于新的事实、新的法律,正是这些值得发表。如果我们把自己同科学家混淆,我
们就会把发明(并发表)无穷无尽不同的计算机、算法、语言作为最终目的。但
是在设计工作中,与科学正相反,创新并非成果。而如果我们把我们的成果视为
工具的话,那么,我们就会以它们的实用性和代价,而不是新颖,来检验它们。再次,我们倾向于忘记用户和他们真正的问题,只顾爬进我们的象牙塔,剖析从
那些问题中抽象出来的东西,这些抽象对我们来说更易于驾驭,而可能把真正的
问题的本质部分抛在脑后。我们用越来越深奥的术语交谈和写作,直到连本学科的人也看不懂我们的期刊,
出版费用一再提高,而且由作者付版面费,而不是由读者花钱订阅。在经济上,
我们的写作就跟垃圾一样,生产垃圾的人要付钱,收集垃圾的人收钱。这一该死的趋势已经诅咒了美国的数学界,它的阴影正悬在计算机科学的头上。
我们正向一种教师的职业病屈服,2000年前耶稣基督对它做过如下诊断:"你们
互相受荣耀[约翰福音 5:44]"[杨注:圣经原文的全句是,"你们互相受荣耀,却
不求从独一之神来的荣耀,怎能信我呢?"本文中此句原意是,你们渴望彼此的赞
美。]最后,当我们对数学和抽象赞誉更多,对我们学科中的"科学"的部分赞誉更多,
而实践性的部分赞誉较少时,我们正错误地把那些年轻的杰出的思想从富于挑战
精神的躯体中引领移走,还有那些问题,那些问题正是我们独特的领域,我们正
错失本应给予这些问题有力攻击的时机。

Leave a Reply