早上讀到一則PHP7相關報導,雖然跟PHP沒什麼緣份,但文章裡附的一張後端語言市佔統計圖引起我濃厚的興趣。統計圖裡PHP佔了81.7%,ASP.NET則是16.1%,同時使用兩種語言的網站會重覆計算(假設為N%,很多PHP應是來自LAMP,Linux+Apache+MySQL+PHP,我認為N不會太高),故二者吃下81.7%+16.1%-N%的市場(說不定超過95%),而第三名Java只有3%。分佈數據裡PHP跟ASP.NET加起來就橫掃全球讓我意外,分享到專頁時順便提出ASP連0.1%都擠不上的疑問,莫非被混入ASP.NET計算?
同事J看到貼文認真去查了資料,指出 w3techs.com 網站的統計ASP.NET可以再展開成.NET 1.1, .NET 2.0跟.NET 4.0,推測並沒有納入ASP。
這不科學呀!ASP的市佔小於0.1%?我不信、我不信、我不信… (地上打滾)
用inurl:index.asp及inurl:default.asp Google可以分別查到八千萬及三千五百萬筆資料,其中以學校機關組織為大宗,也不乏銀行、樂透彩、機場等日常服務,也可找到應是最近才上線的超商、線上遊戲網站,來源更是遍佈海內外,單憑這個簡單抽樣,就很難說服我ASP的市佔低於0.1%。
深入研究 w3techs 的統計方式,試著解釋數字的由來:
- 以網站為單位,而非計算網頁數,只要全站有一個網頁用到,就認定該網站使用該技術。
- 統計對象限定在Alexa(Amazon.com的子公司)排名前一千萬名的大網站(2013六月前只統計前一百萬),取三個月的平均排名,Alexa有時會有流量統計誤差,但應已具足夠代表性。 (順便查了我的部落格,目前排名全球第15萬大,台灣區則排2343 :P)
- 不考慮子網域,例如 sub1.example.com 及 sub2.example.com 都被歸為 example.com 只算一個網站(同理:*.blogger.com, *.wordpress.com 也都只算一個)
- 不考慮導向他處的網域,例如:Sun.com 實際上被導到 Oracle.com,不計入考量。
- 經上述標準,前一千萬名網站篩選合併後只剩不到10萬個,但不影響統計有效性。
- 統計數字每天更新。
所以這個調查只發生在全球前10萬名的大網站,0.1%為100個,ASP.NET有16000個,ASP.NET與ASP混用實務上蠻常見的,難道其中找不到100個ASP.NET與ASP混用的樣本?進一步,我又在網站上找到一個重要線索「w3techs接受使用者的建議新增語言」,意味 w3techs 只鎖定注特定的語言(就技術面限制比對範圍是合理的),會不會ASP根本沒列入調查項目呢?
最後,我在後端語言介紹看到一段說明:…Shows a list of all 20 server-side programming languages monitored for our surveys…,在統計頁列出的語言有:PHP, ASP.NET, Java, static files, ColdFusion, Ruby, Perl, Python, JavaScript, Erlang, Miva Script, Lasso, Scala, Lua, Tcl, Smalltalk, C++, Haskell, Lisp, Ada,不多不少,剛好20個。
因此,在 w3techs 統計看不到 ASP 的原因是-身為被ASP.NET取代的前朝語言,它被 w3techs 無視了,儘管它很有可能還會再戰十年~
全案終結。