C++之父:C++的成功屬于意料之外,C++11是轉(zhuǎn)折點(diǎn)
C++ 的起源可以追溯到 40 年前,但它仍然是當(dāng)今使用最廣泛的編程語言之一。
到 2020 年 9 月為止,C++ 是僅次于 C 語言、Java 和 Python,位于全球第四的編程語言。根據(jù)最新的 TIOBE 索引,C++ 也是增長(zhǎng)最快的語言。
近日,C++ 之父 Bjarne Stroustrup 在接受外媒訪談的時(shí)候,對(duì) C++ 成功的關(guān)鍵和 它40 年來的發(fā)展歷程進(jìn)行了回顧。
C++ 的成功屬于意料之外
1979 年,C++ 的創(chuàng)建者 Bjarne Stroustrup 開始著手開發(fā)這種編程語言,該語言最初被設(shè)計(jì)為對(duì) C 語言對(duì)改進(jìn)版,增加了基于面向?qū)ο缶幊痰墓δ堋?/span>
Bjarne Stroustrup 一開始沒想到 C++ 會(huì)獲得如此大的成功,他說:“C++ 的成功顯然令人驚訝。我認(rèn)為它的成功取決于其最初的設(shè)計(jì)目標(biāo),就是有效的使用硬件,再加上強(qiáng)大的抽象機(jī)制,以及它根據(jù)來自實(shí)際使用情況的反饋進(jìn)行謹(jǐn)慎的發(fā)展?!?/span>
構(gòu)建 C++ 之初,Bjarne Stroustrup 希望用通信系統(tǒng)構(gòu)建一個(gè)多計(jì)算機(jī)系統(tǒng),該通信系統(tǒng)可以是共享內(nèi)存,也可以是網(wǎng)絡(luò)。他把重點(diǎn)放在了軟件上,去編寫底層的、接近硬件的代碼。例如存儲(chǔ)管理器,進(jìn)程調(diào)度程序和設(shè)備驅(qū)動(dòng)程序,以及分離軟件組件,便于它們可以在運(yùn)行使用更好的方式運(yùn)行。
40 年前,是沒有編程語言可以勝任這項(xiàng)工作的,Bjarne Stroustrup 對(duì)此花了很多心思。
現(xiàn)在,C++ 已經(jīng)成為了最受開發(fā)人員歡迎的語言之一,鞏固了全球的系統(tǒng)和服務(wù)。
C++ 11 使 C++ 成為一種新的語言
他從很早開始就意識(shí)到了這項(xiàng)工作不可能由他一個(gè)人來完成,但當(dāng)時(shí)也只有 Bjarne Stroustrup 和他在貝爾實(shí)驗(yàn)室的幾個(gè)同事全身心的投入其中。隨著標(biāo)準(zhǔn)化進(jìn)程加快,加入其中的人也越來越多,如今 C++ 標(biāo)準(zhǔn)委員會(huì)已有了 400 多名成員和更廣泛的用戶群體,他們共同努力影響著編程語言的發(fā)展方向。
1998 年是 C++ 正式標(biāo)準(zhǔn)化的一年,從那時(shí)起它就成了時(shí)間是最常用的編程語言之一,并至今都保持著這種地位。
Bjarne Stroustrup 說,其后 13 年到來的 C++ 11 為 C++ 的發(fā)展奠定了基礎(chǔ),他說:“C++ 11 使 C++ 感覺像是一種新的語言。”對(duì)并發(fā)的類型安全的支持是必不可少的,C++ 提供了相互支持的功能密集網(wǎng)絡(luò),例如用于編譯時(shí)計(jì)算的函數(shù)、自動(dòng)類型推導(dǎo)和可變參數(shù)模板的函數(shù)等等。
正如 Bjarne Stroustrup 所說,C++ 11 添加了一些新功能,這些功能可以使事情變得更簡(jiǎn)單,同時(shí)保持了兼容性和穩(wěn)定性。不過,盡管 C++ 11 引入了一些使該語言更簡(jiǎn)單、更快、更具表現(xiàn)力的新功能,但它還是非常難掌握的。
Bjarne Stroustrup 坦言:“C++ 確實(shí)很復(fù)雜,要學(xué)會(huì)很好的使用它需要付出很多努力,但很多人想要的是更簡(jiǎn)單還具有更多功能的語言,并且不會(huì)破壞現(xiàn)有代碼?!?/span>
對(duì)一種編程語言來說,最大的挑戰(zhàn)之一是就決定采用和忽略哪些功能達(dá)成共識(shí),這本身就需要大量的努力,花費(fèi)很多時(shí)間去討論。但即使是這樣,也不是所有好的功能都可以被采用,必須添加真正對(duì)人們有幫助的東西。
C++ 流行幾十年的秘訣
對(duì)于如何在幾十年中保持 C++ 生存的秘訣,Bjarne Stroustrup 提到,“應(yīng)該從小做起,闡明長(zhǎng)期理想,并根據(jù)實(shí)際使用情況的反饋來發(fā)展。”
確實(shí),C++ 走到今天已經(jīng)超過 35 年了,今天的 C++ 比早期的 C++ 更加強(qiáng)大且富有表現(xiàn)力。但是,直到今天,它的一些簡(jiǎn)單程序仍在運(yùn)行。
對(duì)于使用了數(shù)十年的系統(tǒng)來說,穩(wěn)定性是一種非常重要的語言功能。事實(shí)上,許多早期的想法只有在 C++ 20 中才可用。Bjarne Stroustrup 說:“從一開始我就知道我無法構(gòu)建理想的語言,所以我必須以漸進(jìn)發(fā)展為目標(biāo)。我不相信有完美的語言,這對(duì)語言本身和使用語言的人都有不同的標(biāo)準(zhǔn)?!?/span>
Bjarne Stroustrup 還補(bǔ)充道:“進(jìn)化是應(yīng)對(duì)不斷變化的世界的挑戰(zhàn)和融合新思想的必要條件?!?/span>
C++ 是一切的無形基礎(chǔ)
C++ 是一種通用的編程語言,由于其強(qiáng)大的功能和靈活性而受到開發(fā)人員的青睞,這使其成為操作系統(tǒng)、Web 瀏覽器、搜索引擎(包括 Google)、游戲和商務(wù)應(yīng)用程序等的理想選擇。Bjarne Stroustrup 總結(jié)道:“如果有一個(gè)問題需要高效使用硬件并處理相當(dāng)大的復(fù)雜性,那么C++顯然是不錯(cuò)的選擇?!?/span>
Bjarne Stroustrup 還提到,COVID-19 大流行阻礙了 C++ 下的兩個(gè)迭代 C++ 20 和 C++ 23 的進(jìn)展。未來他們會(huì)推出新功能,并在每三年發(fā)布一次修訂的標(biāo)準(zhǔn),C++ 17 和 C++ 20 也會(huì)按時(shí)交付。
然而,盡管 C++ 已經(jīng)廣泛流行,但 Bjarne Stroustrup 還是認(rèn)為很難準(zhǔn)確指出它的用途。他說:“在任何大型系統(tǒng)中,通常會(huì)在較低級(jí)別和對(duì)性能至關(guān)重要的部分中找到 C++。最終用戶甚至系統(tǒng)的其他部分的開發(fā)人員通常都看不到系統(tǒng)的這些部分,因此有時(shí)我指的是 C++ 是一切的無形基礎(chǔ)?!?/span>
-END-
作者 | 場(chǎng)長(zhǎng)
|?整理文章為傳播相關(guān)技術(shù),版權(quán)歸原作者所有?|
|?如有侵權(quán),請(qǐng)聯(lián)系刪除?|
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺(tái)立場(chǎng),如有問題,請(qǐng)聯(lián)系我們,謝謝!