陈昊鹏先生这样写道:“《Java编程思想》已经成为广大Java程序员和爱好者手中必备的宝典,它在读者心目中的地位已经无法替代,其作者BruceEckel也已经成为众多Java程序员顶礼膜拜的大师。”不过说实话,经验略微丰富一点的读者如我,很难对BruceEckel产生出“顶礼膜拜”这样的情愫。当他在年时接连写出《ThinkinginPatterns》、《ThinkinginPython》等等毫无新意的附庸风雅之作时,作为一个投机者的BruceEckel便已经被我牢记于心了。然而《Java编程思想》的成功是毋庸置疑的。
回想《Java编程思想》第一版出版时的环境,我们不难理解它取得的巨大成功:那时Java世界刚刚划分出J2SE、J2EE和J2ME三大平台,JDK1.2对Java语言进行了相当大的改变。对于这样一种刚刚完成巨变、而又正在开始变得热门的语言,程序员和编程爱好者们需要一本巨细靡遗的语言教材来了解它的方方面面。而如果你恰好也读过JamesGosling的《Java程序设计语言》,你必定会同意:那俨然是一本极之枯燥乏味的红头文件。恰好在这个时候,BruceEckel把他写书(尤其是写语言入门教材)的本事发挥出来,并从此开创了一个时代。
在我看来,BruceEckel只写过一本好书,那就是《C++编程思想》。之所以说那是一本好书,因为C++是这样一种复杂的编程语言,程序员在学习和使用它的时候必须留意种种语言上的细节,《C++编程思想》详尽的内容恰好与这种需求相得益彰。而Java相比之下则是一种简单得多的语言,学会它的语法和惯用法非常容易,对于程序员来说更要紧的是学会如何用Java语言来完成现实的工作。善于写入门教程的Eckel先生只是把《C++编程思想》的套路搬到另一本书里,然后把C++全文替换成“Java”或是“Python”,就完成了他的新作,这也就决定了这些作品只能是画虎类犬。语言之间的差别并不仅仅在于语法,一种语言更代表了一种思维方式,这正是《ThinkinginPython》会被Python用户们嗤之以鼻的原因。
从第一版到第三版,这本《Java编程思想》(原版)也已经长成了1K+的大部头。唯一令人遗憾的是,它的作者似乎并没有考虑到读者的智商与经验会随着书的篇幅一道成长,仍然乐于耗费大量的纸张来重复那些7年来没有任何变化的内容。不过倒未必会耗费多少笔墨,毕竟90%的内容只需要copypaste即可。不过,鉴于BruceEckel对于整个反射机制都只肯拨出一小节的篇幅,这样的缺失倒也是可以谅解的。在Eckel先生的眼里,需要用到反射机制的那些读者显然已经太过高端,他更愿意用掉整整一章的篇幅来介绍“如何用if...else...控制程序流程”,因为后者的读者更有可能不假思索地冲着他的名头买下这本书。但无论怎么说,无论是因为什么缘故,《Java编程思想》毕竟是一本成功的好书。而且不得不说,BruceEckel也确实是一位职业素养颇高的投机者。
譬如说,当敏捷方法大行其道时,他也不失时机地在书中加上了小半章相关的内容:如何使用JUnit写单元测试,如何用Ant进行构建。
作者:蔡圣斌
原创文章,欢迎转载,尊重版权。