不小心瞄到網路文章,驚奇發現:

2018 年 7 月發生一件大事,VB.NET 在 TIOBE 程式語言排行榜的排名首次超越 C#。 五個月後,VB.NET 更上層樓破天荒擠進前五名來到歷史高點。

雖然上個月(2019 年 7 月) C# 再次超越 VB.NET 奪回第五名寶座,結束為期一年的 VB.NET 黃金交叉傳說。但我心中還是不斷迴響著:花惹發?

來張圖紀念這段歷史:

VB.NET 的熱門度與流行度勝過 C#?這徹底巔覆我的認知,差異幅度之大,不禁懷疑整個大氣層都是我的同溫層... Orz

依我的理解,C# 開發者數量應遠大於 VB.NET,微軟的 .NET Open Source 專案清一色是用 C#,新技術推出時也多以 C# 為主,VB.NET 支援常常較晚才補上(或是永遠缺席), 我仍維持丞相,起風了!從ASP.NET 5的變革談起提過的觀點:

VB.NET 的歷史任務已結束,使用者將愈來愈少,開始市場變小投入研發資源跟著變少的循環,進而走入歷史。

補上實際數字佐證我的觀點:

  1. Github 的進階搜索語言選單有個「Popular」(熱門)分類,共列了 ActionScript, C, C#, C++, Clojure, CoffeeScript, CSS, Go, Haskell, HTML, Java, JavaScript, Lua, MATLAB, Objective-C, Perl, PHP, Python, R, Ruby, Scala, Shell, Swift, TeX, Vim script 25 種,有 C#,但不包含 Visual Basic,Github 的語言項目甚至沒列入 VB.NET,VB.NET 專案被歸成「Visual Basic」:
  2. Github 查詢 C# 語言Visual Basic,Repository 的數量是 10.8 萬比 353,比例縣殊。
  3. Google 查詢 *.vbproj 有 12.5 萬筆資料,查詢 *.csproj 則有 114 萬筆,約 1/9。
  4. LinkedIn 的職缺搜尋功能,自動完成提示項目包含 VB.NET 與 C#,剛好用來比較:

    比較全球 C# 與 VB.NET 相關職缺數量,獲得 21.7 萬 vs 634 的數字參考:
  5. 那台灣呢?以人力銀行資料當樣本,C# vs VB.NET 的職缺數為 4642 比 343:

大家評評理,基於上述觀察,深信 C# 比 VB.NET 熱門十倍以上不為過吧?若這一切全是假象,我肯定是活在駭客任務母體營造的虛擬世界。

那 TIOBE 的調查結果是怎麼一回事?

依據維基百科,TIOBE 程式語言排行榜的正式名稱是 Programming Community Index,由 TIOBE 公司發明與維護, 依據 Google、Google Blog、MSN、Yahoo!、百度、維基百科、YouTube 等搜尋結果計算而得,作為各種程式語言「熱門或受歡迎程度」的指標。(強調:受歡迎與程式好壞無關,勿戰) TIOBE 公司認為搜尋結果筆數可反映具備該技能的工程師、課程及職缺數量。

理論聽起來合理,但 TIOBE 指標跟一般開發者認知有段差距,不說別的,你相信使用 C# 的開發者比寫 JavaScript 的開發者多嗎? TIOBE 2019 排行榜,C# 排第五、VB.NET 第六、JavaScript 排第七... 這點也讓很多人想翻桌吧?

我認同這篇 Quora 問答 中的網友分析。 (註: Quora 是一個線上問答網站,可想像成國際化的知乎騎魔姿勢佳)

TIOBE 的測量方式是用 +"<language> programming" 之類的關鍵字查詢結果筆數作為參考。 評估 VB.NET 用的關鍵字包含 Visual Basic .NET, VB.NET, Visual Basic.NET, Visual Basic (confidence: 50%), VB (confidence: 50%), 而 C# 為 C#, C-Sharp, C Sharp, CSharp, CSharp.NET, C#.NET。 即使加上雙引號,Google 等搜索引擎有所謂「智慧型演算法」,試圖涵蓋更多可能結果讓 "visual basic programming" 查詢混入非 VB.NET 相關項目,可能是讓數據失真的原因。

由以上分析,TIOBE 指標的準確性取決於其獨創測量方法的誤差,搜尋引擎廠商修改演算法時也可能產生明顯影響(2004 年 Google 清理操作排名行為便造成排名瞬間波動)。

而另一個大哉問是:搜尋結果筆數多就比較熱門?資料多不一定查的人就多呀。

這幾年大家評估熱門程度(如:網路聲量)的主流指標是 Google Trends, 若你對 TIOBE 熱門語言排行榜的可信度存疑,有另一個「以 Google Trends 數據為基準,以使用者在 Google 查詢程式教學為指標」的熱門程式語言排行 - PYPL,PopularitY of Programming Language。它的最新排行是 Python、Java、JavaScript、C#、PHP、C/C++..., 顯然較符合主流認知。

跟宗教信仰一樣,程式語言不該存在誰比誰好的問題(開發者們就別戰語言了,把自己選擇的語言摸到精通爛熟比較實際),但信徒多寡為客觀數字可被調查統計, 如果要選個程式語言熱門指標參考,PYPL 感覺比 TIOBE 更符合現實。

My research of why VB.NET is more popular than C# in TIOBE programming language ranking.


Comments

# by 不用懷疑

有什麼好懷疑的嗎?你在的可能是資訊業 純軟體業 講究的是DataBase ,前端,後端的處理 系統整合 工控 自動化 儀控業 通通都是VB.net 這些人不需要高深的軟體知識 他們更多的精神力量投入在產業knowhow 這些人才不去看你所說得那些指標

# by Jeffrey

to 不用懷疑,我絕對相信VB.NET在某些領域完全制霸,而用「這些領域較不依賴網路資源」或許可解釋 VB.NET 網路聲量遠不及 C# 的原因。但工作職缺數相差十倍以上以及市面上難見VB.NET書籍這兩點,讓人有充分理由懷疑「VB.NET 比 C# 熱門」的真實性。(總不能硬說 VB.NET 開發者都不看書,不用網路找工作吧?)

# by Lik

我是VB6起家,再到VB.NET,都是寫WIN FORM。學習C#後就轉戰MVC 和Web API了。

# by Ark

VB相對老,無聊也沒啥新的好碰,工作也相對的穩定,不想換可一直賴到死,也沒想換啥工作環境的動力,職缺數量就被卡死擠壓,然後程式碼應該是故意寫的肥滋滋的可以用來保護自己,遇到職場競爭時就可以攤出來說些啥舊有包袱之類的垃圾話嚇嚇老闆…以上偏見還望各路英雄賜教

# by 馬克

我入門是vb .net,我個人真的偏好vb .net,原因有人有興趣再聊。 我買書看文章,一樣都只有c#可讀,但完全沒困難。 真正說服我改c#,是因為open source後,community讓c#的成長速度太快了。

# by 小熊子

還有delphi #留言考驗數學還要進退位

# by Huang

什麼語言都沒關係,IDE好用最重要

# by Sting

系統整合 工控 自動化 儀控業 通通都是VB.net? 我不太同意上面這句喔,我們本身跟客戶大部分都C#為主了

# by 花惹發

VB.net跟C#幾乎有等同的能力 除了 Xamarin跟一些比較尖端新潮的功能 問題VB.net開發速度明顯高過C# 而且入門跟維護都相對簡單 整天喊C#更優的我很懷疑你們的產能耶 有人會沒事一直去try MSDN最新技術嗎? 那這種自己都沒掌握的技術又沒完整的範例 你們做出來的東西很堪憂

# by 不用懷疑

不要忘了2010以前 .net是VB的天下喔 , 當時連書都賣得比C#好五倍以上, 台灣三大軟體公司以前都用VB.net的 , 更別忘記更久遠之前 VB6盤據第一名過, C#講難聽也就這幾年勢頭 , 哪來的優越感C#一直比VB好? 現在又被Java培訓員拿去練等兼挖腳。

# by Steven

已經2019了,喜歡就用。

# by Good Luck

看了一下日曆,還沒我沒記錯現在是2019年

# by JM

結果還是有人要戰語言

# by 都別吵

都別吵,Python才是王道,Java半年資歷薪資就飛天了,微軟就是內鬥內行

# by loser

工控 自動化(AGV或robot) VB.net./Python..路過

# by 開這篇文章就是戰語言不是?

C#: serialPort1.Parity = (Parity)Enum.Parse(typeof(Parity), Parity_comboBox.Text); VB.net SerialPort1.Parity = ComboBox.Text 誰贏一目了然

Post a comment


75 + 11 =