《C++语言的设计和演化》

2017-02-11

  这本书是我非常推荐的一本,被我分级为A-class。前后读了好几遍,中英文的版本都看过。为了收藏,还从孔夫子旧书网购买了一本绝版的英文版,我非常喜欢。作者是C++语言之父 Bjarne Stroustrup,作者还有一本C++学习入门的书籍,也是非常经典的。这本书二十几年没有更新了,但是,你去阅读学习它,并不会感到有任何不妥。“作者综合性地论述了C++的历史和发展,C++中各种重要机制的本质意义和设计背景,这些机制的基本用途和使用方法,讨论了C++所适合的应用领域及其未来的发展前景。”(百科的介绍)
  作者站的很高,从历史讲起,讲他为什么这么设计语法,为什么有多重继承,怎么设计虚/纯虚函数,讲为什么接受命名空间、模版机制。C++的设计历经了二十余年,到现在依然还在不断的添加新的特性,虽然很小,C++中极其重要的模版机制是过了十年才进入C++的。C++的语法规则并不是很难,比常见的Python,JS,Java等语法解析规则稍微难一些而已。和学英语相比,那是差了一个档次吧。站的高度决定了能看到了路有多远。
  对C++的一些观点:
需要先学习C语言?
不需要,作者自己开篇就直接说了。
C++是过度设计了吗?
我不确定,但是,我倾向于认同vczh的回答[3],当我去用C++的时候,我总是使用到它刚好提供的那些功能。
C++是难以学习的语言吗?
我觉得不是。“难”与“不难”,只是一个词而已,是别人的评价,对于你而言,到底意味着什么呢?是智力不够,永远都学不会吗?是意志力不够,坚持不了那么长时间吗?那需要坚持多长时间呢?如果你是C++程序员,做相关的项目也会持续好几年吧,那这几年的时间都不够用来学习吗?
  C++的作者是正统的学者,而且是搞编程语言研究的学者,看看图灵奖获得者中搞计算机语言研究的人的比例就知道这个领域的工作有多么伟大,反观一些受吹捧的语言如Python,JavaScript,ruby,Go,作者都是工程背景,缺少做学术的背景,这些语言也有各自的小问题吧。C++作者曾写到过,他一直考虑的就是让编程语言在工程中好用,他并不是想要C++成为学术研究都语言,而是工业上的工具。
  仍然是建议阅读英文版的,你的思维,如同跨越了大洋,距离大师近了许多,就如同作者站在你的面前,滔滔不绝的讲述着。如果看着翻译版的,就如同你看不了实况足球,听着广播里的播音员在讲解一样。其中区别,只有亲身经历过,才能更加深刻。不算广告(没给我钱),孔夫子旧书网有卖的,很便宜,amazon海外也有,那就是单位从软妹币变美刀了。

  1. https://www.zhihu.com/question/30754616?sort=created
  2. https://www.zhihu.com/question/27172183
  3. https://www.zhihu.com/question/19794858/answer/18448868  
  4. https://book.douban.com/subject/1096216/

老笔记重发。

如果有任何意见,欢迎留言讨论。


[ 主页 ]
COMMENTS
POST A COMMENT

(optional)



(optional)