TechRepublic的一名會員Oleg F(有經驗的C++開發人員)問我對C++的現狀和未來的看法,此外,他還希望瞭解C++如何適應.NET世界、Web開發和雲端運算,下面是我的回覆。
我認為對於大多數一般開發人員而言,C++作為一門通用程式設計語言將很快從他們的程式設計語言中消失,但C++仍然會得到大量的使用,特別是作業系統層的工作和底層開發(如嵌入式裝置和驅動開發)、某些高效能應用程式和那些如果使用.Net或Java開發顯得過於沉重的應用程式(如辦公套件)。有些開發人員將繼續使用C++開發應用程式,但對於一般開發人員而言,C++確實很頭痛。 Visual C++ 本地並行編程:狀態管理
大多數開發人員都面臨著效能問題,當你解決掉效能問題後,在大多數情況下,C++仍然是相當有吸引力的。
我接觸過的少部分C++開發人員對於在.Net託管環境下使用C++對他們沒有多少吸引力,這樣使得C++喪失了許多用於Web開發的機會,除非你想在CGI模式下使用它,關於CGI有好訊息(開銷少,簡單的概念性模型)也有壞訊息(應用程式被許多底層任務“感知”)。我所聽說的是,在.NET CLR下,C++的速度也不行,以及其它一些本是C++的優勢,結果在.NET CLR下也變成劣勢了。 C++中隨機存取檔案的處理
並不是說C++短時間內就會消失,我看到C++正在加入傳統的COBOL和FORTRAN語言,為那些使用超過50年的應用程式提供維護和擴充基礎。此外,由於各種原因(熟悉程度、庫支援、傳統/習慣、文化等)有些新的開發項目將會啟動,我認為它將會為這個即將死去的語言找回一點尊嚴。
我不想看到C++的未來結局很淒涼,我認為C++開發人員還有很大的潛力可挖,如果你是一名C++開發人員,我建議你堅持使用這門語言,就目前的薪資結構而言,我認為經驗豐富的C++開發人員領到的薪水還是相當可觀的,此外,由於C++的難度較高,並且學習它的人也比較少(目前高校也很少開設這門課程了),從長遠來看,我預計C++開發人員相對.Net和Java開發人員更有就業保障和更好的補償。
雖然C++在Web開發方面不可能很快成為主流,在傳統型應用程式開發方面C++也不可能很快就銷聲匿跡,我認為C++在雲端運算的某些方面可能具有許多機會,對於某些項目(想想那些適合超級電腦的項目),雲給C++開發人員提供了一個方法獲得與格線運算相同的好處,但它的靈活性卻更好,因此,我認為雲端運算會代替或作為網格及超級電腦的補充,並為C++創新提供了一個極好的機會。
注意我的大部分分析都是著眼於Windows世界,從我所看到的,*Nix開發社區仍然熱衷於使用C/C++,擔心Windows中C++開發機會逐漸層少的C++開發人員一定要看看*Nix開發。
我認為C++會慢慢消失,但它不會死,也不會成為一點都不重要的語言,雖然我知道現實生活中大多數開發人員都沒有接觸過C++,但許多開發人員肯定從學習它獲得了許多受益。