今年将是国内C++学习者的幸运年,因为在长期被忽视之后,我们对于ISO/ANSI C++书籍的渴求终于得到重视,国内数家出版社纷纷出版经典C++书籍。虽然来还是比国外慢了2-5年,但是有总比没有好。而且标准C++的技术至今仍然是很新很先进的,如果我们能够努力学习,还有希望赶得上国外的大趋势。下面对今年内要出版的几本C++给于简评。
1. Bjarne Stroustrup, The C++ Programming Language, 3rd Edtion, Addison-Wesley 1997.
中文版《C++程序设计语言》第三版,机械工业出版社2001年5月出版,译者徐宝国教授。延迟时间:4年
这是任何一个C++学习者绝对、绝对不能错过的C++头号经典。Nathan Myers说:“15年之后,此书仍然是唯一一本无可替代的C++书籍。” 只要有人推荐C++书籍,此书必在其中。
这本书非常全面,非常权威,充满了技术性极强的材料。很多地方值得反复回味与思索。作者不仅是C++之父,而且是贝尔实验室大尺度软件研究中心的首脑,他自己说,他所接触和开发的软件无论是在体积、复杂性和难度来说,根本不是外界一般软件所能比拟的。这本书虽然是一本语言著作,但是处处反映出他对于软件开发和程序设计的看法。所以他在书中的很多观点虽然看上去不觉的什么,但是当你接触到真正挑战的时候,就会深刻体会到其真知灼见,实非一般的专家所能比肩。Effective C++的作者Scott Meyers年初把自己的Effective STL书稿交给包括Stroustrup在内的一些专家审查,被提出了一些问题,他拿着出问题的那些部分对比这本书,最后在网上发出了这样的感叹:“What a show-off!”(多么了不起啊!)。由此可见此书水准之高。
缺点也是有的,那就是比较难懂。限于篇幅,作者很多地方点到即止,内藏深意,很有点高人行事,神龙现首不现尾的感觉。不是初学者,甚至也不是我们国内大多数自以为学会了C++的“高手”能够轻易领会的。我个人觉得浮光掠影地貌似读懂不难,真的体会此书背后的思想就非要花上好多年了。本书的外号是: C++专家自学指南,也就是你得先是专家,然后再来读此书自修上进。既然Scott Meyers都需要反复理解这本书,我想我说大多数人需要更长的时间和更多的功夫来领悟,应该不算是对高手们的蔑视吧。本书的描述方式比较专业化,不能作为第一本C++书。
2. Stan Lippman, Josee Lajoie, C++ Primer, 3rd Edtion, Addison-Wesley 1998. 中文版由中国电力出版社年内推出。译者不详。延迟时间:3年
上面说到,Stroustrup的那本书不适合作为入门书。做为一个没有学过C++的初学者,有几本书值得推荐,其中Andy Koenig和Babara Moo夫妇合著的Accelerated C++和Stan Lippman的Essential C++是两本薄小精悍的名著,后者有侯捷先生的译本。可惜在国内还没有出版的消息。而且这两本书并非全貌性的介绍,要说到全景展现C++而又适合初学的经典著作,非Stan Lippman的宏篇巨著C++ Primer, 3/e莫数。侯捷先生1999年推出此书的繁体译本。在前言中,有这么一段话:
“我常被要求推荐C++程序语言的书籍,...,但如果考量的是语言的全貌性书籍,从来我只推荐两本,一是Bjarne Stroustrup的The C++ Programming Language,另一是Stanley B. Lippman的C++ Primer。我这么说难免造成遗珠之憾,但是泰山北斗已现,又何必案牍劳形于墨翰书海之中!这两本书都是自盘古开天以来,一路改版,斩将擎期,追奔逐北,成就一身荣光!”
此书作者Stan Lippman原来是Stroustrup的同事,世界上第一个C++编译器CFront的实现者之一,C++ Report杂志的第二任主编,现在迪斯尼动画做软件技术部首脑。Josee Lajoie是C++为数不多的巾帼英雄之一,ANSI C++标准委员会核心语言子委 员会主席。
此书是一本标准的“从入门到精通”教材(而大多数使用这个名字的书实际上都名不符实),注重实例,内容全面、权威,通俗易懂。初学者哪怕没有其他任何资料,只要能够认真学通这本书,足以能自由使用C++,成为别人眼中的高手。而且此书 跟上面一本一样,到处是珍宝,等待你发掘。
缺点只有一个,太厚。不过相信我,如果你因为价钱的问题迟疑不定,那么受损失的是你,不是书商。
最后一点,我估计此书是众人合译,希望译文质量过硬,不要暴殓天物。
3. Stan Lippman, Inside C++ Object Model, Addison-Wesley 1996. 中文版《深度探索C++对象模型》由华中科技大学出版社5月出版,译者侯捷。 延迟时间:5年
名作者+名著+名译者,你没有任何理由错过这本书。算起来这是国内第一次出版侯先生的译作,大陆方由《深入浅出MFC》的原班人马再度出击,质量上一定不会让人失望。关于这本书本身,侯先生在《程序员》杂志做了介绍。这是一本让你对于C++的理解整体升级的小书,薄,也比较贵。我知道有不少人又要抱怨,但是我可以告诉你我花了一万五千块钱买了500本以上的计算机书籍之后得到的一个经验:好书无价。(在我的500本书里,真正值得的不超过50本,其他的全部都是负数) 这本书里讲述的内容是你在其他书上花多少钱也买不到的,跟上面的两本书相比,切入点独到,从另一个方向帮助你彻底对C++知其然而知其所以然。
4. Scott Meyers, Effective C++, 2nd Edition, Addison-Wesley, 1998. 中文版由清华大学出版社推出,延迟时间3年
Scott Meyers, More Effective C++, Addison-Wesley, 1996. 中文版由电力出版社推出,延迟时间5年
再说“绝对不能错过”,我的嘴皮子都觉得发麻。但是发麻也得说,要是这两本书你都敢放过,那我只能说我很佩服你的勇气。这两本书是每一份书籍推荐表上的必备。当你初步了解了C++的全貌后,它们能够在短时间内大幅度地提高你的C++水平,然后会长期放在你的书桌床头,引你时时参考。作者的本领在于,虽然这两本书加起来只有C++ Primer一半的篇幅,但是每一个你遇到的C++问题,Meyers都好像未卜先知地放在了这两本书里,你几乎肯定可以在这两本书中找到美妙的论述。我有幸读到侯先生的译本,如果让我来评价,我觉得就算把它们倒背下来也是值得的。
有缺点么,我找不到,我给这两本书打满分。Scott Meyers是第一个向我展示了什么叫“完美”的作者。我极力、极力、极力地推荐。唯一希望的是中文版的质量配得上原著。不确定的消息:
上半年侯捷先生将完成三本重要著作: 《多型与虚拟》第二版,《泛型技术》,《STL源码剖析》,预计今年,最迟明年能够与 大陆读者见面。
Herb Sutter的Exceptional C++,Addison-Wesley, 2000年 据说电力出版社已经组织翻译,估计也能在年内出版。