计算机科学泰斗Donald E. Knuth(高德纳)归隐已近20载,不问世事,潜心修订并继续创作煌煌巨著《计算机程序设计艺术》(The Art of Computer Programming)多卷本。
图灵社区藉卷4A影印版出版之机,有幸邀得大师接受关于此书的访谈,并在多位社区成员留言提问的帮助下,完成了这次珍贵的访谈。
英文版链接
高博何逸勤翻译
图灵社区:很多中国程序员都将您视为计算机科学领域的神祗。而这样的情况,又恰恰出现在盛行无神论的中国,很有意思。我们已经清楚您写作《计算机程序设计艺术》(以下简称TAOCP)的初衷和经历,也知道您关于“信仰与科学的关系”的系列讲座曾大受欢迎,因此对您的写作和信仰之间的关系很感兴趣。能否谈一下,信仰和上帝在TAOCP的创作过程中,给您带来的是哪些帮助呢?
高德纳:计算机科学是既壮观又幽美的,我尝试尽自己所能,以最恰当的方式来解释我所了解的某些片断。很显然,我自己并没有任何超自然能力,但的确很喜欢讲述那些似乎静静地等待着人们去讲出来的故事。写书跟讲故事十分类似。
此外,虽然计算机科学非常美妙,但它也不可能包办一切!我相信,总有一些神秘的东西是超越人类的
理解而存在的。
信仰是很私人的东西,它涵盖了一些永远无法证明的概念。因此,本人在信仰问题上的看法,我并不指望每个人都能同意。我认为,上帝希望我能创造某些成果,而这些东西能够启发其他人去创造其他成果。这就是我的宗教生活和科学生活之间的主要关系。图灵社区:对您耗费几十年的时间创作的TAOCP,我们代表所有已经和即将从中获益的中国读者,向您致以诚挚的感谢。到现在为止,这部著作已经创作了半个世纪。这样的成书过程,让我们想起歌德的《浮士德》。令人惊讶的是,目前这部作品仍可沿用您最初确立的内容架构。请问这种基础是如何构筑的?在目前的创作过程中,您用了哪些方法来保证自己的进度呢?
高德纳:是啊,我确实是几乎不间断地写计算机程序超过50年了,平均每周完成多于一个程序。譬如,我刚刚查了电脑,统计出我在今年的持续学习和探索中,到目前为止已经写了74个程序。当然,其中某些程序是短小和简单的,但另外那些可都够让我忙上一阵子的。这样的编程过程,很自然地启发了TAOCP的内容架构,我们能依此建立整个计算机科学的知识体系。1967年,我跟Peter Naur第一次见面时,我们发现各自都独立地对这一领域提出了完全一致的基本框架。
程序员培训机构去到极客时间
都过了50年啦,照理说我早该写完TAOCP才对。不过,我还有
很多累积下来的材料,需要20年甚至更多的时间,才可以转化
成恰当的文字。因此,当看到你问我怎样保持进度时,我都直想发笑。
要说我还是能有那么一点点进度的话,那最主要归功于采用了“批处理”而非“换入换出”的机制:在一个时间段内,我通常只全神贯注地做一件事情。每年我会暂停手上的工作两次,每次用两三周的时间阅读邮寄过来的期刊。我每周都会收到8份左右的期刊,我的秘书会把它们放到盒子里。浏览完它们并了解到技术动向后,我会在自己的文件中加入备注,提醒自己在将来专注于另外的主题时,应该阅读哪些内容。
目前,我正在聚精会神在“可满足性求解器”(SAT solvers)
这个令人着迷的领域,最近编写的20个程序都是面向这个主题
的相关探索的。藉由自己去钻研资料的手段,我可以更好地将核心思想传达给非专家的读者,并将这些思想跟其他应用紧密结合,就仿佛我的一生都在专职研究可满足性的求解问题那么自然。幸运的是,我现在跟顶级的专家们保持着联系,他们自告奋勇帮我检查写作中的错误。
图灵社区:我们听说,您目前还是先写出手稿,再在计算机中编辑。然而,您的TeX实际上颠覆了整个出版行业。那么,请问您不全用计算机写作的原因是什么?Dr. Dobbs在评价TAOCP 4A
的时候,提到“正如前几卷TAOCP那样,最新的这一卷也是浓缩了一个主题的精华内容。基于其高密
度的内容和描述,本书是近年来屈指可数的必须在印刷版格式下阅读的计算机图书之一。书中为数庞大的数学注释,将使所有电子格式束手无策,PDF版就像一批处处写满文字的JPEG,难以卒读。”您是否有考虑过,未来的电子写作和阅读应该是怎样的呢?
高德纳:我书写的速度跟我思维的速度是匹配的,这么一来,就完全不存在任何“瓶颈”。而我打字的速度就比我思考的速度更快,这样当我试图用键盘创作重要内容时,就会产生同步问题。(事实上,我也是先用笔写下你这10个问题的答案的。此刻,我正在Mac上输入草稿,并在过程中尽可能修润行文。)
速度通常不会是最重要的标准。科学一般都难以迅速解释或迅速领会。我知道我的书是不容易读,不过要知道的是,如果不是我精雕细琢地写的话,它们会比现在难读一百倍。
图灵社区:在《编程人生》中,您讨论到黑盒的问题时,评论道:“程序里有黑盒是不坏,但通常来说,如果可以看到盒子里的东西,弄清楚黑盒内部的机理,那就可以改进它。”我们觉得这里似乎蕴含着黑客的精神。如果是的话,您是否可以具体描述一下您心目中的黑客精神?
高德纳:关于黑客精神,Steven Ley那本了不起的《黑客》中描述得最好。那本书会同时地从众多层面来审视一个问题,并寻新的形式来组合基本的概念。
图灵社区:您从来都以极客(geek)自诩,并曾在访谈中提到,论文集第8卷《娱乐和游戏论文集》(Selected Papers on Fun and Games)中有一章是“极客艺术品”(geek art)。大部分中国读者都还无缘读到这本书,是否可以简单介绍一下,“极客艺术品”所包含的内容呢?
高德纳:你们应该翻译那本书啊,我说真的!
简单说,能称得上“极客艺术品”的应该是这样的艺术作品:它不仅仅能因其美丽的颜、质感和形式而打动我,同时也因能其对技术的呈现方式而愉悦我的另一半大脑。
例如,我最珍爱的极客艺术藏品中的一件,正是Bob Sedgewick (即Robert Sedgewick,《算法》的作者——译注)送给我的,那是1975年,他完成关于快速排序的博士论文的时候。那是一件瑰丽的双层编织的纺织品,图案正是他在研究中发现的其中一个数学模型。这个作品是他亲自在提花织机上手工织造的。类似的作品还有我妻子做给我的一张巧夺天工的被子,上面的图案是以爱因斯坦质数的迷人模型为基础的。去年,我自己也利用零碎

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。