偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

陳皓:Why C++? 王者歸來

開發(fā)
因為又有人叫我去Quora的C2C站去回答問題了,這回是 關(guān)于 @laiyonghao 的這篇有點爭議的博文《2012 不宜進(jìn)入的三個技術(shù)點》ActionScript,Thread 和 C++, C++爭議的爭議最大。(要我說,.NET比C++更需要慎重進(jìn)入,呵)。我就在這里回復(fù)一下這個問題吧。

因為又有人叫我去Quora的C2C站去回答問題了,這回是 關(guān)于 @laiyonghao 的這篇有點爭議的博文《2012 不宜進(jìn)入的三個技術(shù)點》ActionScript,Thread 和 C++, C++爭議的爭議最大。(要我說,.NET比C++更需要慎重進(jìn)入,呵)。我就在這里回復(fù)一下這個問題吧。

正好我前段時間看到一個視頻,這個演講視頻還比較著名,這個演講者是Exceptional C++ 和 C++ Coding Standards 的作者,還是ISO C++ 委員會的Chair,C++/CLI首席架構(gòu)師,還是Microsoft的軟件架構(gòu)師,他叫Herb Sutter,他的這個演講視頻是 C++ and Beyond 2011上的一次公開演講,題目是——Why C++? (如果你覺得那里的視頻比較慢,你可以看優(yōu)酷上的視頻)(英文聽力好的同學(xué)可以看一樣,因為都沒有中文字幕)

我覺得這篇文章就足夠可以說明很多問題了,所以,我把Herb的演講幻燈片截了幾頁放到這里,并做上一些注釋,算是一個演講內(nèi)容摘要吧。

1) 為什么C++?因為 Performance per $,也就是說performance 就是錢,這個分成三個方面,

◆ 電源,芯片的耗電量,移動設(shè)備的耗電量,家用電腦的耗電量都和錢有關(guān)系。

◆ 資源,家用電腦和移動設(shè)備上的處理器資源有限,因為要讓一般消費者買的起。

◆ 體驗,在更小的設(shè)備上會有更好的體驗,有更好的體驗就可以掙更多的錢。

2)C++的進(jìn)化分成三個時代:

1979 – 1989:研究C的對象能力。主要是為C++做準(zhǔn)備

1989 – 1999:C++成了主流。

1999 – 2009:Coffee-based語言(Java, .NET)出現(xiàn)了,極大的提高了開發(fā)生產(chǎn)力。

對于第三個時代,Herb說了很多,他說這個并沒有什么錯,因為這個時候我們非常關(guān)注開發(fā)的生產(chǎn)力,這個非常重要,這就是為什么C++一下就失去優(yōu)勢的地方。但是是否這些Coffee-Based的語言可以做任重要的事呢?不行,很多時候,這是一個Trade-Off的事,也就是生產(chǎn)力不是免費的是需要你用別的東西去交換的。

3)第四個時期。

Herb認(rèn)為,2009-2019是第四個時期,因為我們又喜歡Native Code了,C++從被驅(qū)逐后又被請回來了。因為網(wǎng)站的性能越來越是個問題,移動端的設(shè)備非常流行。但主要是因為Performance就是錢,因為前面的三個因素,性能影響的是dollar,不尊重性能的公司都會發(fā)現(xiàn)花錢的速度太快了。(比如去年大家熱炒的京東促銷和12306.cn的問題,12306給整個社會造成了巨大的金錢浪費)

Herb把這個時期比做 The Return of the King。(指環(huán)王的第三部:王者歸來)

這就好像我在“軟件開發(fā)的三重門”里說的,開墾時代需要的是快和生產(chǎn)力,而開墾完后就得保證其穩(wěn)定性。

4)Herb還給了一張幻燈片問,“The World is built on ….”,后面例出了多個語言。然后Herb說,世界是由C和C++構(gòu)成的。

5)Herb給了一張表格,這張表可相當(dāng)形像。如果把我們的對編程語言的需求總結(jié)為四個:效率,靈活,抽象,生產(chǎn)率。那么,C語言玩的是前兩個,而C++玩的是前三個,Java和C#玩的是后兩個(抽象和生產(chǎn)率)

任保一種設(shè)計都不可能讓你什么都要的,這就是Trade-Off——什么事都需要交換的。

6)Herb舉了一個微軟內(nèi)的例子,用C++ 和 ATL 來開發(fā)IE工具條的報告,因為用.NET或是腳本有重大的limitation,也就是性能問題。

#p#

7)接下來,我們來看看移動設(shè)備。

下圖中,第一個是iOS,第二個是Android,第三個是WinPhone。Herd說了幾個事:

a)比Web APP,人們更喜歡Native的APP

b)iOS也好,Android也好,WinPhone也好,他們不是在搞操作系統(tǒng),而是在搞應(yīng)用,為的是讓智能手機更好。

c)這三個手機在第一片出來時都不支持C++,而第二版出來時都支持C++了。因為他們要兼顧性能和一定程度上的開發(fā)效率。WinPhone還沒有到第二版,讓我們拭目以待。(我以前寫過一篇調(diào)侃Android支持C++開發(fā)的文章,這也只是一年前的事,說明C++全面回歸了)

8)如果你還是不相信的話,我們可以看看為什么Apple和Google都在搞C++的編譯器,因為他們覺得G++性能不行。所以,基于LLVM的編譯器正在領(lǐng)導(dǎo)潮流,因為我們關(guān)注Natvie Code的性能優(yōu)化。

 

9)接下來,Herb說了一下數(shù)據(jù)中心,你知道數(shù)據(jù)中心最花錢的是什么嗎?三個事:

57%花在了硬件上。

18% 花在了配電和降溫上。

13%花在了耗電上。

88%的錢花在了硬件和電力上。這可是很大一筆費用啊。(還有人說硬件比軟件便宜嗎?)我記得我上一個公司的數(shù)據(jù)中心每年要花的電費就在百萬美元以上。

10)昨天在微博上有個笑話,說是某咨詢師要求程序員把代碼打印出來走查,程序員問是不是要用彩打?哈哈。我說,這至少不環(huán)保嘛。消耗太大了。是的,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年代開始有一半的投次到了抽象和生產(chǎn)率上。

00年代,完全都在抽象和生產(chǎn)率上。

10年代,80%的錢都要回頭來解決性能問題。這就是C/C++的王者歸來。

13)當(dāng)然,不是C++不注重 開發(fā)效率,看看C++0X的標(biāo)準(zhǔn)引入了多少東西我們就知道了。但是本質(zhì)上,C++還是致力于性能和抽象的完全平衡。

那么,我們還會覺得C++要被淘汰了,不適合進(jìn)入了嗎?

后面講了C++的文藝復(fù)興,你可以在Google 搜索 “C++ Renaissance”看看。另外,該視頻的講議可以在這里下載。

原文:http://www.oschina.net/news/25266/why-c-back

作者:陳皓

【編輯推薦】

  1. C++數(shù)據(jù)結(jié)構(gòu)之單鏈表
  2. 2011年12月編程語言排行榜:C++11它就像一個新語言
  3. Dart之于JavaScript正如C#之于C++
  4. 詳解C++11中值得關(guān)注的幾大變化
  5. C++程序員必讀:讓你的代碼更強大
責(zé)任編輯:陳貽新 來源: 酷殼
相關(guān)推薦

2013-07-25 10:28:46

加班工作效率職場

2012-06-21 09:43:45

2012-07-16 01:20:09

代碼效率

2014-06-12 08:53:01

團隊團隊效率

2011-04-02 11:41:40

Windows Emb嵌入式開發(fā)

2012-05-15 11:31:51

Ubuntu操作系統(tǒng)

2009-11-04 09:08:20

Windows 7系統(tǒng)特性

2012-09-03 13:51:43

測試軟件測試單元測試

2012-07-25 10:16:59

2012-12-26 09:51:52

C++開發(fā)者C++ CX

2014-02-24 10:45:00

2012-04-27 10:24:07

2009-04-08 08:52:33

2011-06-28 09:58:33

Windows 8微軟

2014-07-02 17:36:24

ThinkServerTS540單路

2020-07-17 09:33:39

CPU內(nèi)存調(diào)度

2012-10-15 16:13:29

2012年度IT博客大陳皓

2012-01-16 09:58:26

2014-04-15 10:13:01

2012-08-02 09:36:58

fork面試題
點贊
收藏

51CTO技術(shù)棧公眾號