Knuth 教授的 The Art Of Computer Programming (简称 TAOCP)中文版翻译为《计算机程序设计艺术》,从字面上不太看得出来“art”到底是翻译成了“艺术”还是“设计艺术”。我倾向于“art”翻成了“艺术”,因为我觉得 Computer Programming 应翻成“计算机程序设计”,因为 Programming 是个分词,由动词变化而来,所以不应翻译成“计算机程序”。“计算机程序”的英文应该是“Computer Programme”。那么“art”翻译成“艺术”对不对呢?用“信达雅”三个标准来衡量的话,这个翻译达到了第几层呢?
这个问题由 Knuth 本人来解释显然是最好不过的,不过 Knuth 可能并不精通中文,所以此路不通,但如果他用英语解释过这个书名的话,我们也是可以拿来分析一下的。幸运的是,他还真的解释过。
在 Knuth 教授的 News 页面中,你可以看到有个 A Surprising Honor 条目,点开发现是他获了个奖:
The BBVA Foundation Frontiers of Knowledge Award in the Information and Communication Technologies category goes in this third edition to U.S. scientist Donald E. Knuth, for “making computing a science by introducing formal mathematical techniques for the rigorous analysis of algorithms”, in the words of the prize jury. The new awardee has also distinguished himself by “advocating for code that is simple, compact and intuitively understandable.”
Knuth 获奖不是什么新鲜事,图灵碗都拿回去装水果了,谁还在乎再多一个奖。关键是这个获奖页面中有我们关心的内容:
Why did I choose the word ‘art’ for the title? “Art means something artificial, devised by human beings rather than by Nature, but it also means a work of beauty. What I want is to create something of beauty: that a computer program has style and elegance and communicates well. Good programs should also be well written”, he explains. “There is this statement that I like: the difference between science and art is that science is something that we understand well enough to explain it to a computer, and art is everything else”.
这段话很有意思,Knuth 首先提到 Art means something artificial, devised by human beings rather than by Nature,然后才提到 it also means a work of beauty,那么在他心里面到底是强调 something artificial 呢,还是强调 work of beauty 呢?我的理解是这样的:
- 首先 art 这里面有“技术”和“艺术”双重意思,而且这两重意思同样重要
- 字面上的话,应该是“技术”之意,所以 Knuth 先提到 something artificial
- 在 Knuth 心里,他同样注重“艺术性”,所以 Knuth 用 “but it also means” 来强调之
其实我们也可以查字典看一下 art 到底什么意思(不要觉得这个字你初中就学过就不用查字典了),Merriam-Webster Collegiate Dictionary 里这样解释(标有 archaic 的都是古义,我们不太关心,所以用删除线划去):
1 : skill acquired by experience, study, or observation <the art of making friends>
2 a : a branch of learning: (1) : one of the humanities (2) plural : LIBERAL ARTS b archaic : LEARNING, SCHOLARSHIP
3 : an occupation requiring knowledge or skill <the art of organ building>
4 a : the conscious use of skill and creative imagination especially in the production of aesthetic objects also : works so produced b (1) : FINE ARTS (2) : one of the fine arts (3) : a graphic art
5 a archaic : a skillful plan b : the quality or state of being artful
6 : decorative or illustrative elements in printed matter
然后还有同义词比较:
synonyms ART, SKILL, CUNNING, ARTIFICE, CRAFT mean the faculty of executing well what one has devised. ART implies a personal, unanalyzable creative power <the art of choosing the right word>. SKILL stresses technical knowledge and proficiency <the skill of a glassblower>. CUNNING suggests ingenuity and subtlety in devising, inventing, or executing <a mystery plotted with great cunning>. ARTIFICE suggests technical skill especially in imitating things in nature <believed realism in film could be achieved only by artifice>. CRAFT may imply expertness in workmanship <the craft of a master goldsmith>.
根据字典解释,我们初中学的仅仅是其中第 4 个意思,而实际上 Knuth 用到的是第 1 个和第 4 个意思。再结合同义词辨析,我们不妨这样来翻译 art 一词:带有创造性的技艺。
无论怎么翻译,你得承认 art 的意思是非常微妙的,里面包含“技巧”成份,也包含“创造性”成份,还有些“艺术”成份。
有了作者 Knuth 和字典的双重解释,我们还可以看 TAOCP 中更多的例子:
(from volume 1, §1.4.1) Debugging is an art that needs much further study, and the way to approach it is highly dependent on the facilities available at each computer installation.
(from volume 4, page.v, paragraph -2) The number of such problems is vast, and the art of writing such programs is especially important and appealing because a single good idea can save years or even centuries of computer time.
(from volume 4, page.vii, paragraph -2) Sequential methods, by themselves, already test the limits of my own ability to discern what the artful programmers of tomorrow will want to know.
(from volume 4, page.viii, paragraph 2) I’ve mentioned great progress in the art of combinatorial computing, but I don’t mean to imply that all combinatorial problems have actually been tamed.
(from volume 4, page.viii, paragraph 3) The art of computer programming continually reaches new heights when programmers are faced with challenges such as these.
这些例子中的 art,几乎全都应该翻译成“技术”或者“技艺”,而不能翻译成“艺术”。换句话说,这里面用到的都是 art 在韦氏词典中的第 1 个意思。从这里我们也可以猜测,即便书名中的 art 不是单纯“技艺”的意思,那么其“技艺”成份也是主导的,而 art 之“艺术”含义在这里面应是锦上添花的作用,而非主要意思。
当然,我并不是在这里主张“去艺术化”,人家 Knuth 都说了,it also means a work of beauty。我只是说,我们应该意识到,art 在英文中主要意思很可能不是“艺术”,而是“技艺”。了解了这一点,我们就会发现,The Art Of Computer Programming 这个名字起得真是好,因为编程首先是一门“技术”,而同时它又是具有“艺术性”的东西,所以使用“art”真是恰如其分。
回到开头提到的问题,我觉得“art”翻译成“艺术”是很好的,但是前提是你了解在汉语中“艺术”同样有“富有创造性的方式、方法”之意。也就是说,英文“art”和中文“艺术”在这个地方微妙到一块儿去了。通过对“art”和“艺术”的全面了解,我觉得此翻译应该已到了“雅”的层次,属于难得的佳译。但是,(再强调一遍)我们一定要知道“art”和“艺术”里面微妙的含义,才不至于理解得肤浅。
翻译这档子事,也是一门艺术,偶尔研究一下挺有意思。