優(yōu)秀!19年后,它再次成為TIOBE年度編程語言
新年伊始,TIOBE發(fā)布了2022年度編程語言,C++時(shí)隔19年再度登頂,成為2022年最受歡迎的編程語言。TIOBE在2003年首次統(tǒng)計(jì)編程語言的流行指數(shù)時(shí),C++便成為年度編程語言。2022年,C++獲得了最高的人氣+4.62%,緊隨其后的是 C (+3.82%) 和 Python (+2.78%)。
在最近的20年里,編程語言風(fēng)云變幻,但C++的變現(xiàn)非常穩(wěn)定,份額始終名列前五,C++作為一種高級面向?qū)ο笳Z言,可以開發(fā)快速而龐大的軟件系統(tǒng),且性能極其出色,使得其經(jīng)常成為開發(fā)者的首要選擇。
這款將近40歲的編程語言,為何能如此堅(jiān)挺,且再次崛起呢?
1970年,貝爾實(shí)驗(yàn)室研究員丹尼斯·里奇和肯·湯普森閑來無事,因?yàn)槎枷矚g玩一款Space Travel的電子游戲,一拍即合,決定自己開發(fā),于是開始合作編寫UNIX系統(tǒng),并且順手改進(jìn)了一下B語言,兩年后,它被正式命名為C語言。
歪打正著,C語言作為UNIX的“副產(chǎn)品”,迅速成為應(yīng)用最廣泛的系統(tǒng)程序設(shè)計(jì)語言。但C語言也存在一些缺陷,類型檢查機(jī)制相對較弱、缺少支持代碼重用的語言結(jié)構(gòu),造成用C語言開發(fā)大型應(yīng)用程序比較困難。
1979年,丹麥計(jì)算機(jī)科學(xué)家本賈尼·斯特勞斯特盧開始改進(jìn)C語言,以C語言為基礎(chǔ),借鑒了Simula的思想,增加了數(shù)據(jù)封裝、繼承、多態(tài)等面向?qū)ο蟮木幊烫匦裕衷黾恿四0宓让嫦蚍盒途幊痰奶匦裕岣吡碎_發(fā)效率,加強(qiáng)了對大中型軟件的適用性。
在1983年,C++正式發(fā)布,并在當(dāng)年通過了ANSI標(biāo)準(zhǔn)化,從而成為一種正式的編程語言。隨后,C++不斷發(fā)展,向后發(fā)布了C++98、C++03、C++11、C++14、C++17、C++20。
C++在編程語言領(lǐng)域一直保持活躍,一個(gè)很重要的原因是它的“學(xué)習(xí)能力”,不斷地吸收和引入其他編程語言的優(yōu)秀特性來完善自己,不斷發(fā)布各種特性的新語言標(biāo)準(zhǔn)。
比如最新發(fā)布C++20標(biāo)準(zhǔn),提供了模板元編程、類型推導(dǎo)、范圍for語句、運(yùn)算符重載等許多新特性,參考了Rust的安全特性和Swift的簡潔語法,提供了更為強(qiáng)大和現(xiàn)代化的功能。C++ 社區(qū)也不斷推出新的編譯器和工具,如 Clang/LLVM 與 GCC, 這使得C++能夠更好的支持新的架構(gòu)和平臺。
C++作為一種面向?qū)ο蟮木幊陶Z言,有很多優(yōu)點(diǎn),擁有面向?qū)ο缶幊獭⒎盒途幊毯湍0寰幊痰葟?qiáng)大特性,能夠支持高性能計(jì)算和嵌入式系統(tǒng)開發(fā),并支持跨平臺開發(fā)。與Java、Python等語言相比,C++是運(yùn)行在離操作系統(tǒng)最近的一種高級語言,可以直面系統(tǒng)底層API,SDK,跟C兼容,因此它的執(zhí)行效率非常高。
它的缺點(diǎn)在于學(xué)習(xí)曲線較高,對于新手來說可能會有些棘手,特別是在內(nèi)存管理方面,有時(shí)會引發(fā)難以調(diào)試的問題, C++的錯(cuò)誤也可能很難排查。另外, C++在代碼可讀性和可維護(hù)性方面還有待提升,但這也取決于開發(fā)者的風(fēng)格和編碼規(guī)范。
C++為開發(fā)者提供了非常豐富和靈活的特性和工具,能夠適應(yīng)各種應(yīng)用場景和需求。例如游戲引擎領(lǐng)域,很多主流游戲引擎,如Unreal Engine、CryEngine和id Tech等,都是用C++開發(fā)的。這些引擎能夠?yàn)橛螒蜷_發(fā)者提供豐富的功能和工具,并在游戲性能方面表現(xiàn)優(yōu)異。
操作系統(tǒng)領(lǐng)域,很多操作系統(tǒng)的核心部分,如Windows、Linux和macOS等,都是用C++開發(fā)的。這些操作系統(tǒng)能夠提供穩(wěn)定和高效的運(yùn)行環(huán)境,并能夠支持各種應(yīng)用程序。
軟件工具領(lǐng)域,很多成功的軟件工具,如Adobe Photoshop、AutoCAD和Microsoft Visual Studio等,還有我們熟悉的QQ、各種殺毒軟件、股票軟件、瀏覽器都是用C++開發(fā)的。這些工具能夠提供豐富和強(qiáng)大的功能,并能夠滿足各種專業(yè)領(lǐng)域的需求。
還有高性能計(jì)算和嵌入式系統(tǒng),很多科學(xué)和工程領(lǐng)域的應(yīng)用程序,如氣象模擬、結(jié)構(gòu)分析和分子動(dòng)力學(xué)等,都是用C++開發(fā)的。這些程序能夠提供高效和準(zhǔn)確的計(jì)算能力,并能夠處理大量復(fù)雜的數(shù)據(jù)。C++在嵌入式系統(tǒng)領(lǐng)域中也得到廣泛應(yīng)用,如智能家居、工業(yè)控制、智能交通系統(tǒng)等。
馬上迎來40歲的C++,在編程屆的地位仍然舉足輕重。盡管隨著其他語言的出現(xiàn)和發(fā)展,它的地位可能會受到挑戰(zhàn),但是它的高效性和靈活性使得它仍然有著很強(qiáng)的競爭力。在未來,C++可能會越來越重。