在2014年中科院计算所学位授予典礼上的讲话


dbu@ict.ac.cn


1 本文部分观点和内容引自《奇思妙想:15 位计算机天才及其重大发现》(by D. Shaha, and C. Lazere)、《ACM 图灵奖:计算机发展史的缩影》(by 吴鹤龄,崔林)、《创新求实录》(by 李国杰)、《电脑启示录》(by 徐志伟),以及《费曼物理学讲义》(by R. Feynman)。向胡适1932年毕业讲话的致敬之作。

http://bioinfo.ict.ac.cn/~dbu/Essay/A_Speech_at_ICT_July_2014.pdf
尊敬的各位同学、尊敬的各位老师、尊敬的各位家长,早上好!

今天我们举行隆重的典礼,以庄重的仪式,向诸位同学所度过的时光表达我们的尊重。

诸位在计算所度过了或三五年、或六七年的时光,这些时光可以说是和大师朝夕相处的日子。

我们有什么样的理由这样说呢?请看会场的入口处,刚刚看着我们走入会场的,是人工智能大师Marvin Minsky,他告诉我们“大脑无非是肉做的机器”;和他并列的Wilkes却深表不同,说“动物和机器是用完全不同的材料、按照完全不同的原理构成的”;Richard Hamming夹在两人中间,说“计算的目的不在于数据,而是要洞察事物”;在会场出口处,你会看到算法大师E. Dijkstra,他设计的最短路径算法,时刻运行在我们的GPS导航仪上;在五层,每天看着智能实验室的同学们进进出出的是逻辑大师Amil Pnueli;在十层,每天鼓舞着曙光超级计算机团队的是体系结构大师Corbato。在座的诸位女士朋友,不妨走上11层,在那里你会看到2008年图灵奖得主Babara女士,她会鼓励各位女同胞说“谁说女子不如男?”

或许有同学会觉得这些大师都是传说,那可不是这样---早在1988年,李国杰老师就邀请专家系统的开创者Feigenbaum访问智能中心;算法大师Hopcroft和姚期智先生也都曾先后来访,和大家做近距离的接触;现在姚先生的弟子孙晓明、张家琳也来到了计算所执教、研究。再退一步讲,即便诸位对这些大师们因每日熟视而无睹,那也无妨:诸位写毕业论文所用的Latex,即是高德纳和Lamport的杰作。

在和大师们神交多年之后,我们不禁要问:是怎样的个性和头脑造就了这些大师呢?仔细检视大师们的事迹之后,我们只能遗憾地告诉大家:大师们的不同点远多于相同点,好像并没有一定之规。

比如:大师们都是天才少年吗?No,不是这样子的。有些的确是天才少年,比如Levin,十多岁就获得了基辅市物理奥林匹克竞赛冠军;可是Backus高中时还有功课不及格,被父母送到补习班,他却跑去划船---他是60岁以后才开始函数式语言研究的。

再如:大师们都是搞理论的学院派吗?那也不是这样---Brooks是在IBM公司设计出360系统;而Smith是在一间小公司提出那个“热土豆路由”算法的。 既然大师们如此不同,那他们成功的秘诀何在呢?仔细想来,他们成功的秘诀或许有如下四点:

秘诀一:他们都有强烈的好奇心。 以Daniel Hillis为例,他童年时就对生物极感兴趣,曾经在试管里培育了一颗跳动的青蛙心脏,后来又对神经解剖学入了迷,这些经历很自然地启发他设计连接机器以及人工生命;另一位大师Alan Kay也是对生物极其好奇的人物,他认为应该把程序设计地“像活的生物一样”,由独立自主的细胞构成,细胞与细胞之间可以传递消息,并对消息做出反应。他把这样的细胞叫做“对象”;而这种设计方法呢,就叫做“面向对象的程序设计”。

第二点,成功的秘诀在于选择做什么,而不是怎么做。 Priceton的李凯教授曾经深有体会地对李国杰老师讲:计算机科学最重要的是find problem,而不是find solutions。只要你能找到正确的方向,找到正确的问题,问题的解决往往就在眼前。这是计算机科学和数学截然不同的地方---费马大定理从提出猜想到完成证明,足足用了358年的时间。

那到哪里去找问题呢?Robert Tarjan告诫我们说:应该多从实际应用中发现问题,而不是钻理论的牛角尖。事实也正是如此:比如Brooks多从化学家、医生、建筑师那里寻找实际问题,他把这样的问题称为“有生命力的问题”。

自然,准确判断问题的重要性是一件极难的事情,即使是大师也有看走眼的时候:就拿Steve Cook来说,他找到了第一个NP完全问题,可后来找到的NP完全问题数量是如此之多,大大出乎了他的意料之外。

秘诀之三,在找到问题之后呢,你还必须是解决问题的恰当人选。 高德纳这样说:“我们常常说需求是发明之母,这句话并不确切。一个人还得拥有该领域的背景知识......我解决的那些问题,都是因为我拥有独特的领域知识---这样解决这个问题就成了我的责任、我的使命”。

最后一个秘诀:重大的成就要甘于冒险,甚至于勇于面对嘲笑。 比如Marvin Minsky的第一篇人工智能文章被人嘲笑说“半生不熟”;Backus的简化编程的建议受到了von Neumann的强烈反对------ von Neumann认为使用机器语言编程已经足够简单,没有再简化的必要。

所以我们或许可以这样讲:假如诸位始终保有强烈的好奇心,有发现问题的洞察力,有解决问题的素养和技术储备,还有坚持的勇气,你也会成为大师;无论你将来是在研究所还是公司,无论是搞研究还是搞开发,你都会成为佼佼者。

能够吸引和造就如此多的大师,计算机的魅力可见一斑。那计算机的魅力到底何在呢?也许李国杰老师的一则轶事可以提供一些线索:大家都知道,李老师起初是在北大念物理的,在学习万有引力定律时,李老师问他的物理老师一个难以回答的问题:为什么引力是和距离的平方成反比?为什么不是1.999次方?或者是2.001次方?难道不会有测量误差吗?如果你读过《费曼物理学讲义》,你会明白这个提问背后的深刻内涵:物理学只是探索规律是什么,并不能够解释规律为什么是这样。很自然地,李老师无法从物理老师获得令人满意的答复。于是李老师干脆改行搞计算机,自己建造系统,这样想让它是1.999次方就是1.999次方,想让它是2.001次方就是2.001次方-----这是一则真实的故事,并非我的杜撰,李老师60岁寿辰时我跟他求证过这一点。

或许我们可以这样讲:物理、化学、生物这些自然科学的研究对象呢,是上帝所创造的世界,研究的目的是发现其中的规则;而计算机科学呢?恰恰相反,是由我们来设计规则,是由我们来创造世界。这就是计算机科学的独特魅力之所在!

那好,那就让我们一起努力,共同创造一个美丽新世界!

再见!