新聞中心
有人說C++程序是個強大的語言,可以用于做別的語言做不了的工作,但是有人也說C++語言發(fā)展到現(xiàn)在,還是以C語言作為模板進化升級而成,C++程序在性能方面最大的威脅可能來自硬件帶來的問題。

路南網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應式網(wǎng)站建設(shè)公司等網(wǎng)站項目制作,到程序開發(fā),運營維護。創(chuàng)新互聯(lián)從2013年開始到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)。
在計算機行業(yè),50年已經(jīng)是一個幾乎不可思議的時間了;雖然到今年為止,晶體管已有60年的歷史。所以,在我問“C++的未來在哪里?”這個問題的時候,實際上是想問在接下來的10年,20年或者30年,C++會有什么變化?
在文章中,Stephan引經(jīng)據(jù)典,提到了Bjarne Stroustrup發(fā)布的一篇關(guān)于C++程序的論文,和Alexander Stepanov關(guān)于C++底層機器模型的訪談。然后他指出,盡管C++作為一門語言一直關(guān)注性能的問題。
但根據(jù)Herb Sutter在2005年發(fā)表的一篇關(guān)于并發(fā)的趨勢以及語言必須演進以迎接這些挑戰(zhàn)的論文,由于工藝的限制,底層硬件的發(fā)展現(xiàn)在處于一個不穩(wěn)定的狀態(tài)。Stephan說:在C++改變最大的核心語言屬性列表中,應該包括可變參數(shù)模板(Variadic Template)、概念和左值引用(rvalue reference)等。
前兩個會使得寫模板更加有趣,這當然很好,因為模板是生產(chǎn)高效代碼的一個很有力的方法。另外第三個主要面向C++03中最為薄弱的領(lǐng)域之一——復制數(shù)值的趨勢。一個叫Jared的評論者也同意Stephan的觀點,但對.NET能否像C++那么長盛不衰,沒有太大的信心:
說得好,但是我相信C++會一直興盛到2057年。實際上我認為C++會比.NET撐得更久。(我認為.NET最終會因為市場驅(qū)動而成為一個技術(shù)實體,但不好說)Jim Grow不同意關(guān)于托管C++沒有像其他.NET語言引起別人注意的論點:看上去C++程序?qū)淮蛉肜鋵m,只有幾個頑固不化的分子堅守陣地。
大部分人都已轉(zhuǎn)投.NET編碼陣營。因為C++和現(xiàn)代的工具集那么地不合拍,公司和開發(fā)人員在無路可走的時候才會選擇它。真的好慘,C++本來可以使.NET平臺上的一個非常優(yōu)秀的語言??杀厥牵行┤藚s別有動機,說.NET開發(fā)人員都在使用其他的語言。
Olivier Giroux擔憂的是C++內(nèi)存模型在未來的表現(xiàn):在單個芯片里同時運行100多個線程的性能,和只運行2到8個的情況是非常不同的,盡管你知道將來的趨勢是可以做到的。因為有足夠多的線程同時運行,指令就非常充足,你可以將已有的指令全都塞滿。很快,阿姆達爾定律(譯者注:該定律指出在體系結(jié)構(gòu)的優(yōu)化設(shè)計過程中。
應該挑選對整體有重大影響的部件來進行優(yōu)化,以得到更好的結(jié)果。)就把你牢牢拴在內(nèi)存接口處。在過去,我們用緩存設(shè)計解決這樣的問題,但那要比一個超線程負載需要更多的分部一致性。#t#
所以,C++在性能方面最大的威脅可能來自硬件,因為通過C++程序現(xiàn)在提供的內(nèi)存模型還不容易對其進行相應的編程工作。那么InfoQ中文站的讀者對于C++作為一門語言的前景是如何理解的呢?它是會繼續(xù)昂首上前,還是即將輝煌不再?
C++是個強大的語言,可以用于做別的語言做不了的工作。但是,這種強大功能是有代價的。開始使用C++時,你可能會遇到內(nèi)存溢出和訪問失效等問題,使程序死機。這里用最簡短的篇幅介紹C++程序基礎(chǔ)。
C++語言本身有專著介紹,這種書還特別厚,所以別指望我能用三言兩語說清楚。讀者學完本書并使用C++ Builder一般時間之后,最后對C++語言再作更深入的了解。 C++可以最充分地利用面向?qū)ο缶幊?OOP)的優(yōu)勢。
OOP不只是一個新名詞,而有它的實際意義,可以生成可復用的對象。新術(shù)語 對象(object),和前面介紹的構(gòu)件一樣,是完成特定編程任務的軟件塊(構(gòu)件是對象,但對象不全是構(gòu)件,稍后會解釋這點)。
對象只向用戶(使用對象的編程人員)顯示必須的部分,從而簡化對象的使用。用戶不必知道的所有內(nèi)部機制都隱藏在幕后。這一切都包括在面向?qū)ο缶幊痰母拍钪?。OOP可以用模塊化方法進行編程,從而避免每次從頭開始。C++ Builder程序是面向OOP的,因為C++ Builder大量使用構(gòu)件。
生成構(gòu)件后(你生成的或C++ Builder內(nèi)置的構(gòu)件),就可以在任何C++ Builder程序中重復使用。構(gòu)件還可以擴展,通過繼承生成具有新功能的新構(gòu)件。最妙的是,構(gòu)件隱藏了所有內(nèi)容細節(jié),使編程人員能集中精力充分利用構(gòu)件。
【編輯推薦】
- 簡介學習C++總結(jié)之談
- 對C++庫函數(shù)進行學習探索總結(jié)筆記
- C++類庫設(shè)計的基本構(gòu)思與方法
- C++語言真的還有市場價值?
- C++類庫設(shè)計的基本構(gòu)思與方法
當前文章:C++程序與C語言誰更強大?
路徑分享:http://m.fisionsoft.com.cn/article/cocegec.html


咨詢
建站咨詢
