編程語(yǔ)言榜單:C++首次超越C,僅次榜首Python
在本月的 TIOBE 榜單中,出現(xiàn)了歷史性一幕:C++ 史上首次超越 C,躍升至榜單第二,僅次于 Python —— 這是 C++ 在此榜單中的歷史最高位,亦是 C 語(yǔ)言的歷史最低位。
本文引用地址:http://butianyuan.cn/article/202406/460312.htm根據(jù)本月榜單數(shù)據(jù)可以看出,C++ 和 Python 是唯二市場(chǎng)占比超過 10% 的編程語(yǔ)言,而 C++ 與 C 語(yǔ)言相差 0.8%。雖然差距看似不大,但從 C 語(yǔ)言近一年來持續(xù)下滑的占比趨勢(shì)來看,此次 C++ 登上榜二或許并不意外。
C++ 的發(fā)展歷程
自 C++ 誕生之初,它就被譽(yù)為更好的面向?qū)ο蟮?C 語(yǔ)言版本。想到這一點(diǎn),TIOBE CEO Paul Jansen 感慨道:在誕生 39 年后,C++ 終于打敗了 C 語(yǔ)言。
事實(shí)上,早期并沒有“C++”這個(gè)名字,而是叫做 C with Classes,即“帶類的 C”,出現(xiàn)背景是為了解決計(jì)算機(jī)性能飛速提高下,C 語(yǔ)言逐漸難以應(yīng)對(duì)中大型軟件的編寫。
在 1979 年,C++ 之父 Bjarne Stroustrup 以 C 語(yǔ)言為背景,又以 Simula(具備利于大型軟件開發(fā)的特點(diǎn))思想為基礎(chǔ),到貝爾實(shí)驗(yàn)室開始從事把 C 語(yǔ)言改良為 C with Classes 的工作,并將其用于自己的 Unix 內(nèi)核開發(fā)工作中。當(dāng)時(shí)的 C with Classes,還只是作為 C 語(yǔ)言的一個(gè)擴(kuò)展和補(bǔ)充,目的是提高開發(fā)效率。
到了 1983年,C with Classes 正式改名為 C++,并加入了新的特性,包括虛函數(shù)、函數(shù)名和運(yùn)算符重載、參考、常量、改良的類型檢查等等。整體來說,C++ 主要是在 C 語(yǔ)言的基礎(chǔ)上增加了面向?qū)ο蠛头盒偷臋C(jī)制,提高了開發(fā)效率,以適用于大中型軟件的編寫。
縱觀 C++ 的發(fā)展歷程,大致可分為三個(gè)階段:
第一階段從 1979 年到 1995 年。這個(gè)階段的 C++,基本上是傳統(tǒng)類型上的面向?qū)ο笳Z(yǔ)言,憑借著接近 C 語(yǔ)言的效率逐漸為人所知,慢慢應(yīng)用到工業(yè)界中,并在工業(yè)界占據(jù)了相當(dāng)大的份額。
第二階段從 1995 年到 2000 年。這一階段的 C++ 新增了標(biāo)準(zhǔn)模板庫(kù)和 Boost 等程序庫(kù),于是泛型程序設(shè)計(jì)在 C++ 中占據(jù)了越來越多的比重。不過 Java、C# 等語(yǔ)言出現(xiàn)和硬件價(jià)格的大規(guī)模下降,導(dǎo)致 C++ 受到了一定沖擊,但仍有著廣泛應(yīng)用。
值得一提的是,由于這時(shí) C++ 還沒有統(tǒng)一標(biāo)準(zhǔn),各個(gè)編譯器都有自己的不同實(shí)現(xiàn),因此 ANSI(美國(guó)國(guó)家標(biāo)準(zhǔn)學(xué)會(huì))在 1989 年成立了 C++ 標(biāo)準(zhǔn)委員會(huì)以建立 C++ 標(biāo)準(zhǔn),并在 1998 年推出了 C++98 標(biāo)準(zhǔn)——這是 C++ 的第一個(gè)官方標(biāo)準(zhǔn),讓不同編譯器和平臺(tái)之間的差異得以統(tǒng)一,由此提高了代碼的可移植性和穩(wěn)定性。
第三階段便是從 2000 年至今。得益于 Loki、MPL(Boost)等程序庫(kù)為代表的產(chǎn)生式編程和模板元編程,C++ 的發(fā)展達(dá)到了一個(gè)新高峰。這些新技術(shù)和原有技術(shù)的融合,使得 C++ 成為當(dāng)今主流程序設(shè)計(jì)語(yǔ)言中最復(fù)雜的一員。
對(duì)于本月 C++ 躍升至第二,TIOBE CEO Paul Jansen 提到:自 2011 年以來,C++ 就展開了新生,每三年更新一次?!半m然大多數(shù)編譯器和工程師都無法跟上這一步伐,但能看到這種語(yǔ)言不斷發(fā)展,也算是一種成功。”
如今,C++ 作為一種被廣泛使用的編程語(yǔ)言,在嵌入式系統(tǒng)、游戲開發(fā)和金融交易軟件等領(lǐng)域都有大量應(yīng)用。它支持多重編程范式,包括過程化程序設(shè)計(jì)、面向?qū)ο蟪绦蛟O(shè)計(jì)、泛型程序設(shè)計(jì)和函數(shù)式程序設(shè)計(jì)等。
Go 和 Rust 也刷新自身紀(jì)錄
除了 C++ 首度超越 C 語(yǔ)言,本月榜單中還有 2 個(gè)編程語(yǔ)言也達(dá)到了名次新高:Go 首次排名第 7,第 17 位的 Rust 也刷新了自身歷史新高。
曾在 2015 年掉到百名開外(第 122 名)的 Go 語(yǔ)言,自開始嚴(yán)格遵循每半年一次的發(fā)布周期,以及由 Go 編寫的 Docker 和 Kubernetes 變得流行后,如今它已被用于許多軟件領(lǐng)域,如后端編程、網(wǎng)絡(luò)服務(wù)和 API 等。自今年 2 月首次進(jìn)入 Top10 后,Go 一直穩(wěn)定在前十。
得益于 Rust 在系統(tǒng)編程領(lǐng)域的出色表現(xiàn),近年來它被越來越多的開發(fā)者關(guān)注和支持。作為一種靜態(tài)強(qiáng)類型的編程語(yǔ)言,Rust 最大的特點(diǎn)便是解決了其他語(yǔ)言所面臨的冗長(zhǎng)編程和內(nèi)存管理問題。不僅能保證高性能,還能降低內(nèi)存泄漏和安全漏洞的風(fēng)險(xiǎn),Rust 的這些特點(diǎn)使它成為開發(fā)需要高可靠性和高性能的系統(tǒng)應(yīng)用程序時(shí)的最優(yōu)選之一。
此外,附上 Top 10 編程語(yǔ)言 TIOBE 指數(shù)走勢(shì)(2002-2024):
正如上文所說,如今的 C++ 已在嵌入式系統(tǒng)、游戲開發(fā)和金融交易軟件等領(lǐng)域都有大量應(yīng)用,而隨著 C++ 語(yǔ)言的演變,也逐漸演化出相應(yīng)的標(biāo)準(zhǔn)程序庫(kù),其中所引入的程序庫(kù)中最重要的便是標(biāo)準(zhǔn)模板庫(kù)(STL),這也幾乎是每一位 C++ 程序員繞不開的課題。
評(píng)論