c++優勢

  Stephan Lavavej提出了一個非常有趣也很尖銳的問題:“C++的未來在哪裏?”

這個問題是有解的。沒有哪個語言會成爲永恆,不是嗎?(儘管C語言現在依舊生機勃勃)我不希望C++在2017年,或者甚至在2057年也依然那麼有活力。在計算機行業,50年已經是一個幾乎不可思議的時間了;雖然到07年爲止,晶體管已有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++在性能方面最大的威脅可能來自硬件,因爲通過C++現在提供的內存模型還不容易對其進行相應的編程工作。

那麼,您對於C++作爲一門語言的前景是如何理解的呢?它是會繼續昂首上前,還是即將輝煌不再?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章