智者的眼光
——《C++语言的设计和演化》读书笔记(2)
我不得不佩服Stroustrup充满睿智的头脑:在80年代初,就设计出了那么多现代C++中所具备的特征:
● 类——目前几乎所有流行面向对象语言都有的元素,甚至关键字都差不多。
● 派生类(继承的体现,哪一个面向对象语言不具备继承的性质呢?)
● 公用/私用的访问控制(目前流行面向对象语言都具备的特征)
● 构造函数和析构函数(也是目前流行面向对象语言都具备的特征)
● 友员、内联、运算符重载(C++中不是经常遇到吗?别的语言不知道)
这些特征,在现在看起来是那么的平常,在任何一本介绍C++面向对象的书中都能查到,但在当时,我想是没有什么现成的可以参考的,有的可能就是早期的那些语言,也许有只言片语可以借鉴,但更多的是透过Stroustrup那富有灵气的头脑通过反复地实践探索出来的。他的设计是如此富有远见以至于到现在,我们所使用的语言中,处处都透着当年设计的气息。
Stroustrup的眼光还在于准确的把握了市场的需求,使得带类的C以及后来的C++能够比较快的被人们接受,广泛流传。首先,他知道拉拢甚至极力讨好C用户,因为当时有很多人用C,而且由于C的许多特性如C的灵活性、高效性、可用性以及可移植性使得Stroustrup决定在C的基础上加以扩充。这样,不仅C用户会比较容易接受,其他用户看到即有C的优点,又结合如Simula、Smalltalk等其他语言的优势后,也会转向使用带类的C的队伍中来。其次,他没有忘记在开拓语言优势的同时,保留原来一些语言的优点,只有这样,才有可能说服原来用惯了高效灵活的C的用户转而投奔到带类的C以及C++的怀抱中来。他没有把C++设计成一个完美的语言,而是尽量是语言贴近实际的应用,以完成实际项目为目的。
ps:第一章看起来还比较舒服,可第二章看起来怎么那么不顺呢?似乎裘老师翻译的某些关键字的适用性还有待商榷,比如inline(翻译成'在线')、constructor(翻译成'建构函数')等。