English

投机者的大胜利

2005-07-20 来源:中华读书报  我有话说

在《Java编程思想》第三版的译者序上,陈昊鹏先生这样写道:“《Java编程思想》已经成为广大Java程序员和爱好者手中必备的宝典,它在读者心目中的地位已经无法替代,其作者BruceEckel也已经成为众多Java程序员顶礼膜拜的大师。”不过说实话,经验略微丰富一点的读者如我,很难对BruceEckel产生出“顶礼膜拜”这样的

情愫。当他在2002年时接连写出《ThinkinginPatterns》、《ThinkinginPython》等等毫无新意的附庸风雅之作时,作为一个投机者的BruceEckel便已经被我牢记于心了。

然而《Java编程思想》的成功是毋庸置疑的。BruceEckel把这本书―――当然,以及他所有的著作―――全文放在网站上公开,而它的纸面版本已然出到了第四版。看看这本第三版上收录的“读者评论”吧,再回想一下它的前两个版本曾经如何风行。如果不考虑第一版拙劣的翻译给它带来的负面影响,我们必须承认,这本《Java编程思想》就是―――至少在中国―――最出色的“那本”Java教材。

回想《Java编程思想》第一版出版时的环境,我们不难理解它取得的巨大成功:那时Java世界刚刚划分出J2SE、J2EE和J2ME三大平台,JDK1.2对Java语言进行了相当大的改变。对于这样一种刚刚完成巨变、而又正在开始变得热门的语言,程序员和编程爱好者们需要一本巨细靡遗的语言教材来了解它的方方面面。而如果你恰好也读过JamesGosling的《Java程序设计语言》,你必定会同意:那俨然是一本极其枯燥乏味的红头文件。恰好在这个时候,BruceEckel把他写书(尤其是写语言入门教材)的本事发挥出来,并从此开创了一个时代。

作者BruceEckel的长处是善于编写入门教程;这一点在他的代表作《C 编程思想》中表现得淋漓尽致。对于C 这样复杂的编程语言,程序员在学习和使用它的时候必须留意种种语言上的细节,《C 编程思想》详尽的内容恰好与这种需求相得益彰。而Java相比之下则是一种简单得多的语言,学会它的语法和惯用法非常容易,对于程序员来说更要紧的是学会如何用Java语言来完成现实的工作。或许这也正是《Java编程思想》一书稍嫌欠缺的地方;作者把大部分篇幅投资在语言本身的细节上,但让一个有经验的Java程序员回想自己的学习历程,他会发现这些内容要么无关紧要、要么可以在用到时方便地找到。语言之间的差别并不仅仅在于语法,一种语言更代表了一种思维方式,而Java思维方式的核心体现在于其应用环节,或许这一点正是本书只能停留为一部入门教程的原因。对于有一定开发经验的程序员们,这种写法也许有失简明,但在不少从未掌握任何编程语言的新手看来,《Java编程思想》恰恰是他们能找到的最佳指南。

从第一版到第三版,这本《Java编程思想》(原版)也已经长成了1K 的大部头。唯一令人遗憾的是,它的作者似乎并没有考虑到读者的智商与经验会随着书的篇幅一道成长,仍然乐于耗费大量的纸张来重复那些7年来没有任何变化的内容―――不过倒未必会耗费多少笔墨,毕竟90%的内容只需要copy&paste即可。虽然第三版标榜着“面向Java1.4”,但除了介绍NIO、正则表达式、LoggingAPI、LinkedHashMap这些零敲碎打的增强特性之外,Java1.3增加的最重要的特性―――动态代理―――在这里压根不见身影。不过,鉴于BruceEckel对于整个反射机制都只肯拨出一小节的篇幅,这样的缺失倒也是可以谅解的。在Eckel先生的眼里,需要用到反射机制的那些读者显然已经太过高端,他更愿意用掉整整一章的篇幅来介绍“如何用if...else...控制程序流程”,因为后者的读者更有可能不假思索地冲着他的名头买下这本书。

但无论怎么说,无论是因为什么缘故,《Java编程思想》毕竟是一本成功的好书。而且不得不说,BruceEckel也确实是一位职业素养颇高的投机者。譬如说,当敏捷方法大行其道时,他也不失时机地在书中加上了小半章相关的内容:如何使用JUnit写单元测试,如何用Ant进行构建。对于已经购买了这本《Java编程思想》第三版的读者,我想说的是:单冲着第15章的前半段,这95元钱基本上也就算值回票价了。之所以这样讲,第一是因为这段内容多少可以教给你一点有用的东西;第二,如果这段内容还不够让你满意,恐怕整本书剩下的700页也不会给你更多的满足感。

手机光明网

光明网版权所有

光明日报社概况 | 关于光明网 | 报网动态 | 联系我们 | 法律声明 | 光明网邮箱 | 网站地图

光明网版权所有