一个月前看到一个视频,这个演讲视频还比较著名,这个演讲者是 *Exceptional C++ * 和 C++ Coding Standards 的作者,还是ISO C++ 委员会的Chair,C++/CLI首席架构师,还是Microsoft的软件架构师,他叫 Herb Sutter ,他的这个演讲视频是 C++ and Beyond 201 上的一次公开演讲,题目是—— Why C++?
于是,我把Herb的演讲幻灯片截了几页放到这里,并做上少量注释,算是一个演讲内容摘要吧。
【文章福利】:小编有自己的学习交流群的728483370!进群可以免费领取学习资料!零基础教学视频 零基础学习书籍等资料!以及问题解答
1.为什么C++?
由于 Performance per $,也就是说performance 就是钱,这个分成三个方面:
耗电,芯片的耗电量,移动设施的耗电量,家用电脑的耗电量都和钱有关系。
资源,家用电脑和移动设施上的解决器资源有限,由于要让一般消费者买的起。
体验,在更小的设施上会有更好的体验,有更好的体验即可以挣更多的钱。
移动设施上的耗电量相信誉过智能手机的人都知道吧,Android手机的耗电量实在是太大了。就算是iPhone在开启Wifi和3G的情况下耗电量也很快。
2.C++的进化分成三个时代:
1979 – 1989:研究C的对象能力。主要是为C++做准备
1989 – 1999:C++成了主流。
1999 – 2009:Coffee-based语言(Java, .NET)出现了,极大的提高了开发生产力。
对于第三个时代,Herb说了很多,他说这个并没有什么错,由于这个时候我们非常关注开发的生产力,这个非常重要,这就是为什么C++一下就失去优势的地方。但是能否这些Coffee-Based的语言可以做任重要的事呢?不行,很多时候,这是一个Trade-Off的事,也就是生产力不是免费的是需要你用别的东西去交换的。
3.第四个时期。
Herb认为,2009-2019是第四个时期,由于我们又喜欢Native Code了,C++从被驱逐后又被请回来了。由于网站的性能越来越是个问题,手机端的设施非常流行。但主要是由于Performance就是钱,由于前面的三个因素,性能影响的是dollar,不尊重性能的公司都会发现花钱的速度太快了。(比方去年大家热炒的京东促销和12306.cn的问题,12306给整个社会造成了巨大的金钱白费)
Herb把这个时期比做 The Return of the King。(指环王的第三部:王者归来) 性能为王!
4.Herb还给了一张幻灯片问,“The World is built on ….”,后面例出了多个语言。而后Herb说,世界是由C和C++构成的。
5.Herb给了一张表格,这张表可相当形像。假如把我们的对编程语言的需求总结为四个: 效率,灵活,笼统,生产率 。那么,C语言玩的是前两个,而C++玩的是前三个,Java和C#玩的是后两个(笼统和生产率)
任保一种设计都不可能让你什么都要的,这就是Trade-Off——什么事都需要交换的。
6.Herb举了一个微软内的例子,用C++ 和 ATL 来开发IE工具条的报告,意思是你可以用脚本在IE的工具条上加按钮,但是作者建议使用C++,由于用.NET或者是脚本有重大的limitation,尤其是性能上的问题。
7.接下来,我们来看看移动设施。
下图中,第一个是iOS,第二个是Android,第三个是WinPhone。Herd说了几个事:
比Web APP,人们更喜欢Native的APP,这个在用移动设施上可以得到验证。
iOS也好,Android也好,WinPhone也好,他们不是在搞操作系统,而是在搞应用,为的是让智能手机更好。手机就是一个App。
这三个手机在第一版出来时都不支持C++,而第二版出来时都支持C++了。由于他们要兼顾性能和肯定程度上的开发效率。WinPhone还没有到第二版,让我们拭目以待。(这也只是一年前的事,说明C++全面回归了)
8.假如你还是不相信的话,可以看看为什么Apple和Google都在搞C++的编译器,由于他们觉得g++性能不行。所以,基于LLVM的编译器正在领导潮流,由于我们关注Natvie Code的性能优化。
9.知道数据中心最花钱的是什么吗?三个事:
57% 花在了硬件上。
18% 花在了配电和降温上。
13% 花在了耗电上。
88%的钱花在了硬件和电力上。这可是很大一笔费用啊。(还有人说硬件比软件便宜吗?)我记得我上一个公司的数据中心每年要花的电费就在百万美元以上。
10.微博上有个笑话,说是某咨询师要求程序员把代码打印出来走查,程序员问是不是要用彩打?哈哈。我说,这至少不环保嘛。消耗太大了。是的,C++是可以省电的,以及于C++之父都在YouTube 说C++是可以减轻全球变暖的问题。哇,C++开始真正造福人类了。
11.我们再来看一张表,一张把钱投到哪里的表格,这样我们可以看到少量趋势。
70年代80年代,资源不够,主要是把钱投在性能上。
80年代到90代,主要是90年代开始有一半的投次到了笼统和生产率上。
00年代,完全都在笼统和生产率上。
10年代,80%的钱都要回头来处理性能问题。这就是C/C++的王者归来。
12.当然,不是C++不注重 开发效率,看看C++0X的标准引入了多少东西我们就知道了。但是本质上, C++还是致力于性能和笼统的完全平衡 。
本人自己学习C++也有很久啦!从各种渠道整理出来了许多感觉比较好的资料分享给大家!
需要下图资料
获取方式:增加QQ群:728483370 进群就可免费领取!