程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> C++程序與C語言誰更強大?

C++程序與C語言誰更強大?

編輯:C++入門知識

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

在計算機行業,50年已經是一個幾乎不可思議的時間了;雖然到今年為止,晶體管已有60年的歷史。所以,在我問“C++的未來在哪裡?”這個問題的時候,實際上是想問在接下來的10年,20年或者30年,C++會有什麼變化?

在文章中,Stephan引經據典,提到了Bjarne Stroustrup發布的一篇關於C++程序的論文,和Alexander Stepanov關於C++底層機器模型的訪談。然後他指出,盡管C++作為一門語言一直關注性能的問題。

但根據Herb Sutter在2005年發表的一篇關於並發的趨勢以及語言必須演進以迎接這些挑戰的論文,由於工藝的限制,底層硬件的發展現在處於一個不穩定的狀態。Stephan說:在C++改變最大的核心語言屬性列表中,應該包括可變參數模板(Variadic Template)、概念和左值引用(rvalue reference)等。

前兩個會使得寫模板更加有趣,這當然很好,因為模板是生產高效代碼的一個很有力的方法。另外第三個主要面向C++03中最為薄弱的領域之一——復制數值的趨勢。一個叫Jared的評論者也同意Stephan的觀點,但對.NET能否像C++那麼長盛不衰,沒有太大的信心:

說得好,但是我相信C++會一直興盛到2057年。實際上我認為C++會比.NET撐得更久。(我認為.NET最終會因為市場驅動而成為一個技術實體,但不好說)Jim Grow不同意關於托管C++沒有像其他.NET語言引起別人注意的論點:看上去C++程序將會被打入冷宮,只有幾個頑固不化的分子堅守陣地。

大部分人都已轉投.NET編碼陣營。因為C++和現代的工具集那麼地不合拍,公司和開發人員在無路可走的時候才會選擇它。真的好慘,C++本來可以使.NET平台上的一個非常優秀的語言。可悲地是,有些人卻別有動機,說.NET開發人員都在使用其他的語言。

Olivier Giroux擔憂的是C++內存模型在未來的表現:在單個芯片裡同時運行100多個線程的性能,和只運行2到8個的情況是非常不同的,盡管你知道將來的趨勢是可以做到的。因為有足夠多的線程同時運行,指令就非常充足,你可以將已有的指令全都塞滿。很快,阿姆達爾定律(譯者注:該定律指出在體系結構的優化設計過程中。

應該挑選對整體有重大影響的部件來進行優化,以得到更好的結果。)就把你牢牢拴在內存接口處。在過去,我們用緩存設計解決這樣的問題,但那要比一個超線程負載需要更多的分部一致性。

  • C++兼容性真的很差嗎
  • VC++開發平台學習之談
  • 關於C++復雜性問題解析
  • 學習C++語言總結之談
  • 優秀的面向對象的設計語言——C++語言

所以,C++在性能方面最大的威脅可能來自硬件,因為通過C++程序現在提供的內存模型還不容易對其進行相應的編程工作。那麼InfoQ中文站的讀者對於C++作為一門語言的前景是如何理解的呢?它是會繼續昂首上前,還是即將輝煌不再?

C++是個強大的語言,可以用於做別的語言做不了的工作。但是,這種強大功能是有代價的。開始使用C++時,你可能會遇到內存溢出和訪問失效等問題,使程序死機。這裡用最簡短的篇幅介紹C++程序基礎。

C++語言本身有專著介紹,這種書還特別厚,所以別指望我能用三言兩語說清楚。讀者學完本書並使用C++ Builder一般時間之後,最後對C++語言再作更深入的了解。 C++可以最充分地利用面向對象編程(OOP)的優勢。

OOP不只是一個新名詞,而有它的實際意義,可以生成可復用的對象。新術語 對象(object),和前面介紹的構件一樣,是完成特定編程任務的軟件塊構件是對象,但對象不全是構件,稍後會解釋這點)。

對象只向用戶使用對象的編程人員)顯示必須的部分,從而簡化對象的使用。用戶不必知道的所有內部機制都隱藏在幕後。這一切都包括在面向對象編程的概念中。OOP可以用模塊化方法進行編程,從而避免每次從頭開始。C++ Builder程序是面向OOP的,因為C++ Builder大量使用構件。

生成構件後你生成的或C++ Builder內置的構件),就可以在任何C++ Builder程序中重復使用。構件還可以擴展,通過繼承生成具有新功能的新構件。最妙的是,構件隱藏了所有內容細節,使編程人員能集中精力充分利用構件。

  1. 簡介學習C++總結之談
  2. 對C++庫函數進行學習探索總結筆記
  3. C++類庫設計的基本構思與方法
  4. C++語言真的還有市場價值?
  5. C++類庫設計的基本構思與方法

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved