在哪些領域,C++ 還有著不可替代的優勢?為什麼?


當你需要的庫都是C/C++寫的,並且你還需要有高級的抽象的時候,C++就變成了唯一的選擇。譬如說做一個renderer或者compiler,雖然C也能寫,但就是會寫的吐血。


在應屆生面試的時候,C++語言有著無與倫比的優勢


1)任何你覺得性能不夠理想的模塊,前提是你有足夠的預算

2)還有一個很重要的商業因素,我覺得大家都沒提到。C++ 目前也是唯一一個IT 大佬們都能接受的一個第三方的,現代(支持OO)的,高性能的(native)的語言。雖然對於Microsoft, Google, Apple 而言,各自都有自己的語言上的「親兒子」,但似乎對於再認C++ 這個「乾兒子」, 各方也都能接受。同時,像 Sony, Nintendo 這類軟體能力不怎麼強的公司,也不難藉助第三方搞一個自己的C++ 開發方案,不至於在技術上受制於人。也就是說,從商業角度講,C++ 也是目前最好的妥協。


要求開發效率,同時要求執行效率。

個人觀點。


凡是嚴格需要效率的複雜系統,c++幾乎是唯一的選擇,例如遊戲引擎,資料庫等等。

雖然目前大部分公司傾向於Java,不是因為Java適合干這個,而是根本招不到足夠的,合格的C++程序員。某A公司,不能忍Java的GC,然後搞了一批人用Java寫內存池!與其這樣,幹嘛不用C++?然後組裡的人說,要是用C++,組裡90%的人都要被辭退了。


Herb Sutter的這個演講值得一看:Why C++

http://channel9.msdn.com/posts/C-and-Beyond-2011-Herb-Sutter-Why-C

http://ecn.channel9.msdn.com/content/WhyCPPCB2011.pdf


遊戲,偏底層的系統:操作系統,資料庫,中間件,編譯器等等。。

多數大型桌面商用軟體也還是C++的,比如瀏覽器,哪個不是C++的?

不管怎麼說,動態語言總會比C++慢一點。別人的東西比你快,用戶要你的幹嘛呀..用戶是大爺~


電腦遊戲開發(包括3D引擎),效率高,支持面向對象。


學術領域,很多大規模流體模擬軟體是用C++寫的。

很多老教授只用C和C++,學生很無奈。


這個問題Milo Yip大牛已經回答過了,請參考

http://www.cnblogs.com/miloyip/archive/2010/09/17/behind_cplusplus.html

引用其中的一部分:

C++並非萬能,我按經驗舉出一些C++的適用時機。

  • C++適合構造程序中需求較穩定的部分,需求變化較大的部分可使用腳本語言;
  • 程序須盡量發揮硬體的最高性能,且性能瓶頸在於CPU和內存;
  • 程序須頻繁地與操作系統或硬體溝通;
  • 程序必須使用C++框架/庫,如大部分遊戲引擎(如Unreal/Source)及中間件(如Havok/FMOD),雖然有些C++庫提供其他語言的綁定,但通常原生的API性能最好、最新;
  • 項目中某個目標平台只提供C++編譯器的支持。

按應用領域來說,C++適用於開發伺服器軟體、桌面應用、遊戲、實時系統、高性能計算、嵌入式系統等。


電信, 金融, Unix環境, 服務端


就我所在的領域而言,最主要的計算機視覺庫OpenCV就是C++寫的,還是處於性能上的考慮,其它語言難當重任。


追求性能的伺服器後端,還是挺有優勢的。


業務邏輯用Python,核心性能用C++,再由boost庫把兩者連接起來。


跨平台軟體,渲染或轉碼軟體等計算密集型軟體之類的。


電信行業大部分還是用C++的,部分用C實現的產品也在後期部分的轉向C++實現


C++現在除了編譯時間令人髮指,其他真沒什麼能被取代的


別的我不知道,我只知道我們學校憑C++二級證書領畢業證


100W行+的項目


C++底層開發。


推薦閱讀:

C 語言局部變數,堆與棧的問題?
C++ 內置變數字元串有什麼好的實現思路?
怎麼讓我寫出個零位元組的類了?
各位知友都喜歡用什麼IDE?
把當前各種編程語言的優秀特性集中到一起,設計一種最好的語言,是否可行?

TAG:軟體開發 | 編程語言 | 編程 | C | CC |