《The Design and Evolution of C ++》的中译本《C++语言--设计和演化》据说会在年底出
书名:《C++语言--设计和演化》
Rating: very good!
作者: Bjarne Stroustru
出版社:机械工业出版社
Reviewed by:陈贵敏
--------------------------------------------------------------------------------
C++语言的哲学与历史
——评《C++语言--设计和演化》
这是一部带有浓厚的哲学味道的计算机编程发展史。作者用深入浅出的哲学观点把你带入他的世界观,并让你亲身体验了C++的发展历史,让你感觉一切都那么自然、亲切。
提到这本《C++语言--设计和演化》,就不得不提作者本人――Bjarne Stroustrup,C++之父,贝尔实验室大规模程序研究中心的负责人。Bjarne Stroustrup长期主持着C++的设计工作,换句话说,是他掌握着C++的发展史。他的关于C++语言的最主要的著作还有:《C++程序设计语言》(The C++ Programming Language,Addison-Wesley)和他与Ellis,Margaret A合著的《The Annotated C++ Reference Manual》(Addison-Wesley,1990)。正如作者所言,这本《C++语言--设计和演化》是一份关于C++发展史的总结陈词,是作者近二十年来工作的总结,它记载了C++标准化的历程。
这绝不是一本教你如何编写代码的书,而且这也没有必要是这样一本书,因为你已经可以得到很多这样的书了。我们需要一个新的视角来看问题。就像作者说的那样,"有许多人也很想知道某个语言为什么会有它现在这个样子,以及它是怎样成为这个样子的",这有助于这些人更好的理解、运用一门语言。这就是本书的目的。本书还提供了有关各种重要设计决策的许多信息和讨论细节,同样也能增进专家们对问题的理解。本书在帮助人们深入理解C++语言方面的作用是不可替代的。它值得每个学习、使用和关注C++语言的专业工作者、科研人员、教师和学生阅读。当然,书中也不乏一些很少能接触到的概念以及技术,这也是值得我们去研究学习的。
贯穿于全文的是哲学理念,提出问题、思考问题、解决问题。作者是在讲述一门儿语言的(一个大的、前所未有的系统)缔造过程的思想精髓。在这样一个过程中,充满着难以决断的选择,"到底该不该这样做"、"怎样做更好些","有没有更好的解决方案"……这些作者基本上在书中都给出了自己的观点。
C++在整个发展的过程中,不断借鉴了其他面向对象语言的成功之处,比如说,向Simula借了new运算符,向BCPL借的是" //" 注释形式,Algol 68借了运算符重载、引用,向Ada借了模板、异常、名字空间,等等。而在此过程中,C++也在影响着其他语言的特性,标准C就向C++借鉴了不少新的思想!通过阅读此书,你会对各种面向对象语言有个全面的认识,而且,你也会对"怎样才能最好地使用C++"有更深入的体会。
全书共18章,分两大部分:
第一部分大致是按照事件顺序审视了C++的设计、演化、使用和标准化过程。其中第4章到第9章是关于哲学的讨论。
第二部分描述的是Release 1.0之后C++的发展。这里集中讨论了新特征和公认的高级特征方面,比如说多重继承、模板、异常等。
为了使读者能在阅读此书时有更大的自由度,作者尽量使各章在技术上独立,并在必要的地方采用交叉引用和索引项目。
这本书非常全面,非常权威,充满了技术性极强的材料。很多地方值得反复回味与思考。这本书虽然是一本语言发展历史的著作,但是处处反映出作者对于软件开发和程序设计的看法。所以书中的很多观点肯定会让你耳目一新!而且,我想作者的好些观点也是会深远地影响我们这一代青年人的,让我们走出浮躁,走出困惑!举个例子,作者常被要求做一些C++语言与其他语言的比较,但作者一直坚持"语言的比较很少是有意义的、更少是公平的"的观点;在国内,却经常有一些人大加比较各种语言的优劣长短,这是在是没有什么实际意义的事情,也是不负责任的表现。
最后一点需要提及的是,作为译作,难免会有一些译者个人的翻译习惯在里边。译者为了防止一些词语的翻译和习惯不吻合,特意加上了这些词的英文,方便了读者的阅读和理解。
--------------------------------------------------------------------------------
备注:此书还未出版,估计将在今年年底出版,敬请关注。