早在1979年,Bjarne Stroustrup設計了C++編程語言,并且C++很快成為了無處不在的通用系統(tǒng)編程語言。現(xiàn)在盡管有Java、Javascript、Python、Go,甚至是蘋果的Swift和它競爭,但C++依然處于主導編程世界的地位。
今天在Morgan Stanley的科技訪談會上,InfoWorld的編輯和Stroustrup暢聊了很多關于C++的問題,還談及了其他的編程語言,包括Google的Go語言和蘋果的Swift語言。以下是我們的訪談記錄。
InfoWorld:
您是怎么看C++的未來的?現(xiàn)在有很多流行的腳本語言,像Python和Javascript,當然還有很受歡迎的Java,甚至是Google的Go語言,C++如何從這么多編程語言中存活下來,并且發(fā)展壯大?
Stroustrup:
這是個很棒的問題。在這20年時間里,人們一直在預測C++將會滅亡,但是很高興的是它一直在成長和壯大。如果你進入到嵌入式領域,如果你想做一些復雜的圖像處理,如果你需要實現(xiàn)一些微電子應用,如果你要開發(fā)一些金融管理系統(tǒng),那么C++是你的首選。也許你很少能看到C++的身影,但是在那些應用的底層,C++依然是撐起整個應用的頂梁柱。比如Google、Amazon、搜索引擎等那些需要高性能的地方,C++就成了不可或缺的重要角色了。
InfoWorld:
Google的Go語言越來越被受到關注,您對Go語言的前景怎么看?
Stroustrup:
當然這些編程語言可以非常優(yōu)雅地實現(xiàn)一些功能,但是這些編程語言關注的是如何讓寫代碼變得便捷和優(yōu)雅,卻損失不少性能。當然,這些編程語言所做的貢獻我們也是有目共睹的。
InfoWorld:
一些腳本語言的宗旨是解放程序員的雙手,那么C++是否也會逐漸傾向于這個目標?
Stroustrup:
Oh,當然了。C++主要是為一些相當?shù)讓雍诵牡膽迷O計的,它也經(jīng)常會和其他的腳本語言結(jié)合使用。一開始的時候,我是用C++來實現(xiàn)任何的應用,然后我就在Unix上使用shell作為腳本語言設計一些底層應用。C++涵蓋了以下優(yōu)秀的特性:高性能、易伸縮、占用空間小、占用資源少等等。
InfoWorld:
蘋果在今年6月份發(fā)布了Swift語言,您是否認為由于蘋果公司的支持,Swift將越來越受到開發(fā)者的關注?
Stroustrup:
我認為是的,之前他們關注Objective-C,這回Swift真正進入了這些開發(fā)者的領域了。
InfoWorld:
C++面臨兩大挑戰(zhàn):一方面要滿足開發(fā)者實現(xiàn)高性能、可擴展、搞可靠性的應用程序,另一方面又需要能夠幫助開發(fā)者實現(xiàn)可維護的代碼。關于這兩個問題您怎么看?
Stroustrup:
我正要解釋這兩個問題,第一個問題是要盡可能的抽象和更高效地利用硬件資源,而后者則需要能盡可能簡化代碼的編寫過程,從C++ 11到C++ 14,已經(jīng)具備這樣的兼顧能力了。
今年我們會發(fā)布一個新的C++版本,它被稱為C++ 14的標準。當你在研發(fā)大型的產(chǎn)品時,也許C++ 11在某些方面已經(jīng)無法滿足你的需求,但當出現(xiàn)C++ 14時,情況就會完全改變了,C++總是在不停地進步著。
InfoWorld:
關于程序的安全性問題,您怎么看?程序員是否需要關注所有的安全問題?C++是否比其他編程語言安全呢?
Stroustrup:
我非常熱衷于解決硬件的安全問題。在編程語言方面,如果你想編寫優(yōu)秀的程序,那么你的代碼一定要確保類型安全。你可以在C++中實現(xiàn)這一要求。不要總是圍繞著一些低效的功能轉(zhuǎn),總的來說,安全問題是系統(tǒng)問題。
InfoWorld:
您是否還要探討關于C++或者軟件開發(fā)的其他任何問題?
Stroustrup:
我們的目標是讓軟件開發(fā)更加專業(yè)化。我們的社會中很多事情都是不能被打破的,其中大部分都需要依賴軟件。作為開發(fā)者,我們需要整體考慮到我們的系統(tǒng),編程語言和開發(fā)工具只是其中的一部分,我們需要探究如何培養(yǎng)開發(fā)者,以及如何將重點放在程序的可靠性上。