C++ 的起源可以追溯到 40 年前,但它仍然是當今使用最廣泛的編程語言之一。
到 2020 年 9 月為止,C++ 是僅次于 C 語言、Java 和 Python,位于全球第四的編程語言。根據(jù)最新的 TIOBE 索引,C++ 也是增長最快的語言。
近日,C++ 之父 Bjarne Stroustrup 在接受外媒訪談的時候,對 C++ 成功的關(guān)鍵和 它40 年來的發(fā)展歷程進行了回顧。
C++ 的成功屬于意料之外
1979 年,C++ 的創(chuàng)建者 Bjarne Stroustrup 開始著手
Bjarne Stroustrup 一開始沒想到 C++ 會獲得如此大的成功,他說:“C++ 的成功顯然令人驚訝。我認為它的成功取決于其最初的設計目標,就是有效的使用硬件,再加上強大的抽象機制,以及它根據(jù)來自實際使用情況的反饋進行謹慎的發(fā)展?!?/p>
構(gòu)建 C++ 之初,Bjarne Stroustrup 希望用通信系統(tǒng)構(gòu)建一個多計算機系統(tǒng),該通信系統(tǒng)可以是共享內(nèi)存,也可以是網(wǎng)絡。他把重點放在了軟件上,去編寫底層的、接近硬件的代碼。例如存儲管理器,進程調(diào)度程序和設備驅(qū)動程序,以及分離軟件組件,便于它們可以在運行使用更好的方式運行。
40 年前,是沒有編程語言可以勝任這項工作的,Bjarne Stroustrup 對此花了很多心思。
現(xiàn)在,C++ 已經(jīng)成為了最受開發(fā)人員歡迎的語言之一,鞏固了全球的系統(tǒng)和服務。
C++ 11 使 C++ 成為一種新的語言
他從很早開始就意識到了這項工作不可能由他一個人來完成,但當時也只有 Bjarne Stroustrup 和他在貝爾實驗室的幾個同事全身心的投入其中。隨著標準化進程加快,加入其中的人也越來越多,如今 C++ 標準委員會已有了 400 多名成員和更廣泛的用戶群體,他們共同努力影響著編程語言的發(fā)展方向。
1998 年是 C++ 正式標準化的一年,從那時起它就成了時間是最常用的編程語言之一,并至今都保持著這種地位。
Bjarne Stroustrup 說,其后 13 年到來的 C++ 11 為 C++ 的發(fā)展奠定了基礎,他說:“C++ 11 使 C++ 感覺像是一種新的語言?!睂Σl(fā)的類型安全的支持是必不可少的,C++ 提供了相互支持的功能密集網(wǎng)絡,例如用于編譯時計算的函數(shù)、自動類型推導和可變參數(shù)模板的函數(shù)等等。
正如 Bjarne Stroustrup 所說,C++ 11 添加了一些新功能,這些功能可以使事情變得更簡單,同時保持了兼容性和穩(wěn)定性。不過,盡管 C++ 11 引入了一些使該語言更簡單、更快、更具表現(xiàn)力的新功能,但它還是非常難掌握的。
Bjarne Stroustrup 坦言:“C++ 確實很復雜,要學會很好的使用它需要付出很多努力,但很多人想要的是更簡單還具有更多功能的語言,并且不會破壞現(xiàn)有代碼?!?/p>
對一種編程語言來說,最大的挑戰(zhàn)之一是就決定采用和忽略哪些功能達成共識,這本身就需要大量的努力,花費很多時間去討論。但即使是這樣,也不是所有好的功能都可以被采用,必須添加真正對人們有幫助的東西。
C++ 流行幾十年的秘訣
對于如何在幾十年中保持 C++ 生存的秘訣,Bjarne Stroustrup 提到,“應該從小做起,闡明長期理想,并根據(jù)實際使用情況的反饋來發(fā)展?!?/p>
確實,C++ 走到今天已經(jīng)超過 35 年了,今天的 C++ 比早期的 C++ 更加強大且富有表現(xiàn)力。但是,直到今天,它的一些簡單程序仍在運行。
對于使用了數(shù)十年的系統(tǒng)來說,穩(wěn)定性是一種非常重要的語言功能。事實上,許多早期的想法只有在 C++ 20 中才可用。Bjarne Stroustrup 說:“從一開始我就知道我無法構(gòu)建理想的語言,所以我必須以漸進發(fā)展為目標。我不相信有完美的語言,這對語言本身和使用語言的人都有不同的標準?!?/p>
Bjarne Stroustrup 還補充道:“進化是應對不斷變化的世界的挑戰(zhàn)和融合新思想的必要條件。”
C++ 是一切的無形基礎
C++ 是一種通用的編程語言,由于其強大的功能和靈活性而受到開發(fā)人員的青睞,這使其成為操作系統(tǒng)、Web 瀏覽器、搜索引擎(包括 Google)、游戲和商務應用程序等的理想選擇。Bjarne Stroustrup 總結(jié)道:“如果有一個問題需要高效使用硬件并處理相當大的復雜性,那么C++顯然是不錯的選擇?!?/p>
Bjarne Stroustrup 還提到,COVID-19 大流行阻礙了 C++ 下的兩個迭代 C++ 20 和 C++ 23 的進展。未來他們會推出新功能,并在每三年發(fā)布一次修訂的標準,C++ 17 和 C++ 20 也會按時交付。
然而,盡管 C++ 已經(jīng)廣泛流行,但 Bjarne Stroustrup 還是認為很難準確指出它的用途。他說:“在任何大型系統(tǒng)中,通常會在較低級別和對性能至關(guān)重要的部分中找到 C++。最終用戶甚至系統(tǒng)的其他部分的開發(fā)人員通常都看不到系統(tǒng)的這些部分,因此有時我指的是 C++ 是一切的無形基礎?!?/p>
原文標題:C++之父:C++的成功屬于意料之外,C++11是轉(zhuǎn)折點
文章出處:【微信公眾號:嵌入式ARM】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
責任編輯:haq
-
編程
+關(guān)注
關(guān)注
88文章
3640瀏覽量
94042 -
C++
+關(guān)注
關(guān)注
22文章
2114瀏覽量
73899
原文標題:C++之父:C++的成功屬于意料之外,C++11是轉(zhuǎn)折點
文章出處:【微信號:gh_c472c2199c88,微信公眾號:嵌入式微處理器】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
Spire.XLS for C++組件說明
![Spire.XLS for <b class='flag-5'>C++</b>組件說明](https://file1.elecfans.com/web3/M00/05/E7/wKgZO2eFwUuAbuoQAAAbn_khf8A091.png)
EE-112:模擬C++中的類實現(xiàn)
![EE-112:模擬<b class='flag-5'>C++</b>中的類實現(xiàn)](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
AKI跨語言調(diào)用庫神助攻C/C++代碼遷移至HarmonyOS NEXT
同樣是函數(shù),在C和C++中有什么區(qū)別
C7000 C/C++優(yōu)化指南用戶手冊
![<b class='flag-5'>C</b>7000 <b class='flag-5'>C</b>/<b class='flag-5'>C++</b>優(yōu)化指南用戶手冊](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
TMS320C6000優(yōu)化C/C++編譯器v8.3.x
![TMS320<b class='flag-5'>C</b>6000優(yōu)化<b class='flag-5'>C</b>/<b class='flag-5'>C++</b>編譯器v8.3.x](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
OpenVINO2024 C++推理使用技巧
四維圖新出席AutoCC汽車創(chuàng)造者大會
![四維圖新出席AutoCC汽車<b class='flag-5'>創(chuàng)造者</b>大會](https://file1.elecfans.com/web2/M00/FD/54/wKgZomaZv8OAQIAkAAATLNBn-gw782.jpg)
C++中實現(xiàn)類似instanceof的方法
![<b class='flag-5'>C++</b>中實現(xiàn)類似instanceof的方法](https://file1.elecfans.com/web2/M00/FE/0C/wKgaomaYe1CAQ31QAAAnf0IkoSU605.png)
![](https://file1.elecfans.com/web2/M00/CD/75/wKgaomYgmg2ADWcPAAFu55dKSPQ208.jpg)
C/C++代碼動態(tài)測試工具VectorCAST插樁功能演示#代碼動態(tài)測試 #C++
鴻蒙OS開發(fā)實例:【Native C++】
![鴻蒙OS開發(fā)實例:【Native <b class='flag-5'>C++</b>】](https://file1.elecfans.com/web2/M00/C8/31/wKgZomYZMTCAaDv3AAY5x13C324319.jpg)
使用 MISRA C++:2023? 避免基于范圍的 for 循環(huán)中的錯誤
![使用 MISRA <b class='flag-5'>C++</b>:2023? 避免基于范圍的 for 循環(huán)中的錯誤](https://file1.elecfans.com/web2/M00/A9/66/wKgZomUl7m-AHJX6AABuJjgxs14678.png)
評論