因为又有人叫我去Quora的C2C站去回答问题了,这回是 关于 《2012 不宜进入的三个技术点ActionScript,Thread 和 C++, C++争议的争议最大。(要我说,.NET比C++更需要慎重进入,呵)。我就在这里回复一下这个问题吧。

正好我前段时间看到一个视频,这个演讲视频还比较著名,这个演讲者是Exceptional C++ 和 C++ Coding Standards 的作者,还是ISO C++ 委员会的Chair,C++/CLI首席架构师,还是Microsoft的软件架构师,他叫Herb Sutter,他的这个演讲视频是 C++ and Beyond 2011上的一次公开演讲,题目是——Why C++?
我觉得这篇文章就足够可以说明很多问题了,所以,我把Herb的演讲幻灯片截了几页放到这里,并做上一些注释,算是一个演讲内容摘要吧。

1) 为什么C++?因为 Performance per $,也就是说performance 就是钱,这个分成三个方面,

◆ 电源,芯片的耗电量,移动设备的耗电量,家用电脑的耗电量都和钱有关系。

◆ 资源,家用电脑和移动设备上的处理器资源有限,因为要让一般消费者买的起。

◆ 体验,在更小的设备上会有更好的体验,有更好的体验就可以挣更多的钱。

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工具条的报告,因为用.NET或是脚本有重大的limitation,也就是性能问题。

7)接下来,我们来看看移动设备。

下图中,第一个是iOS,第二个是Android,第三个是WinPhone。Herd说了几个事:

a)比Web APP,人们更喜欢Native的APP

b)iOS也好,Android也好,WinPhone也好,他们不是在搞操作系统,而是在搞应用,为的是让智能手机更好。

c)这三个手机在第一片出来时都不支持C++,而第二版出来时都支持C++了。因为他们要兼顾性能和一定程度上的开发效率。WinPhone还没有到第二版,让我们拭目以待。(我以前写过一篇调侃Android支持C++开发的文章,这也只是一年前的事,说明C++全面回归了)

8)如果你还是不相信的话,我们可以看看为什么Apple和Google都在搞C++的编译器,因为他们觉得G++性能不行。所以,基于LLVM的编译器正在领导潮流,因为我们关注Natvie Code的性能优化。
 

9)接下来,Herb说了一下数据中心,你知道数据中心最花钱的是什么吗?三个事:

57%花在了硬件上。

18% 花在了配电和降温上。

13%花在了耗电上。

88%的钱花在了硬件和电力上。这可是很大一笔费用啊。(还有人说硬件比软件便宜吗?)我记得我上一个公司的数据中心每年要花的电费就在百万美元以上。

10)昨天在微博上有个笑话,说是某咨询师要求程序员把代码打印出来走查,程序员问是不是要用彩打?哈哈。我说,这至少不环保嘛。消耗太大了。是的,C++是可以省电的,以及于C++之父都在YouTube 说C++是可以减轻全球变暖的问题。哇,C++开始真正造福人类了。

11)我还需要重温一下老大的这句话——

My contribution to the fight against global warming is C++’s efficiency: Just think if Google had to have twice as many server farms! Each uses as much energy as a small town. And it’s not just a factor of two… Efficiency is not just running fast or running bigger programs, it’s also running using less resources.

Bjarne Stroustrup, June 2011

最后一句说的非常好!效率不仅仅只是跑得,跑得多,更是可以使用更少的资源。

12)下面让我们再来看一张表,一张把钱投到哪里的表格。

70年代80年代,资源不够,主要是把钱投在性能上。

80年代到90代,主要是90年代开始有一半的投次到了抽象和生产率上。

00年代,完全都在抽象和生产率上。

10年代,80%的钱都要回头来解决性能问题。这就是C/C++的王者归来。

13)当然,不是C++不注重 开发效率,看看C++0X的标准引入了多少东西我们就知道了。但是本质上,C++还是致力于性能和抽象的完全平衡。

那么,我们还会觉得C++要被淘汰了,不适合进入了吗?

后面讲了C++的文艺复兴,你可以在Google 搜索 “C++ Renaissance”看看。

养成励志的习惯,一生励志

22本经典英语口语教程  

技术开发海量资料下载导航

30本经典Linux学习和开发教程和资料 

15本经典C、C++、MFC、VC++教程

10本经典Java教程

15本经典Android教程和海量Android源码

转载于:https://www.cnblogs.com/javaTest/archive/2012/02/05/2589287.html

C++的文艺复兴: Why C++? 王者归来相关推荐

  1. C++ 专题:陈皓:Why C++? 王者归来

    一样工具,你不必刻意去掌握它:到了非用它不可的时候,你已经必然会用了: 原文链接:http://developer.51cto.com/art/200709/56340.htm 因为又有人叫我去Quo ...

  2. Why C++?王者归来

    因为又有人邀请我去Quora的C2C网站去回答问题去了,这回是 关于 @laiyonghao 的这篇有点争议的博文<2012 不宜进入的三个技术点>ActionScript,Thread ...

  3. Why C++ ? 王者归来

    http://coolshell.cn/articles/6548.html/comment-page-1 因为又有人邀请我去Quora的C2C网站去回答问题去了,这回是 关于 @laiyonghao ...

  4. 【转】Why C++ ? 王者归来

    来源:转自酷壳网 网址:http://coolshell.cn/articles/6548.html 文章原文: 因为又有人邀请我去Quora的C2C网站去回答问题去了,这回是 关于 @laiyong ...

  5. 酷壳网陈皓:Why C++?王者归来

    导读:此前,CSDN的一名博主赖勇浩发表了一篇博客<2012不宜进入的三个技术点>,文中提到ActionScript,Thread和C++,其中C++争议最大.对此,酷壳网陈皓发表了自己的 ...

  6. java王者归来pdf_《JAVA WEB整合开发王者归来》刘京华.pdf

    全书分为9篇,内容层次清晰,难度循序渐进.第1篇为入门篇,内容包括JavaWeb开发概述等:第2篇为基础篇,内容包括Servlet技术.JSP技术.会话跟踪.过滤器Filter.监听器Listener ...

  7. 神秘AI换脸软件入侵全球社交网络!马斯克秒变文艺复兴贵族

    来自:新智元 FaceApp的热度刚过不久,近期又有一款让你的脸秒变「迪士尼」的App火遍了全球的社交网络. 要测试「AI换脸」的效果,怎么能少了我们的老朋友LeCun. 实测效果还不错,确实有一丝丝 ...

  8. 《Ajax实战》三部曲之“王者归来”

    <Ajax实战>三部曲之"王者归来" --<Ajax实战:实例详解> 推荐阅读:Ajax 2.0时代的王者 Web始终都是催生创新的温床,在它不长的历史里, ...

  9. 效果超赞服务器挤爆!用GAN生成人像油画火了,带你一秒回到文艺复兴

    鱼羊 栗子 发自 凹非寺  量子位 报道 | 公众号 QbitAI 给GAN一张照片,它就能带你回到文艺复兴,变成一张画像. 不,是,风,格,迁,移.画是GAN自己画的. 你看,穿格子衫的伍迪·艾伦, ...

最新文章

  1. python十进制小数转二进制_python十进制和二进制的转换方法(含浮点数)
  2. wannacry作者捉到了吗_不会阅读空气是情商低吗?如何提升自己的情商?
  3. 表的插入、更新、删除、合并操作_2_插入含自增列的记录
  4. Windows平台下 vscode清理Java工程项目的缓存、相关快捷键设置
  5. lodash 数组元素查找 findIndex
  6. mongo php update 写法,mongodb update 字符 操作
  7. nginx https透明代理_Nginx反向代理https,配置lets-encrypt证书教程
  8. MySQL的timestamp类型自动更新问题
  9. 苹果开发者修改团队名称_鼓励您的团队对项目进行更改的5步计划
  10. Eclipse中的Git使用之Branch创建,Merge
  11. 国产6678开发记录
  12. 据说《算法设计》是算法界三大圣经之一,你读这本书了没?
  13. Linux Mii management/mdio子系统分析之四 mdio总线及phy驱动模型及其开发流程
  14. 一元四次方程欧拉解法的证明
  15. 数据分析报告怎么写?
  16. 笔记:戴蒙德模型中的折旧
  17. RTFM:腾讯微信公众号H5页面使用微信支付爬坑记
  18. diskman DiskGenius 恢复windows管理中删除分区数据
  19. 项目管理关键路径确定方法
  20. 2014年10月23日(账本软件)

热门文章

  1. 如何判断exe文件是debug还是release编译生成的
  2. brew下载的mysql卸载_Mac中mongoDB的安装与卸载步骤详解
  3. python求阶乘之和_python计算阶乘前n项和
  4. 单片机sleep函数的头文件_单片机代码模块化设计思想浅谈
  5. 计算机系统的指令系统,计算机指令系统指的是什么呢?
  6. 为什么在极端恶劣环境下不能使用商用以太网交换机?
  7. 什么是自愈环网光端机?
  8. poe交换机标准与非标准的区别介绍
  9. PoE交换机不供电了该怎么办?
  10. [渝粤教育] 潍坊职业学院 化工安全技术 参考 资料