TIOBE榜單發(fā)布:超越Python!C語言榮獲 2019 年度最佳編程語言
近日,TIOBE 官方發(fā)布了 2020 年 1 月編程語言排行榜單。
所有人都認(rèn)為 Python 將連續(xù)第二年成為 TIOBE 的年度編程語言。但這一次 C 語言憑借 2.4% 的年增長率獲得了這一獎項。
名詞解析:TIOBE 指數(shù)
TIOBE 編程社區(qū)索引是編程語言受歡迎程度的重要指標(biāo)之一。索引每月更新一次。評級評分基于諸如 Google、Bing、Yahoo!、Wikipedia、Amazon、YouTube 和 Baidu 等流行的搜索引擎。
編程語言趨勢變化圖
編程語言 20 年趨勢變化折現(xiàn)圖
編程語言排名變化圖表
歷年年度最佳編程語言
為什么 C 語言仍然很熱門?
C 語言是一種通用的程序設(shè)計語言。它同 UNIX 系統(tǒng)之間具有非常密切的關(guān)系。C 語言是在 UNIX 系統(tǒng)上開發(fā)的,且無論是 UNIX 系統(tǒng)本身還是其上運行的大部分程序,都是 C 語言編寫的。但是 C 語言并不受限于任何一種操作系統(tǒng)或機器。由于 C 語言使用用來編寫編譯器和操作系統(tǒng),因此被稱為“系統(tǒng)編程語言”。
計算機體系有一個較為通用的分層方法:
- 腳本層級:Python、JavaScript、Ruby 等
- 應(yīng)用層級:Java、C++、C# 等
- 系統(tǒng)層級:C 語言
- 匯編層級:機器語言、匯編語言
- 硬件層級:計算機硬件實體
這五個層級由上到下逐層依賴,大熱的 Python 屬于腳本層級的編程語言,Java、C++ 屬于應(yīng)用層級的編程語言,而 C 語言是系統(tǒng)層級的語言,可見其在計算機體系中不可替代的位置。
說回編程語言本身,對所有的編程語言,其實最后的目的就是兩種:提高硬件的運行效率和提高程序員的開發(fā)效率。
但因為計算機體系的特性,所有的編程語言都無法同時兼顧兩個方面。Python 和 Go 語言因為開發(fā)效率高在近幾年發(fā)展很迅猛,而在提高硬件的運行效率這一塊兒,C 語言表示在座的各位都是弟弟。
雖然 C 語言已經(jīng)把硬件的運行效率壓縮到了極致,但隨之相對應(yīng)的問題就是使用體驗較差。所以,C 語言唯一的目的可能就是快。有人說:C 語言只關(guān)心程序飛的高不高,不關(guān)心程序員飛的累不累。這句話好像沒啥毛病。
而 C 語言近期快速反撲的原因,主要是物聯(lián)網(wǎng)(IoT)和當(dāng)今發(fā)布的大量小型智能設(shè)備。當(dāng)將 C 語言應(yīng)用于對性能至關(guān)重要的小型設(shè)備時,C 語言的優(yōu)勢就體現(xiàn)的很明顯了。還有 AI、機器人、自動駕駛等等,這些都是基于 C 語言的核心應(yīng)用場景。
隨著技術(shù)的發(fā)展,下一階段 C 語言的地位應(yīng)該還是比較穩(wěn)的,并且會繼續(xù)逐步上升。吃到了這一波兒技術(shù)紅利的還有 Python,但其實和 C 語言不在同一賽道上。
其他編程語言發(fā)展現(xiàn)狀
在 TIOBE 榜單中,還有很多有趣的數(shù)據(jù)變化。
Swift 從第 15 名提高到了 第 9 名,看趨勢近期也能穩(wěn)入前十了;Ruby 也從第 18 名提高到了 11 名。而一些咋咋唬唬本以為排名會突飛猛進的語言,其實表現(xiàn)平平,甚至有的遭遇了滑鐵盧:
- Rust 雖然排名提高了 3 位,但仍只位列第 30 名;
- Kotlin 從第 31 名降到了第 35 名;
- Julia 從第 37 降到了第 47 名;
- 難兄難弟 TypeScript ,排名 48...
我們剛才分析了 C 語言順勢發(fā)展的原因,而那些發(fā)展較好的其他編程語言,大部分都把優(yōu)勢集中在了提高程序員的開發(fā)效率上。這個世界上不存在“開發(fā)容易,運行快”的語言,開發(fā)容易畢竟來源于對底層的一層一層又一層的包裝。
再說平臺領(lǐng)域,每個平臺都推出自己專屬的語言。Windows 會繼續(xù)支持 C#,蘋果偏愛 Swift, Android 推出 Kotlin,Google 用 go。而萬年老大哥 Java,雖然可以適配任意平臺,但畢竟不是平臺的親兒子,未來的趨勢變化應(yīng)該和跨平臺應(yīng)用和大型非實時應(yīng)用的發(fā)展緊密相關(guān)了。
你現(xiàn)在主要用的編程語言是什么?為啥?