一個(gè)語(yǔ)言要想進(jìn)入排行榜,必須符合兩個(gè)條件:
- 必須在Wikipedia上有單獨(dú)的詞條,并且明確的指明這是一門編程語(yǔ)言。
- 必須是圖靈完備的。 目前TIOBE榜單上的語(yǔ)言有225個(gè)(計(jì)算機(jī)語(yǔ)言真是博大精深,好多都沒(méi)聽(tīng)說(shuō)過(guò))。
語(yǔ)言的排名(Ratings)根據(jù)這門語(yǔ)言在8大網(wǎng)站上搜索出的結(jié)果數(shù)量的平均值,除以前50名語(yǔ)言搜索出的結(jié)果總數(shù)得到的。用CSDN上的話說(shuō),就是Ratings代表語(yǔ)言的熱門程度。
A類語(yǔ)言被認(rèn)為是主流語(yǔ)言。如果一個(gè)語(yǔ)言的rating連續(xù)3個(gè)月高于0.7%,則被認(rèn)為是A類語(yǔ)言。TOIBE建議使用A類語(yǔ)言去構(gòu)建關(guān)鍵任務(wù)系統(tǒng),但是在選擇語(yǔ)言時(shí)也需要考慮“應(yīng)用領(lǐng)域的適合程度”、“編譯器的可靠程度”、“表達(dá)能力”、“性能”、“穩(wěn)定性”。
下面我們看最新的編程語(yǔ)言排行榜:

再看編程語(yǔ)言排行的變化趨勢(shì):

長(zhǎng)期曾經(jīng)的歷史排名:

年度編程語(yǔ)言獲獎(jiǎng)情況:

通過(guò)對(duì)上面圖表的對(duì)比 , 下面是我們得出的一些結(jié)論:
(1) C在嵌入式和內(nèi)核等相對(duì)底層的領(lǐng)域沒(méi)有競(jìng)爭(zhēng)對(duì)手 , 一直保持老大地位。
(2) Java在企業(yè)級(jí)Web后臺(tái)開發(fā)領(lǐng)域的地位不可撼動(dòng), Android以Java作為應(yīng)用開發(fā)語(yǔ)言又增強(qiáng)了Java在移動(dòng)開發(fā)領(lǐng)域的地位。
(3) C++盡管排名第四, 但地位已經(jīng)大不如前 , 流行程度有最高時(shí)的18%跌倒現(xiàn)在的6%,因?yàn)樽烂婵蛻舳藨?yīng)用上有C#競(jìng)爭(zhēng), 服務(wù)端又有Java競(jìng)爭(zhēng), 偏底層有C競(jìng)爭(zhēng), 移動(dòng)應(yīng)用開發(fā)也基本沒(méi)C++ 什么事(但是WinRT是基于C++的), 現(xiàn)在C++的優(yōu)勢(shì)主要在高性能的大型復(fù)雜程序和基礎(chǔ)軟件, 比如游戲客戶端和一些高要求的桌面應(yīng)用軟件(瀏覽器,殺毒軟件...)。
(4) Objective-C是一匹黑馬, 伴隨著IOS移動(dòng)開發(fā)的流行而興起,它的熱門程度還在不斷上升 ,應(yīng)該有不少C++程序員轉(zhuǎn)向了該語(yǔ)言。
(5) C#作為前些年微軟.Net平臺(tái)主推的與Java競(jìng)爭(zhēng)的語(yǔ)言, 地位也比較穩(wěn)定, 在Web開發(fā)和桌面應(yīng)用領(lǐng)域都有它的一席之地, 但是它的發(fā)展取決于Windows的發(fā)展。
(6) Python, Ruby, Perl等動(dòng)態(tài)腳本語(yǔ)言總體上也在穩(wěn)步上升, 很大程度上歸功于它們的靈活方便以及硬件性能的提升, 使解釋執(zhí)行的低效不再致命。
(7) Visual Basic讓我們覺(jué)得很驚奇, 這么多年了, 從1989年排名7到2009年的4,再到2014年的7, 竟然沒(méi)有衰退。 相信只要Windows存在一天, 它就會(huì)保持一天, Visual Basic的發(fā)展歷程很大程度上見(jiàn)證了Windows的興衰歷程。
(8) PHP在輕量級(jí)Web網(wǎng)站開發(fā)領(lǐng)域的地位一直很穩(wěn)固, 該趨勢(shì)應(yīng)該也會(huì)一直保持。
(9) Javascprit作為Web客戶端不可或缺的腳本語(yǔ)言,它的地位也一直很穩(wěn)固。隨著HTML5和Web App的興起,它的重要性將會(huì)日益突出。因?yàn)镹ode.js的緣故, Javascript在Web服務(wù)端開發(fā)中現(xiàn)在也已經(jīng)有一席之地。
(10) 函數(shù)式編程語(yǔ)言(比如F#, Lisp)也有回歸態(tài)勢(shì)。
總之,對(duì)于編程語(yǔ)言,個(gè)人傾向的原則是:打好基礎(chǔ)(計(jì)算機(jī)基礎(chǔ)學(xué)科才是最重要的),應(yīng)用為主(工作中用到什么就學(xué)什么i),留意趨勢(shì)(可以對(duì)新技術(shù)做些嘗試,了解下原理)。
注:上面對(duì)C++的評(píng)論有些悲觀,實(shí)際上現(xiàn)在不少native客戶端邏輯用C++通吃所有平臺(tái)(PC和移動(dòng)), 只是UI表現(xiàn)層用各自不同的語(yǔ)言。