新年以来,发生了不少事情,俨然一派新气象。这也使我们有机会跳出专栏原来按专题论书的套路,更灵活(用时髦的术语来说是敏捷)地反映一些当前的时事。毕竟,我们的专栏名称叫“书・人・事”嘛。
与书相关的新闻,最轰动的应该是Borland公司居然公开叫卖自己的整个IDE产品线,令还在使用以及使用过其产品(包括本文作者在内)的众多拥趸扼腕痛惜,当然,更多的还是心怀忐忑的祝福。但愿在JBuilder、Delphi易主之后,能够更加重视社区推广工作,多鼓励支持一些相关好书的出版。这方面,Borland做得实在不好――公司美国网页上推荐的图书至今还是Delphi7,C++Builder6。要不是还有Marco Cantu这样的死硬派鼎力支持,我们将不再有像样的书可看。
另一件值得提及的,是年终年初例行公事的各类评选。我们就单说图书好了。国内许多人最为重视的Jolt奖只是公布了决赛入围名单。看看名单吧:
一般类图书:
――Ambient Findability: What We Find Changes Who We Become by Peter Morville(O' Reilly)
Best Software Writing by Joel Spolsky(Apress)
――Innovation Happens Elsewhere: Open Source as Business Strategy by Ron Goldman and Richard P.Gabriel (Morgan Kaufmann)
――Prefactoring by Ken Pugh(O' Reilly)
――Producing Open Source Software: How to Run a Successful Free Software Project by Karl Fogel(O' Reilly)
――The Art of Project Management by Scott Berkun(O' Reilly)
――The World Is Flat: A Brief History of the Twenty-First Century by Thomas L.Friedman (Farrar, Straus & Giroux)
技术类图书:
――Agile Web Development with Rails by Dave Thomasetal. (Pragmatic Bookshelf)
――Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable. NET Libraries by Krzyszt of Cwalina and Brad Abrams (Addison-Wesley)
――Practical Common Lisp by Peter Seibel(Apress)
――Service-Oriented Architecture: Concepts Technology and Design by Thomas Erl(Prentice Hall)
――Why Programs Fail, First Edition: A Guide to Systematic Debugging by Andreas Zeller(Morgan Kaufmann)
――Wicked Cool Java: Code Bits,Open-Source Libraries, and Project Ideas by Brian D.Eubanks(No Starch Press)
总的感觉是让人有些摸不着头脑。一般图书中,《The World Is Flat》这样的大众畅销书入选,不仅原书作者未必感冒,对于技术人员的意义也极为有限,大有充数的嫌疑。照这么发展下去,别过几年把“哈利・波特”也评进来了。《Best Software Writing》是延续了去年《Joel谈软件》的路子,但是既然是评奖,就不必因为看着顺眼,还要来个加倍吧。《Ambient Findability》一书对于开发人员来说,似乎前沿了一些,不过入选还算凑合。《Prefactoring》(台湾译本翻译成《软体预先架构》)书名看着吓人,好像是重构那样的杰作,不过仔细读一读,却发现内容并不深入,所提理念大概是想折中设计模式与重构,虽然自有其价值,但远未成熟,与去年的获奖作品《重构与模式》一书有很大差距。这本书的入选我看十有八九是因为Scott Ambler评委的推荐,斯氏作专栏作家日久,最喜新潮花样(他的成名作《Object Primer》改版就因新花样太多,并不成功)。
《The Art of Project Management》是一本好书,没有辱没这个名字,在入选各书中应该是佼佼者,我预测能够获得大奖。另外两本都是讲开源软件业务层面事宜的,选材明显重复了,由于面向的读者比较窄,更显得不应该。值得一提的是,《Producing Open Source Software》一书的作者是最近风头正劲的版本控制软件Subversion开发者之一Karl Fogel。技术图书相对稍微靠谱一些。只是Lisp图书居然入选,估计是某位评委自己的偏好。SOA那本畅销书的入选虽然没有出大圈,但肯定会引起争议,因为作者完全无视RSS/Ajax这样的主流,还是仅仅死抱SOAP。Java书中入选的是WickedCool那本小书,为什么不是《Java Puzzlers》(中文版《Java解惑》,人民邮电出版社出版)呢?那可是Bloch和Gafter这两位Java5中坚的作品啊。为什么不是Spring的那三本书(Spring in Action,Pro Spring,Professional Java with Spring,三本书将分别由邮电、电子和机工出版社出版)之一呢?无论如何,总比去年的《Lighter, Faster, Better Java》那本强。《Wicked CoolJava》是一本很巧的书,会让你大开眼界,对Java有另一番认识。《Why Programs Fail》和《Framework Design Guidelines》(听说人民邮电出版社要出版中文版)的入选,甚合我意。前一本书是GNU Data Display Debugger(DDD)的开发者;后一本书则是微软.NET团队的智慧结晶,与《Effective Java》属于同一层次,内容可能更加丰富。Rail现在国外大热,《Agile Web Development with Rails》一书入围合情合理,实际上,由于Rubyon Rails的兴起,Ruby图书在国外的销售已经超过了曾经红火过一时的Python。不过为什么没有Ajax呢?估计要归因于Jolt奖的报名制的评选机制了,出版社大概来不及将接近年底的书目报上去。不过这样也就使《Ajaxin Action》(人民邮电出版社将出版中文版)这样的杰作与Jolt奖失之交臂了。
同样我觉得有遗珠之恨的,还有《Rootkits》和《Working Effectively with Legacy Code》,前者是一本极见功力的安全底层机制剖析的著作,对Windows内核的理解也大有帮助,后者则是重构一类的日常开发非常需要、有益于增长开发人员内力的好书。
平心而论,Jolt大奖还算是业界口碑最好的一个。比较一下SYS-CON公司的读者选择奖的不严谨就知道了。去年该公司媒体评选的最佳SOA图书是《J2EEWeb Services》by Richard Monson-Haefel(Addison-Wesley)(中文版《J2EE Web Services高级编程》,清华大学出版社)。作者还写过畅销的EJB图书,但是从SOA这个领域来说,这本书还不如Jolt入围的Thomas Erl。最佳Linux图书是《The Linux Home Networking》电子图书,压过了《Linux Programming by Example》(Prentice HallPTR)(英文影印版,机械工业),很有些不伦不类。
最佳.NET图书是《Expert C# Business Objects》(Apress),很有名的.NET高阶书,已经是第二版,当然分量和适用面不如Jolt奖入围的那本。入围的图书是:
1)Windows Forms Programming in C# by Chris Sells (Addison-Wesley)
2)Programming C#, 3rd Edition (O'Reilly)
3) ASP.NET Cookbook (O'Reilly)
最佳Java图书是《Hibernatein Action》(Manning Publications),很遗憾这本书至今还没有中文版。其他入围图书是:
1)J2EE Blue Prints (Sun Microsystems)
2)Core Java2 (Sun Microsystems)
3)Java Developer's Guideto Eclipse(IBM)
有不少书都是前年出的,但是SYS-CON评选并不严格限制。
此外还有两件人事,一是上次专栏提到的《算法引论:一种创造性方法》(电子工业出版社)一书的作者、世界顶尖搜索专家Udi Manber近日从Amazon搜索负责人的位置跳槽到了Google。光从挖人来看,Google越来越像当年拿着Top Brains单子四处动人墙脚的微软了。
二是《J2EE核心模式》(机械工业出版社)作者、Sun公司全球21位杰出工程师之一,原企业Web服务集团CTOJohn Crupi已于2月末辞职,投奔著名的Ajax开发工具和专业服务提供商Jack Be,担任该公司的CTO。考虑到Crupi在Java EE领域的重要地位,有评论说,这是Ajax向传统企业开发技术发起挑战的一个标志。
年初的《程序员》杂志上,我的朋友刘江先生有一篇很有趣的综述文章《图书:技术趋势晴雨表》,从图书的销售来看各种技术的潮涨潮落。大致的结论有:“C++、Java是目前当然的主流。C++比较稳定,但是有走下坡路的迹象;Java出书相对较少,但是新书多,效率高,反映出Java目前市场实际需求旺盛。……开源Java技术大热……Visual Basic品种较多与教材和考试有关,不过实用型书籍也不少,而且各领域都有,说明其应用和拥趸仍然广泛。相比之下,VB.NET和C#、Delphi基本上处在稍弱的同一档次,总体看,似乎Delphi还处于上风。……C#卖得较好的书几乎都是有关数据库开发和Web开发的,背后其实都是ASP.NET在支持,某种程度上说明了.NET目前的应用现状。……国内多年来排斥脚本语言的现象看来并没有太大改观。”英雄所见略同的是,本专栏上篇文章总结去年的好书,总的感觉是比较平淡。不料,年底到现在,不到一个季度,就冒出了许多值得评点的新书来了。
最引人注目的当然是Ajax。各种迹象表明,今年将是Ajax的天下。国外已经出版的四五种Ajax都销势良好,《Ajaxin Action》更是长期在销售榜上名列前茅。其他已经冒头的Ajax图书更是数以十计,几乎所有主要出版社都参与其中。据说,更有不少选题因为竞争激烈而被取消的。国内人民邮电出版社一马当先,以罕见的速度翻译推出《Ajax基础教程》,已经迅速登上各大书店畅销榜,据说首印当月售罄重印,与国外不相上下,可以说是近年不多见的火爆。接下来的《Ajaxin Action》、《Professional Ajax》(以上人民邮电出版社)、《Pragmatic Ajax》(电子工业出版社)、《Ajax Patterns》等,更是重磅之作。与此同时,各出版社的国内原创作品肯定也将纷纷跟进,预计会很快形成乱战局面,究竟鹿死谁手,让我们拭目以待。
另一个有趣的现象,是C++好书的集中出版。去年是C++20周年,国内出版界似乎没有太多呼应,到了年底、今年初,却有《C++编程思想》(第二卷)(机械工业出版社)、《C++编程规范》、《C++必知必会》、《Exceptional C++ Style》、《Imperfect C++中文版》(以上人民邮电出版社)等多部重量级著作问世。如果不是篇幅有限,这都让我们起了专文推荐C++图书的念头。
其他的好书还有东南大学出版社出版的《深入浅出设计模式(英文影印版)》即去年的Jolt大奖得主《Head First Design Patterns》,这本创新图书的畅销是非常自然的,奇怪的是,不知为何翻译版毫无下落?中国电力出版社的《Linux设备驱动程序(第三版)》是常青树类型的,值得一提的是译者,Mini GUI项目的负责人魏永明,要知道,这可是少数国人发起的有国际影响的开源项目。《软件测试的艺术(原书第2版)》(机械工业出版社)是一本经典老书的新版,精髓没有变化,更新比较有限,收藏价值恐怕比实际意义更大。