编程即修行

《The design and evolution of c++》札记

1# The prehistory of c++史前时代
*离开剑桥后,作者发誓:没有合适工具的情况下绝不去冲击一个问题。
*作者的世界观影响c++:bs是实用主义者,硕士是纯数学与应用数学,数学应该是解决问题的工具,对计算机的兴趣也是务实的。长期爱好的历史,喜欢亚里士多德胜过柏拉图。
*c++的许多设计决策源于我对强迫个人按某种特定方式行事的极度厌恶。尊重人群而不尊重个人实际上是什么也不尊重。
*对文学的热爱增强了作者的认识:仅凭理论和逻辑做决策是没有希望的。人的代价总是最高的,不同的人按不同的方式做事,容忍和接受这种情况是我最愿意的事情。
*我喜欢怀疑论者,而不是“真诚的信徒”。
*我认为科学家和知识分子的责任是保证他们的思想可以被公众接受,从而对社会有用,而不是为了做出一些专家的玩物。
*人的思维方式是如此丰富多彩,c++被有意设计成支持多种多样的风格。
*一种程序设计语言只是世界中微乎其微的一部分,不要看的太重,重要的是要维持自己的幽默感,c++在众多语言中具有俏皮话和玩笑的语言之一,者并不是偶然。

2# C with classes
*c++的class是用户自定义类型,为什么我们不直接称他为type呢,选用class的原因是我不想发明新术语,simula的术语都很合适。
*栈上创建对象比堆上创建对象的效率高的多。
*In particular,Steve Johnson and Dennis Ritchie affirmed that C was intended to have name equivalence rather than structural equivalence.For example:
struct A{intx,y;};
struct B{intx,y;};
defines two incompatible types A and B.
我喜欢名字等价胜过结构等价,因为我觉得这是最安全和最清晰的模型
*为什么c++的this是指针而不是引用,为什么是this而不是self?因为那时c++还没有引用机制,c++是从simula而不是smalltalk那里借用的术语。
*我一直这样的观点:人们过分关注语法问题而损害了类型问题

3# The Birth of C++
*c++的名字是Rick Mascitti建议的。
*我认为运算符重载是c++里最主要的一种财富
*explicit的构造函数只能用于显式的对象构造,不能用于隐式转换。例如:
explicit vector(int);
v = 7;//error
v = vector(7)//ok

后面的内容比较长,没细看,现在也没做C++开发了,以后有机会再看吧。C++被设计成今天这个样子,看完本书会发现,BS对开发者很尊重,C++支持多种范式,不同的人不同的风格。C++11之后,写起来也更顺手了,有写脚本语言的顺手感,同时又有编译型语言的优点。虽然跟Java,C#比起来,开发效率差一些,但大型项目里,C++的综合能力占优。总之,这是一本很值得看的书。

2
评论一下

avatar
1 Comment threads
1 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
2 Comment authors
liangAce Recent comment authors
  Subscribe  
最新 最旧 得票最多
提醒
Ace
游客
Ace

好文艺的气息,编程重在思想,重在剑意,不在招式, 进来第一第一句好惊喜 编程即修行
好稀饭