王者编程: Why C++?

序言

前几个月前看到一个视频,这个演讲视频还比较著名,这个演讲者是 *Exceptional C++ * 和 C++ Coding Standards 的做者,仍是ISO C++ 委员会的Chair,C++/CLI首席架构师,仍是Microsoft的软件架构师,他叫 Herb Sutter ,他的这个演讲视频是 C++ and Beyond 201 上的一次公开演讲,题目是—— Why C++?程序员

因而,我把Herb的演讲幻灯片截了几页放到这里,并作上一些注释,算是一个演讲内容摘要吧。编程

【文章福利】:小编有本身的学习交流群的967051845!进群能够免费领取学习资料!零基础教学视频 零基础学习书籍等资料!以及问题解答性能优化

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++要被淘汰了,不适合进入了吗?
福利

须要C/C++资料的朋友,由于平台不能发送文件,能够添加小编的学习交流群967051845,资料就在群文件里。

相关文章
相关标签/搜索