2009年3月26日星期四

About Knuth- -



传说 Knuth 写书写文章的第一稿都是用铅笔写的。
很多人不明白他为什么不用键盘。
其实原因是这样,Knuth 曾经参加过一个训练小秘的学习班,
练习打字每分钟 80 个词以上。

到了后来,他发现他打字的速度大大高于他思考的速度,
所以如果他用键盘,就会出现很多停顿。
所以他决定用铅笔,这样可以与读者的思考速度保持一致。

Knuth 作为一个计算机科学家,
为什么放下他所有的工作10年,
专心研究排版美学,创造 TeX 系统。
这是很奇怪的一件事情。

其实原因是这样。真正完美的数学排版应该是用金属活字进行的。
但是自从70年代以来,真正懂得这项技术的人都死光了。
新的排版机器,很不幸的都被计算机操纵了 (想想 Matrix :p)

虽然当时计算机能够排出一些简单的报纸,杂志,
但是它们不能很好的处理数学公式。

Knuth 想写出一个小玩艺儿能够在不同的计算机上制造漂亮的数学公式,
于是 TeX (读作 Tech(nology) 的前半部分) 就诞生了。

很多人都对 TeX 断行的算法感到满意,
其实只有 Knuth 觉得担心。

他设计 TeX 的时候听说有一本书叫做 Aesthetic Measures,
作者是美国 No.1 数学家 George David Birkhoff。
是说怎样用数学公式来衡量“美”。

他查阅了7个Harvard图书馆,其中有一个图书馆有一个拷贝,
但是却被人借走了。无奈,跑到 MIT 去借。

还好,借到了。后来他就在 TeX 里加入了一个变量叫做 badness,
用来衡量一行文字的美感。badness 越小这行文字就越美。

但是与 Birkhoff 不同,Knuth 对这个公式没有多少信心。
也许是因为谦虚。

Knuth 的书都是自己用 TeX 排版的,但是却不都是自己设计的。

传说 Knuth 和 Graham, Patashnik 合作写 Concrete Mathmatics 的时候
请了一位有名的图书版面设计家为他们设计好了书的尺寸,字体大小,标题样式,

后来 Hermann Zapf 专门设计了一种数学字体叫做 Euler,
自此,数学家 Euler 的灵魂浮游于 CM 当中……

另外一个图书设计家告诉 Knuth 一种格式数学公式的办法,
就是不把数学居中,而是只相对正文缩进一定距离。

大家都知道 1974 年图灵奖授予 Knuth
主要是因为他写了一部巨著叫做
The Art of Computer Programming

但是不幸的是,很多人不能理解,甚至不相信
他为这部书起了这么一个不“科学”的名字。

后来很多人的著作里出现这样的文献引用:

"The Act of Computer Programming, Donald Knuth."

Knuth 是个喜欢自夸的人,这是毫无疑问的。
在他出版 The Art of Computer Programming 之前就已经有这种苗头了。

还没有出版的时候,在一次会议上,有个人知道他的这种性格,
就说:“我猜你正在写的这本书的书名肯定是 ‘An Introduction to Don Knuth’
。”

Knuth 回答说:“正好相反。我要以你的名字来命名它。”

原来这个人的名字叫 "Art Evans".

Knuth 是Caltech数学系博士毕业的
但是他常常说:“我戴着一顶计算机科学家的帽子,而不是一顶数学家的帽子。”

这说明他似乎对数学家有某些看法。
在他看来数学家只知道“What is it”,
而他还知道 "How to do it".
这就是他认为的数学与计算机科学的区别。

Knuth 回到 Stanford 时,学校让他自己给自己一个头衔

他就选了一个
Professor Emeritus of The Art of Computer Programming

他其实觉得“计算机科学”不是科学。
虽然大家很希望计算机编程变成科学,这是某ACM刊物提出的忠旨。
但是 Knuth 觉得奇怪为什么大家这么喜欢科学,
以致于他们瞬间把程序设计变成了科学,方法就是叫它“计算机科学”。

没有评论:

发表评论