王者編程: 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,資料就在羣文件裏。

相關文章
相關標籤/搜索