自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

C++程序與C語(yǔ)言誰(shuí)更強(qiáng)大?

開(kāi)發(fā) 后端
許多編程人員學(xué)習(xí)C++程序總結(jié)經(jīng)驗(yàn)為,有的覺(jué)得C++語(yǔ)言是一門獨(dú)立的語(yǔ)言,并不是在C語(yǔ)言的基礎(chǔ)上,可以直接學(xué)習(xí)C++不必先從C下手。

有人說(shuō)C++程序是個(gè)強(qiáng)大的語(yǔ)言,可以用于做別的語(yǔ)言做不了的工作,但是有人也說(shuō)C++語(yǔ)言發(fā)展到現(xiàn)在,還是以C語(yǔ)言作為模板進(jìn)化升級(jí)而成,C++程序在性能方面最大的威脅可能來(lái)自硬件帶來(lái)的問(wèn)題。

在計(jì)算機(jī)行業(yè),50年已經(jīng)是一個(gè)幾乎不可思議的時(shí)間了;雖然到今年為止,晶體管已有60年的歷史。所以,在我問(wèn)“C++的未來(lái)在哪里?”這個(gè)問(wèn)題的時(shí)候,實(shí)際上是想問(wèn)在接下來(lái)的10年,20年或者30年,C++會(huì)有什么變化?

在文章中,Stephan引經(jīng)據(jù)典,提到了Bjarne Stroustrup發(fā)布的一篇關(guān)于C++程序的論文,和Alexander Stepanov關(guān)于C++底層機(jī)器模型的訪談。然后他指出,盡管C++作為一門語(yǔ)言一直關(guān)注性能的問(wèn)題。

但根據(jù)Herb Sutter在2005年發(fā)表的一篇關(guān)于并發(fā)的趨勢(shì)以及語(yǔ)言必須演進(jìn)以迎接這些挑戰(zhàn)的論文,由于工藝的限制,底層硬件的發(fā)展現(xiàn)在處于一個(gè)不穩(wěn)定的狀態(tài)。Stephan說(shuō):在C++改變最大的核心語(yǔ)言屬性列表中,應(yīng)該包括可變參數(shù)模板(Variadic Template)、概念和左值引用(rvalue reference)等。

前兩個(gè)會(huì)使得寫模板更加有趣,這當(dāng)然很好,因?yàn)槟0迨巧a(chǎn)高效代碼的一個(gè)很有力的方法。另外第三個(gè)主要面向C++03中最為薄弱的領(lǐng)域之一——復(fù)制數(shù)值的趨勢(shì)。一個(gè)叫Jared的評(píng)論者也同意Stephan的觀點(diǎn),但對(duì).NET能否像C++那么長(zhǎng)盛不衰,沒(méi)有太大的信心:

說(shuō)得好,但是我相信C++會(huì)一直興盛到2057年。實(shí)際上我認(rèn)為C++會(huì)比.NET撐得更久。(我認(rèn)為.NET最終會(huì)因?yàn)槭袌?chǎng)驅(qū)動(dòng)而成為一個(gè)技術(shù)實(shí)體,但不好說(shuō))Jim Grow不同意關(guān)于托管C++沒(méi)有像其他.NET語(yǔ)言引起別人注意的論點(diǎn):看上去C++程序將會(huì)被打入冷宮,只有幾個(gè)頑固不化的分子堅(jiān)守陣地。

大部分人都已轉(zhuǎn)投.NET編碼陣營(yíng)。因?yàn)?FONT size=+0>C++和現(xiàn)代的工具集那么地不合拍,公司和開(kāi)發(fā)人員在無(wú)路可走的時(shí)候才會(huì)選擇它。真的好慘,C++本來(lái)可以使.NET平臺(tái)上的一個(gè)非常優(yōu)秀的語(yǔ)言。可悲地是,有些人卻別有動(dòng)機(jī),說(shuō).NET開(kāi)發(fā)人員都在使用其他的語(yǔ)言。

Olivier Giroux擔(dān)憂的是C++內(nèi)存模型在未來(lái)的表現(xiàn):在單個(gè)芯片里同時(shí)運(yùn)行100多個(gè)線程的性能,和只運(yùn)行2到8個(gè)的情況是非常不同的,盡管你知道將來(lái)的趨勢(shì)是可以做到的。因?yàn)橛凶銐蚨嗟木€程同時(shí)運(yùn)行,指令就非常充足,你可以將已有的指令全都塞滿。很快,阿姆達(dá)爾定律(譯者注:該定律指出在體系結(jié)構(gòu)的優(yōu)化設(shè)計(jì)過(guò)程中。

應(yīng)該挑選對(duì)整體有重大影響的部件來(lái)進(jìn)行優(yōu)化,以得到更好的結(jié)果。)就把你牢牢拴在內(nèi)存接口處。在過(guò)去,我們用緩存設(shè)計(jì)解決這樣的問(wèn)題,但那要比一個(gè)超線程負(fù)載需要更多的分部一致性。#t#

所以,C++在性能方面最大的威脅可能來(lái)自硬件,因?yàn)橥ㄟ^(guò)C++程序現(xiàn)在提供的內(nèi)存模型還不容易對(duì)其進(jìn)行相應(yīng)的編程工作。那么InfoQ中文站的讀者對(duì)于C++作為一門語(yǔ)言的前景是如何理解的呢?它是會(huì)繼續(xù)昂首上前,還是即將輝煌不再?

C++是個(gè)強(qiáng)大的語(yǔ)言,可以用于做別的語(yǔ)言做不了的工作。但是,這種強(qiáng)大功能是有代價(jià)的。開(kāi)始使用C++時(shí),你可能會(huì)遇到內(nèi)存溢出和訪問(wèn)失效等問(wèn)題,使程序死機(jī)。這里用最簡(jiǎn)短的篇幅介紹C++程序基礎(chǔ)。

C++語(yǔ)言本身有專著介紹,這種書(shū)還特別厚,所以別指望我能用三言兩語(yǔ)說(shuō)清楚。讀者學(xué)完本書(shū)并使用C++ Builder一般時(shí)間之后,最后對(duì)C++語(yǔ)言再作更深入的了解。 C++可以最充分地利用面向?qū)ο缶幊?OOP)的優(yōu)勢(shì)。

OOP不只是一個(gè)新名詞,而有它的實(shí)際意義,可以生成可復(fù)用的對(duì)象。新術(shù)語(yǔ) 對(duì)象(object),和前面介紹的構(gòu)件一樣,是完成特定編程任務(wù)的軟件塊(構(gòu)件是對(duì)象,但對(duì)象不全是構(gòu)件,稍后會(huì)解釋這點(diǎn))。

對(duì)象只向用戶(使用對(duì)象的編程人員)顯示必須的部分,從而簡(jiǎn)化對(duì)象的使用。用戶不必知道的所有內(nèi)部機(jī)制都隱藏在幕后。這一切都包括在面向?qū)ο缶幊痰母拍钪小OP可以用模塊化方法進(jìn)行編程,從而避免每次從頭開(kāi)始。C++ Builder程序是面向OOP的,因?yàn)?FONT size=+0>C++ Builder大量使用構(gòu)件。

生成構(gòu)件后(你生成的或C++ Builder內(nèi)置的構(gòu)件),就可以在任何C++ Builder程序中重復(fù)使用。構(gòu)件還可以擴(kuò)展,通過(guò)繼承生成具有新功能的新構(gòu)件。最妙的是,構(gòu)件隱藏了所有內(nèi)容細(xì)節(jié),使編程人員能集中精力充分利用構(gòu)件。

【編輯推薦】

  1. 簡(jiǎn)介學(xué)習(xí)C++總結(jié)之談
  2. 對(duì)C++庫(kù)函數(shù)進(jìn)行學(xué)習(xí)探索總結(jié)筆記
  3. C++類庫(kù)設(shè)計(jì)的基本構(gòu)思與方法
  4. C++語(yǔ)言真的還有市場(chǎng)價(jià)值?
  5. C++類庫(kù)設(shè)計(jì)的基本構(gòu)思與方法
責(zé)任編輯:chenqingxiang 來(lái)源: ZDNET
相關(guān)推薦

2010-05-25 13:36:16

C#C++

2011-07-20 09:11:58

C++

2020-09-22 15:29:03

UnixC++C

2010-01-15 17:38:37

C++語(yǔ)言

2010-01-11 11:09:10

C++語(yǔ)法

2010-01-28 10:33:10

C++開(kāi)發(fā)程序

2010-01-14 13:24:49

CC++語(yǔ)言

2011-05-24 17:20:57

程序員

2010-01-14 18:07:30

C++語(yǔ)言

2010-01-12 17:55:03

C++程序

2010-01-14 10:34:02

C++語(yǔ)言

2010-01-13 17:04:36

C++語(yǔ)言

2010-01-14 10:23:08

C++語(yǔ)言

2010-01-26 10:27:43

C++語(yǔ)言

2010-01-21 16:08:26

C++語(yǔ)言

2009-06-15 11:03:10

Java語(yǔ)言C#語(yǔ)言

2011-01-05 11:12:34

C++

2021-02-26 10:41:59

C++程序員代碼

2010-03-09 19:39:37

python程序調(diào)試

2017-01-11 14:38:39

編程語(yǔ)言Java
點(diǎn)贊
收藏

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