PHP 是不是宇宙第一?程式設計師不要再爭論了!TIOBE 排行榜來證明

編程小火車 發佈 2020-01-11T09:40:00+00:00

比如在2018 年的時候 Python 就被評選為年度程式語言,我們從排行榜上也能看出 2018 年 Python 直接飆升到第三名。

做為一名程式設計師,都比較關注其使用程式語言的熱度,一方面程式語言的熱度決定了它擁有多大的市場,另一方面也關係到行業內程式設計師選擇機會有多大。

我們總聽說某個程式語言排名第一,那麼這些數據到底準不準確呢?

1、PHP是不是宇宙第一?

比如,我們經常會聽到一句話:PHP 是宇宙第一程式語言。

關於這個問題,我們很容易在 TIOBE 排行榜上得到求證,上圖是2002- 2019 年前 10 大程式語言排行情況。

可以明顯看出 PHP 雖然也算是一個比較流行的程式語言,但其歷史上就從來沒有成為過第一,在 PHP 最巔峰時刻,排名成績也只能在第三、四名。

那麼這些數據是從何而來,又是如何計算的呢?

我相信每個程式設計師應該都聽說過 TIOBE 這個名字,因為幾乎每月都有媒體報導當月 TIOBE 程式語言排行榜,以至於它成為程式語言排行榜領域最權威的組織。

所以我一直就在好奇,TIOBE 到底是個什麼機構?他們又是如何計算程式語言排行榜的?且聽我慢慢道來。

2、TIOBE 公司介紹

TIOBE 公司成立於2000 年 10 月 1 日,由瑞士的公司 Synspace 和一些獨立的投資人創建。TIOBE是"The Importance Of Being Earnest"的縮寫,該公司主要關注於軟體質量的評估。

TIOBE 程序設計語言指數是由該公司推出並進行維護的,這個指數將程序設計語言以排名列表的形式提供出來,並且每個月更新一次,用來表示程序設計語言的流行度。

TIOBE 排行榜是根據網際網路上有經驗的程式設計師、課程和第三方廠商的數量,並使用搜尋引擎(如Google、Bing、Yahoo!)以及 Wikipedia、Amazon、YouTube 統計出排名數據,只是反映某個程式語言的熱門程度,並不能說明一門程式語言好不好,或者一門語言所編寫的代碼數量多少。

該指數可以用來檢閱開發者的編程技能能否跟上趨勢,或是否有必要作出戰略改變,以及什麼程式語言是應該及時掌握的。觀察認為,該指數反應的雖並非當前最流行或應用最廣的語言,但對世界範圍內開發語言的走勢仍具有重要參考意義。

下圖為2019年 TIOBE 11 月最新程式語言前 20 名:

3、TIOBE程式語言排名的評估方法

TIOBE 指數的評估是通過統計該程式語言在主流搜尋引擎上被搜索的次數來計算的。搜索包括在搜尋引擎,新聞組及博客上的搜索等,主流搜尋引擎由 Alexa.com 網站上的排名來決定。

一般來說,只有符合條件的搜尋引擎,符合條件的程式語言才會被計入 TIOBE 指數。

下面有 25 個搜尋引擎用於計算 TIOBE 指數。所選搜尋引擎是 Alexa 排名最高的 25 個符合以下條件的網站:

(1)該網站的入口頁面包含一個搜索工具

(2)查詢該網站的結果包含頁面點擊數量的指示結果

(3)應該以帶有清晰標籤的 HTML

(4)具有特殊字符的語言搜尋引擎應該被正確編碼

(5)搜尋引擎應該至少返回 1 個查詢

(6)查詢該網站的結果不應包含太多的異常值

(7)色情網站不包含在內

基於上面的標準,符合條件的搜尋引擎如下:

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%

可以看到大部分的搜尋引擎都來自谷歌,也從另一方體現了谷歌的國際化程度。國內主要有百度、Csdn、Hao123、搜狗等符合條件,這個結果凸顯了百度、 CSDN 和 搜狗在國際上的影響力。

也可以說主要是由以上 25 個網站,每個月的搜索情況來決定當月程式語言的排行榜。

指數計算公式

如果用 "hits(PL#i,SE)"表示程式語言 PL 在搜尋引擎 SE 上的指數排名為 i 的搜索次數,n 表示搜尋引擎個數,則 PL 在前 50 名程式語言中排名評估的計算公式為

((hits(PL#i,SE1)/hits(PL#1) + ... + hits(PL#50)) + ... + (hits(PL#i,SEn)/hits(PL#1) + ... + hits(PL#50)))/n

4、TIOBE指數的 3 個必備條件

被選入 TIOBE 指數的程式語言必須滿足 3 個必備條件:

①它在維基百科有屬於自己的詞條,且維基百科清晰地陳述了它是一門程式語言,這就是為什麼(Ruby on) Rails, Excel, Android, Boost, Cocoa, ASP and AJAX 沒有被選進 TIOBE 指數排行中的原因。

②它應該具有圖靈完整性(http://en.wikipedia.org/wiki/Turing_completeness),因此 XML 和 HTML 不能被計入其中,這個約束對數據查詢語言 SQL 也是有效的,例如你無法使用 SQL 寫出一個無限循環。換一方面來說,由 SQL 擴展出的 PL/SQL 和 Transact-SQL 屬於程式語言的範疇。

③它對於格式為+" programming" 的關鍵詞必須至少命中 5000 次

另外那些相似的程式語言會被分配到一起,但目前為止,只會計算那些分組到一起的中搜索命中次數最高的那個,後期將考慮使用這些被分組在一起的程式語言的數學並集作為它們的搜索命中次數。

下面是多個程式語言被分成一個組的規則條件:

①如果語言有其自己的維基百科條目,則不會與其他語言分組。

②如果語言 A 自動重定向到另一個維基百科條目 B,則 A 將與 B 一起分組。

③如果語言 A 沒有單獨的維基百科條目,但作為另一個維基百科條目 B 的一部分提及,則 A 將與 B 一起分組。

5、年度程式語言

TIOBE每年還會評選出一門年度程式語言,表示該門語言在當年的排名中上升幅度最大。比如在 2018 年的時候 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++

最後

TIOBE只是反映某個程式語言的熱門程度,並不能說明一門程式語言好不好。所以如果你使用的程式語言沒有排在前面也不要太沮喪,它並不代表使用的程式語言重要程度。

但是關注 TIOBE 程式語言排行榜也具有一定指導意義,做為編程領域內唯一具有權威性的排行榜,對我們選擇程式語言時起到一個參考作用,畢竟誰也不想學一個沒有市場的程式語言。

程式語言的熱度也是市場的一種反應,比如2015 年 因為 Andriod 的大爆發,Java 成了年度程式語言;2018 年人工智慧大熱,Python 直接飆升到排名第三。

對於一名想要從事編程工作的小白來講,選擇程式語言時最好選擇排名比較靠前的,這樣不論是學習資料還是工作機會都相對比較多,後面發展的機會也相對多一點。

希望文章對你有幫助~

想要在程式設計師生涯內有更高的成就的話,最最重要的是儘可能的提升自己的編程能力,並且,與其想著怎麼去提升,不如從現在開始動手動腦,如果對於C/C++感興趣的話,可以關注+私信小編【C/C++編程】有一些視頻希望可以幫助到你,學習不怕從零開始,就怕從不開始。

關鍵字: