PHP 到底排第幾?TIOBE 排行榜來證明!
做為一名程序員,都比較關(guān)注其使用編程語言的熱度,一方面編程語言的熱度決定了它擁有多大的市場,另一方面也關(guān)系到行業(yè)內(nèi)程序員選擇機(jī)會(huì)有多大。我們總聽說某個(gè)編程語言排名第一,那么這些數(shù)據(jù)到底準(zhǔn)不準(zhǔn)確呢?
1.PHP是不是宇宙第一?
比如,我們經(jīng)常會(huì)聽到一句話:PHP 是宇宙第一編程語言。
關(guān)于這個(gè)問題,我們很容易在 TIOBE 排行榜上得到求證,上圖是2002-2019年前10大編程語言排行情況??梢悦黠@看出 PHP 雖然也算是一個(gè)比較流行的編程語言,但其歷史上就從來沒有成為過第一,在 PHP 最巔峰時(shí)刻,排名成績也只能在第三、四名。那么這些數(shù)據(jù)是從何而來,又是如何計(jì)算的呢?我相信每個(gè)程序員應(yīng)該都聽說過 TIOBE 這個(gè)名字,因?yàn)閹缀趺吭露加忻襟w報(bào)道當(dāng)月 TIOBE 編程語言排行榜,以至于它成為編程語言排行榜領(lǐng)域最權(quán)威的組織。所以我一直就在好奇,TIOBE 到底是個(gè)什么機(jī)構(gòu)?他們又是如何計(jì)算編程語言排行榜的?且聽我慢慢道來。
2.TIOBE 公司介紹
TIOBE 公司成立于 2000年10月1日,由瑞士的公司 Synspace 和一些獨(dú)立的投資人創(chuàng)建。TIOBE是"The Importance Of Being Earnest"的縮寫,該公司主要關(guān)注于軟件質(zhì)量的評估。
TIOBE 程序設(shè)計(jì)語言指數(shù)是由該公司推出并進(jìn)行維護(hù)的,這個(gè)指數(shù)將程序設(shè)計(jì)語言以排名列表的形式提供出來,并且每個(gè)月更新一次,用來表示程序設(shè)計(jì)語言的流行度。TIOBE 排行榜是根據(jù)互聯(lián)網(wǎng)上有經(jīng)驗(yàn)的程序員、課程和第三方廠商的數(shù)量,并使用搜索引擎(如Google、Bing、Yahoo!)以及 Wikipedia、Amazon、YouTube 統(tǒng)計(jì)出排名數(shù)據(jù),只是反映某個(gè)編程語言的熱門程度,并不能說明一門編程語言好不好,或者一門語言所編寫的代碼數(shù)量多少。該指數(shù)可以用來檢閱開發(fā)者的編程技能能否跟上趨勢,或是否有必要作出戰(zhàn)略改變,以及什么編程語言是應(yīng)該及時(shí)掌握的。觀察認(rèn)為,該指數(shù)反應(yīng)的雖并非當(dāng)前最流行或應(yīng)用最廣的語言,但對世界范圍內(nèi)開發(fā)語言的走勢仍具有重要參考意義。下圖為 TIOBE 10 月最新編程語言前20名:
榜單地址:https://www.tiobe.com/tiobe-index/
3.TIOBE編程語言排名的評估方法
TIOBE 指數(shù)的評估是通過統(tǒng)計(jì)該編程語言在主流搜索引擎上被搜索的次數(shù)來計(jì)算的。搜索包括在搜索引擎,新聞組及博客上的搜索等,主流搜索引擎由 Alexa.com 網(wǎng)站上的排名來決定。
一般來說,只有符合條件的搜索引擎,符合條件的編程語言才會(huì)被計(jì)入 TIOBE 指數(shù)。
下面有25個(gè)搜索引擎用于計(jì)算 TIOBE 指數(shù)。所選搜索引擎是 Alexa 排名最高的25個(gè)符合以下條件的網(wǎng)站:
- 該網(wǎng)站的入口頁面包含一個(gè)搜索工具
- 查詢該網(wǎng)站的結(jié)果包含頁面點(diǎn)擊數(shù)量的指示結(jié)果
- 應(yīng)該以帶有清晰標(biāo)簽的 HTML
- 具有特殊字符的語言搜索引擎應(yīng)該被正確編碼
- 搜索引擎應(yīng)該至少返回1個(gè)查詢
- 查詢該網(wǎng)站的結(jié)果不應(yīng)包含太多的異常值
- 色情網(wǎng)站不包含在內(nèi)
基于上面的標(biāo)準(zhǔn),符合條件的搜索引擎如下:
- Google.com: 7.69%
- Baidu.com: 7.38%
- Wikipedia.org: 7.08%
- Yahoo.com: 6.77%
- Csdn.net: 6.46%
- Bing.com: 6.15%
- Google.com.hk: 5.85%
- Ebay.com: 5.54%
- Google.co.in: 5.23%
- Msn.com: 4.92%
- Hao123.com: 4.62%
- Amazon.in: 4.31%
- Google.com.br: 4.00%
- Google.co.jp: 3.69%
- Google.de: 3.38%
- Google.ru: 3.08%
- Amazon.co.uk: 2.77%
- Google.fr: 2.46%
- Indeed.com: 2.15%
- Google.es: 1.85%
- Google.it: 1.54%
- Sogou.com: 1.23%
- Google.cn: 0.92%
- Google.com.tw: 0.62%
- Google.com.mx: 0.31%
可以看到大部分的搜索引擎都來自谷歌,也從另一方體現(xiàn)了谷歌的國際化程度。國內(nèi)主要有百度、Csdn、Hao123、搜狗等符合條件,這個(gè)結(jié)果凸顯了百度、 CSDN 和 搜狗在國際上的影響力。
也可以說主要是由以上 25 個(gè)網(wǎng)站,每個(gè)月的搜索情況來決定當(dāng)月編程語言的排行榜。
指數(shù)計(jì)算公式
如果用 "hits(PL#i,SE)"表示編程語言 PL 在搜索引擎 SE 上的指數(shù)排名為 i 的搜索次數(shù),n 表示搜索引擎?zhèn)€數(shù),則 PL 在前 50 名編程語言中排名評估的計(jì)算公式為
- ((hits(PL#i,SE1)/hits(PL#1) + ... + hits(PL#50)) + ... + (hits(PL#i,SEn)/hits(PL#1) + ... + hits(PL#50)))/n
4.TIOBE指數(shù)的3個(gè)必備條件
被選入 TIOBE 指數(shù)的編程語言必須滿足3個(gè)必備條件:
①它在維基百科有屬于自己的詞條,且維基百科清晰地陳述了它是一門編程語言,這就是為什么(Ruby on) Rails, Excel, Android, Boost, Cocoa, ASP and AJAX 沒有被選進(jìn) TIOBE 指數(shù)排行中的原因。
②它應(yīng)該具有圖靈完整性(http://en.wikipedia.org/wiki/Turing_completeness),因此 XML 和 HTML 不能被計(jì)入其中,這個(gè)約束對數(shù)據(jù)查詢語言 SQL 也是有效的,例如你無法使用 SQL 寫出一個(gè)無限循環(huán)。換一方面來說,由 SQL 擴(kuò)展出的 PL/SQL 和 Transact-SQL 屬于編程語言的范疇。
③它對于格式為+" programming" 的關(guān)鍵詞必須至少命中5000次另外那些相似的編程語言會(huì)被分配到一起,但目前為止,只會(huì)計(jì)算那些分組到一起的中搜索命中次數(shù)最高的那個(gè),后期將考慮使用這些被分組在一起的編程語言的數(shù)學(xué)并集作為它們的搜索命中次數(shù)。下面是多個(gè)編程語言被分成一個(gè)組的規(guī)則條件:①如果語言有其自己的維基百科條目,則不會(huì)與其他語言分組。②如果語言 A 自動(dòng)重定向到另一個(gè)維基百科條目 B,則 A 將與 B 一起分組。③如果語言 A 沒有單獨(dú)的維基百科條目,但作為另一個(gè)維基百科條目 B 的一部分提及,則 A 將與 B 一起分組。
5.年度編程語言
TIOBE每年還會(huì)評選出一門年度編程語言,表示該門語言在當(dāng)年的排名中上升幅度最大。比如在 2018 年的時(shí)候 Python 就被評選為年度編程語言,我們從排行榜上也能看出 2018 年 Python 直接飆升到第三名。
歷年的年度編程語言如下:
2018 Python
2017 C
2016 Go
2015 Java
2014 JavaScript
2013 Transact-SQL
2012 Objective-C
2011 Objective-C
2010 Python
2009 Go
2008 C
2007 Python
2006 Ruby
2005 Java
2004 PHP
2003 C++
6.最后
TIOBE只是反映某個(gè)編程語言的熱門程度,并不能說明一門編程語言好不好。所以如果你使用的編程語言沒有排在前面也不要太沮喪,它并不代表使用的編程語言重要程度。
但是關(guān)注 TIOBE 編程語言排行榜也具有一定指導(dǎo)意義,做為編程領(lǐng)域內(nèi)唯一具有權(quán)威性的排行榜,對我們選擇編程語言時(shí)起到一個(gè)參考作用,畢竟誰也不想學(xué)一個(gè)沒有市場的編程語言。編程語言的熱度也是市場的一種反應(yīng),比如 2015年 因?yàn)?Andriod 的大爆發(fā),Java 成了年度編程語言;2018 年人工智能大熱,Python 直接飆升到排名第三。對于一名想要從事編程工作的小白來講,選擇編程語言時(shí)最好選擇排名比較靠前的,這樣不論是學(xué)習(xí)資料還是工作機(jī)會(huì)都相對比較多,后面發(fā)展的機(jī)會(huì)也相對多一點(diǎn)。
參考:
http://www.htmer.com/article/732.htm
https://www.shukaiming.com/article/55