牛人高德纳 2

上一篇我们讲到,高德纳计划要写一套七卷本的《计算机程序设计艺术》,没想到刚刚写完第三卷,就被ACM授予了图灵奖。这在图灵奖历史上是从没有过的事。我们还记得巴黎会议上的诺尔吧,他的图灵碗比他的获奖成果迟来了整整45年,他等这个碗时间,比高德纳获奖时的岁数还要长。但是,高德纳在获此殊荣之后,再一次令世界大跌眼镜:他宣布从此歇笔了,因为排版工具太差,破坏了这套书的美。 高德纳的这一动作让外界十分震惊,可以想见,他遭到了排山倒海的怀疑。有人说,高德纳肯定是江郎才尽,拿了图灵碗,见好就收;有人说,图灵奖对前三卷的评价过高了,高德纳无力面对这么大的压力,只好找个理由撤退;还有人说,获奖之后停止写作,充分体现了他写书的目的就是为了功利。他们纷纷质疑,这个图灵碗是彻底发错了人。 然而,如果我们真正翻开TAOCP读一读,就不难理解这是为什么。我觉得,对于算法的研究,可以分成三层境界。第一层是分析算法的复杂度,这是计算机专业的大学生普遍掌握的技能,达到这个境界,可以说是入了算法的门;第二层境界是改进算法的复杂度,在分析之后继续思考,想办法去降低它,这就可以算是懂算法了;第三层境界,就是寻找算法的最优复杂度,不但要改进它,而且要改到什么程度呢?就是要证明出来,我改完的算法就是最优的,你无论如何都不可能再改进了,再改进就违反宇宙规律。 高德纳,就是典型的第三种人。诸位不妨看看,TAOCP里面给出了多少最优算法,高德纳是铁了心,要当算法世界中的上帝。高德纳就是这么一个极致地追求极致的人,他强迫自己把每件事都做得不可逾越。那么他怎么能够容忍,这套被他视为毕生事业的书,被糟糕的排版技术束缚?于是,无论别人怎样质疑,他最终还是把写作晾到了一边,开始全力以赴地研究字体和排版。高德纳让我们领略了什么才是真正的个性,个性绝不是打18个耳洞,或在牛仔裤上抠36个窟窿。个性,就是在所有岔路口都追随自己的心,让所有影响你追求梦想的障碍统统跪倒。 高德纳这一歇笔,就是十年。在这不务正业的十年当中,对极致的追求像只看不见的手,推动他创造了三个响亮的成果,其中影响最大的,就是排版系统TEX。如果大家用MS Office Word写过论文,就会体会到那份求死不得的心:不断地调整字号、行距、缩进、分栏,如果这还不算什么,你再写几个数学式子看看?但是在TEX中,这些麻烦几乎完全不存在,你唯一需要做的,就是把你想写的内容告诉它。如果说时间就是生命,那就可以认为,TEX每天都在拯求科学家们的生命,说它推动了科学的发展也不为过。TEX是一场出版界的革命,直到现在仍是全球学术排版的不二规范,它所排出的文字之美,特别是数学式子的美,让人们由衷感叹:啊,一毫米都不能再挪动了。 除了功能上的美之外,TEX作为一个软件产品,也令人叹为观止。它的版本号不是自然数列,也不是年份,而是从3开始,不断地逼近圆周率(3.14,3.141…目前最新版本是3.1415926)。高德纳再一次用行动宣告,我这个东西,不可能再有什么大的改进了,最多只能小修小补,使其趋近完美。他还专门设立了奖金:谁发现TEX的一个错误,就付他2.56美元,第二个错误5.12美元,第三个10.24美元…以此类推。我们都知道,传说某个国王就因为这种指数游戏失去了江山,高德纳作为算法大师,更清楚指数增长的可怕性。然而他却敢立此重赏,结果直到今天,他也没有为此付出多少钱,可见TEX经过了怎样的千锤百炼。这个耗费十年打造的玩具,让当初质疑图灵奖发错了的人们全部闭嘴了,他们甚至改口说:哦,为了这个TEX,不妨再给高德纳一个图灵碗吧。

第二个成果,就是METAFONT,这是一套用来设计字体的系统。对于它的价值,一句话就能概括:计算机界最懂字体的两个人,一个是苹果的乔布斯,另一个就是高德纳。

第三个成果,就是文学化编程(Literate Programming),它把程序设计的艺术性展示得淋漓尽致。高德纳说,一段好的程序,不仅仅是要清晰易读,而且要能够读出美感,读出意境。天呐,意境,一排一排的计算机代码,要像诗歌一样充满意境。高教授,你疯了?

高德纳说,你才疯了呢,看我给你们露一手。于是,他在C语言的基础上,开发了一套CWEB系统,除了用它写出了TEX程序之外,竟然还用它写了一本叫作《Stanford Graphbase》的书。高德纳微微一笑,我都能用编程语言写书,何况有意境的程序了,我的口号是:程序员也能得普利策奖(这是全球新闻写作领域的最高奖项)。

文学化编程还为高德纳报了一个小仇。我们第6章中讲过的迪科斯彻,当年提出了一个“结构化编程”,提倡不要在编程时使用“goto”语句,高德纳偏要唱反调,结果被迪科斯彻称为“没结构”。这下可好,高德纳狡黠一笑,嘿嘿,如果你不跟我混,你就是“没文化”咯(literate也有“文化”之意)。

歇笔十年的高德纳,手捧这三项成果重出江湖,打消了一切质疑。这时他才对十年前的歇笔事件做了一个轻描淡写的解释:一个人要想把事情做得漂亮,就必须要跟上帝保持和谐,现在,上帝终于让我去写四卷了。

他的笔,又拿了起来。在写作第四卷的过程中,为了帮助读者打好数学基础,以便面对TAOCP中的数学高峰,他又专门撰写了一本《Concrete Mathematics》。这本书有中文版 ,翻译为《具体数学》,我一直觉得稍有不妥。Concrete到底是什么意思呢,高德纳说,意思就是我不教那些软绵绵的数学,我要教的是扔到地上能砸个响儿的数学。据说,他在课堂上说完这番话,有好几个同学扭头走出了教室──他们是土木工程系的学生,还以为高德纳是讲混凝土的呢(Concrete在土木领域意为“混凝土”)。说到高德纳的教学,还有个趣闻,他批改作业的时候只抽查第314页,就能判断出这份作业的质量。为此,我们这本书的第314页用来向高德纳致敬。

1992年,高德纳为了专心写作,宣布提前退休,并停用电子邮箱。高德纳一共带了28位博士生,他觉得28这个数字很好,于是便宣布不再收学生了。尽管如此,他仍然为想要师从于他的人们留下了一个盼头:他开了一门叫做Computer Musing的公开课,每次会提出一个问题,如果谁能快速解出来,高德纳就会为他的博士论文签名。不知道哪位后起之秀能够获得如此殊荣呢,我们拭目以待吧。

2008年,在TAOCP的前三卷面市30年之后,第四卷终于千呼万唤始出来,而高德纳,却已是白发苍苍的古稀老人了。一句话,一辈子,一生情,一杯酒,他对计算机科学的热爱,使他为这套丛书耗费了一生的心血。在这一章的最后,我想用一个词,来形容这位天才的计算机科学大师,但是思前想后,我只能想到唯一的一个词:God。

我想,尽管高德纳是一位虔诚的基督徒(他还专门写过关于圣经研究的书),但他一定会欣然接受这样的形容。正如当年Linux的作者Linus说:上帝在梦中告诉我,我做出了最优秀的操作系统。

高德纳回答说:我可没这么说过。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源来自http://b-ok.org/,本人对相关版权等问题不了解,可联系删除 The Art of Computer Programming, Volume 4A: Combinatorial Algorithms, Part 1 Donald E. Knuth The Art of Computer Programming, Volume 4A: Combinatorial Algorithms, Part 1 Knuth’s multivolume analysis of algorithms is widely recognized as the definitive description of classical computer science. The first three volumes of this work have long comprised a unique and invaluable resource in programming theory and practice. Scientists have marveled at the beauty and elegance of Knuth’s analysis, while practicing programmers have successfully applied his “cookbook” solutions to their day-to-day problems. The level of these first three volumes has remained so high,… —Data Processing Digest Knuth, Volume n has been published, where n = 4A. In this long-awaited new volume, the old master turns his attention to some of his favorite topics in broadword computation and combinatorial generation (exhaustively listing fundamental combinatorial objects, such as permutations, partitions, and trees), as well as his more recent interests, such as binary decision diagrams. The hallmark qualities that distinguish his previous volumes are manifest here anew: detailed coverage of the basics, illustrated with well-chosen examples; occasional forays into more esoteric topics and problems at the frontiers of research; impeccable writing peppered with occasional bits of humor; extensive collections of exercises, all with solutions or helpful hints; a careful attention to history; implementations of many of the algorithms in his classic step-by-step form. There is an amazing amount of information on each page. Knuth has obviously thought long and hard about which topics and results are most central and important, and then, what are the most intuitive and succinct ways of presenting that material. Since the areas that he covers in this volume have exploded since he first envisioned writing about them, it is wonderful how he has ma

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值