聆听C++语言创建者的教诲
聆听C++语言创建者的教诲
Bjarne Stroustrup 为 C++ 初学者撰写的新作中译本(《 C++ 程序设计原理与实践》 )近期终于面市了。这本书秉承 Bjarne 一贯朴素、稳重的写作风格(偶尔不失犀利的幽默),其内容远比常见的轻量级 C++ 入门教程丰富、系统,是一部专为有志于成为职业 C++ 程序员的初学者而写的大部头。
这本书的基本素材来源于 Bjarne (及其德州农工大学已逝同事 Lawrence Peterson )针对大学生的授课讲义,内容包括基本知识、输入 / 输出、数据结构与算法、延伸阅读以及附录等 5 个部分,各章具体构成不赘述,在此仅强调一个细节,嵌入式系统程序设计一章中所述的编码规范不仅仅对嵌入式程序设计有效,大多数条款同样适用于其他领域的 C++ 编程,初学者理应熟记这些条款,从一开始就养成良好的编程风格,良好的编程风格将使你受益无穷。另外,该书配套网站很慷慨,免费提供了幻灯片、代码、习题答案及勘误等丰富的资源。
无论是从一名读者还是从一名译者的角度看,本书中文版的翻译都很好,但出版方删除附录的做法着实让人费解(虽然不怕麻烦的话可以到它们的网站下载电子版的附录)。印象中,这似乎是第一本被大幅删除原著内容的 C++ 引进图书,而且这样的事偏偏还发生在了 C++ 语言创建者的著作之上。虽然出版方这么做有它自己的理由,但无论是什么理由都让人难以原谅。这本书的写作方式(即实例驱动而非语言驱动)和定位决定了附录内容对于初学者而言是不可或缺的,理应唾手可得。
这本书难免被和 Stanley Lippman 的《 C++ Primer 》 对比,不仅仅是因为它们的厚度和定位,也因为两位作者的背景和影响力。其实两本书的风格差异非常明显。《 C++ Primer 》 是“语言特性驱动”写作方式的成功代表(其销量和口碑就是最好的证据),而本书则是实例(往往可以看成实用程序代码的简化版)、技术和思想并重。就像 Bjarne 的其他著作一样,其内容一向不仅仅局限于 C++ ,书中遍布程序设计思想和方法的经验谈。这些正是真正的专家有别于普通作者之处。真正的专家见多识广,精通业务,实践经验丰富,对问题的认知独到、深刻,能够用最简单的语言将常人难以言明的问题表达清楚。阅读 Bjarne 的任何一本书你都会深刻地感受到这一点。
这本书会被中国的大学选为 C++ 教材吗?可能性不大。首先它太厚了,内容太多了(虽然出版社故意删除了附录部分),不适 合一学期学时安排,其次,与普通大学教材相比,它的价格太高了。仅此两点就足以被大学教务部门否决。退一步而言,即便教务部门的官僚不干预,很多教师恐怕 也无选用它的动力,某些内容对于学生而言确实太难了,甚至对于一些编程经验欠缺的教师自身而言也不容易,何况不少教师已经习惯于讲授“古典 C++ ”而非现代 C++ ,做出改变需要付出大量的额外努力,哪来的动力呢?
劣质教材、糟糕的教学、浮躁的环境已经耽误了不在少数的初学者(他们中的一部分已经成为老资格程序员),所幸的是,至少在可以预见的未来二十年, C++ 的应用领域不会消亡, C++ 的发展不会止步,一拨老 C++ 程序员退役了,一批又一批朝气蓬勃的新人踌躇满志地加入职业 C++ 程序员的行列。即便这本书无法勾起既有 C++ 程序员的阅读兴趣,对于 C++ 新人而言,聆听 C++ 语言创建者的教诲,无疑可以少走不少弯路。实际上,对于那些基本功不够扎实的老手而言,这也是一次接受 C++ 再教育的良机。是的,不同层面的 C++ 程序员都可以从阅读本书中受益,对此我深信不疑。
荣耀
南京师范大学中北学院
royal@.royaloo.com
荣耀 是一位 IT 培训师、撰稿人,通过咨询、培训、讲座、著译以及项目合作研究等,帮助企业用户、 IT 公司、科研院所、大学以及个人理解和应用企业级应用构建语言、工具、思想和方法。他目前任教于南京师范大学中北学院信息科学系。
在过去的十几年中,荣耀负责或参与了十几个企业级应用的研发和实施,技术领域涉及 C++ 、 Delphi 、 .NET 、 Java 、 AJAX 、 Flex 、数据库、网络通讯等。他出版和发表了多部 IT 著译作品,包括《 C++ 模板元编程》、《 C 和 C++ 安全编程》、《 .NET 大局观》、《 C++ 必知必会》、《 Imperfect C++ 中文版》、《 Windows Forms 程序设计》以及《 C++ Templates 全览》等。