Java與C++人氣出現(xiàn)歷史新低?程序員們不必太過驚慌
譯文累成這樣?不用問,肯定是Java程序員。
上個禮拜,TIOBE發(fā)布了每月一次的2014年9月計算機編程語言排行榜,其標題可謂相當(dāng)驚悚——《Java與C++跌至歷史新低》。根據(jù)TIOBE的評分,這一結(jié)論也確非危言聳聽。順帶一提,其評分標準為各大搜索引擎上不同編程語言的查詢結(jié)果數(shù)量。本月Java在總體搜索結(jié)果當(dāng)中占據(jù)14%份額,保持了自2001年6月26.5%以來持續(xù)下降的勢頭。與之類似,C++的網(wǎng)絡(luò)搜索份額本月為4.7%,相較2003年8月17.5%的歷史***點也可謂縮水嚴重。
正如TIOBE團隊在文章中指出,這并不意味著Java或者C++已經(jīng)在編程世界中失去了長久以來的統(tǒng)治地位。兩款編程語言都在此次排名中擁有***地位(本月分別名列第二與第四位),保持了多年以來的強勁表現(xiàn)。相反,TIOBE認為二者搜索份額下滑的主要原因在于,當(dāng)下編程語言領(lǐng)域正出現(xiàn)愈發(fā)顯著的碎片化趨勢。在他們看來,發(fā)生這種現(xiàn)象的部分理由是其它編程語言的迅猛發(fā)展,特別是像R這樣面向特定行業(yè)的利基型語言。此類針對性編程語言的膨脹削弱了市場對于通用型語言的高度依賴性。
由于TIOBE所公布的結(jié)果只能算是衡量語言人氣水平的指標之一,因此在這里我希望能夠從更近距離觀察Java與C++的實際使用情況、從而得出更為確切的分析結(jié)論。
編程語言人氣水平(簡稱PYPL)指標同樣根據(jù)每月網(wǎng)絡(luò)搜索結(jié)果匯總而成,不過更具體地講,它所歸納的是谷歌搜索引擎上各編程語言教程結(jié)果的實際數(shù)量——而非與該語言名稱相關(guān)的所有條目。從這個角度來看,Java依然保有自己自2004年以來就從未動搖過的***人氣寶座,本月份額為27%、略高于2013年同期水平。C++在編程語言人氣榜單上則位列第五,雖然與上年同期的排名相當(dāng)、但8.8%的份額仍然出現(xiàn)了一定程度的同比縮水。隨著時間推移,C++已經(jīng)開始在人氣方面呈現(xiàn)出衰頹之勢; 2004年,C++的地位僅次于Java與PHP排在第三,但如今卻已經(jīng)被Pyton及C#等后起之秀所超越。就目前的情況看,C++很可能最終不敵C#。
RedMonk編程語言指標以半年為周期定時發(fā)布,所采用的評定方法也有所不同:它著眼于GitHub上的數(shù)據(jù)(即原始代碼行數(shù)量)與Stack Exchange人氣(根據(jù)標簽數(shù)量)進行綜合衡量。在今年6月公布的***調(diào)查報告中,Java與JavaScript作為統(tǒng)一體排在***位。C++則與Ruby作為統(tǒng)一體排名第六(第三、四、五位分別為PHP、Python以及C#)。RedMonk指標迄今只有約三年歷史,而排在榜單頭名的各編程語言選手也未出現(xiàn)過太大變動。不過某些更具利基特性的語言在這份榜單中已經(jīng)表現(xiàn)出了強勁的發(fā)展態(tài)勢。R語言已經(jīng)在過去四次排名中一路高歌猛進,目前依靠著GitHub活躍度增長的不斷推動位列排行榜第十三名(其在TIOBE榜單中位列第二十一,在PYPL中則未能上榜)。而Go同樣擁有初生牛犢不怕虎的沖勁,目前在RedMonk指標中位居第二十一位(在TIOBE中則為第三十八位),我們相信其很快就將進入前二十名。
***,我還對GitHut提供的數(shù)據(jù)進行了一番考察——它以GitHub歸檔數(shù)據(jù)為基礎(chǔ)、提供自2012年第二季度以來各編程語言的季度排名及發(fā)展趨勢。就2014年第二季度來看,Java僅次于JavaScript排在榜單第二位,二者都擁有最為可觀的活躍庫數(shù)量; 而兩年之前Java的排名為第三位(當(dāng)時的第二位為Ruby)。從總體活躍庫份額百分比角度看,Java的占比相較于2012年已經(jīng)出現(xiàn)了小幅增長——由當(dāng)初的9.1%增加到如今的9.8%。C++在GitHub中的增長幅度則稍遜于Java。目前C++的活躍庫數(shù)量在各編程語言中名列第七,與兩年前相比在排名與整體庫份額占比(3.9%)方面都沒有出現(xiàn)任何變化。再來看GitHub上近期以來增長速度最快的編程語言:沒錯,還是R(2013年第四季度為0.3%,2014年第二季度則為1.8%)與Go(2013年***季度為0.4%,***季度占比則為0.86%)出盡風(fēng)頭。
總體而言,以上各項調(diào)查結(jié)果都或多或少驗證了TIOBE團隊所作出的分析結(jié)論:
• Java在使用量方面仍然堪稱***影響力及統(tǒng)治優(yōu)勢的語言之一,而且目前尚無任何跡象表明其發(fā)展勢頭落后于其它編程語言。
• C++同樣在***編程語言陣營內(nèi)牢牢占據(jù)著一席之地,不過以C#為代表的一部分其它語言已經(jīng)呈現(xiàn)出將其超越的顯著勢頭。
• 盡管各編程語言的人氣地位沒有出現(xiàn)太大變化,但其整體環(huán)境正出現(xiàn)碎片化的分裂傾向,其中一部分占據(jù)統(tǒng)治優(yōu)勢的語言開始失去原有份額、而相應(yīng)空間則被R及Go等更具利基特性的語言所奪取。
無論如何,這樣的調(diào)查結(jié)果已經(jīng)充分證明了一項結(jié)果:Java與C++開發(fā)者們,不必驚慌、好好睡個安穩(wěn)覺吧。