2

閒聊 - C#、VB.NET 之開發者人數、定位與發展策略比較

 1 year ago
source link: https://blog.darkthread.net/blog/cs-n-vb-language-strategy/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

C#、VB.NET 之開發者人數、定位與發展策略比較-黑暗執行緒

像我這種明末清初開始寫 ASP 的老人,最早用 VBScript、VB6 寫網站,當進入 .NET 時代都要面臨抉擇:.NET 有 C# 與 VB.NET 兩種語言選項,讓學哪一種?

當時我選了 C# (【閒聊】大家選擇的是C#或VB.NET呢?),寫一陣子便深深愛上它。符號比 VB 簡潔、允許自由排版,風格與 JavaScript 相似,從後端切換寫前端時大腦負擔較小(但偶爾會不知不覺在 JavaScript 寫出 foreach (var ...) 或 是小困擾),加上接觸的 .NET Github 開源專案十之八九都是 C#,會 C# 如講母語般暢行無阻,覺得自己選對了。

在我心中,C# 的開發者人數應該遠大於 VB.NET。前幾年無意發現 VB.NET 在 TIOBE 程式語言排行榜的排名首次超越 C#,出現 VB.NET 與 C# 黃金交叉! 當時還做了考證,推測是 TIOBE 指標演算規則的誤差,實際的 C# 使用者應大於 VB.NET,但由讀者留言,在地球的某些角落某些領域,仍由 VB.NET 稱霸,故實際數字可能會比我所觀察到的再高一些。

前陣子無意看到 MS Learn 有篇 Microsoft .NET language strategy,提到 C# 與 VB.NET 使用者數量,可視為來自官方的數據,具有一定權威性:

  • C# - millions of developers,數百萬人
  • F# - many thousands of developers,數千人
  • VB.NET - hundreds of thousands of developers,數十萬人

這個數字算是印證先前「數量超過十倍」的推測,了結一件久懸疑惑。

而這篇文件更值得一看的是微軟對 C#、VB.NET 語言的定位及發展策略:(F# 目前不在我的技能樹及學習清單,先略過)

  1. C#
    C# 是一種跨平台多用途的開發語言,生態系強大應用廣泛,可開發出高效能的程式。C# 融合了許多物件導向設計典範,尤其是函數語言程式設計(Functional Programming)。Span<T> 等低階特性能實現不用 unsafe 也能寫出低階程式才有的高效能。.NET Runtime 及核心程式庫都是用 C# 開發,C# 的演進也將嘉惠所有 .NET 開發者。
    發展方向:C# 將配合開發者不斷變化的需求持續發展,作為最先進的程式語言,C# 被廣泛應用在各種領域,故會優先考慮對大多數開發者有利的語言和性能改進,並保持向前相容性。微軟會繼續擴大 .NET 生態系(社群)對 C# 發展方向的決定權,但會保留設計決策的管理權。
  2. VB.NET
    VB 作為一種易用的語言,主打清晰而非簡潔。數十萬 VB 開發人員主要集中在 Windows 客戶端程式開發,在這些領域一直表現出色,展現高度易用性。今日的 VB 是一個穩定且成熟的物件導向語言,並受惠於不斷成長的 .NET 生態系統和持續進化的工具。有些 .NET Workload 不支援 VB,VB 開發人員改用 C# 處理的場景也很常見。
    發展方向:策略上會確保 VB 直覺易用並具有穩定設計的程式語言定位。.NET 的核心程式庫(如 BCL)將持續支援 VB,.NET Runtime 及程式庫的改進也會讓 VB 受惠。當 C# 或 .NET Runtime 加入需要語言支援的新功能時,VB 會偏向消費者角色,避免新語法,VB 將不會擴展到新的 Workload。但 Visual Studio 仍會持續強化 VB 開發體驗,並與 C# 串接,特別是在 Windows Forms 等核心 VB 應用情境。

整個發展方向跟我之前的理解差不多,C# 將會是 .NET Runtime、核心資料庫的開發語言,也會是 .NET 開發社群的主要使用語言。C# 在語言特性及新語法發展上會比較積極,維持最先進程式語言的定位。而 VB.NET 也沒被放棄,在 Windows 客戶端 (Windows Form/WPF) 等領域會繼續發光發熱,Visual Studio 也會持續提升 VB.NET 開發體驗,但無法用在新技術新應用 (Workload) 上。換言之,既有 VB.NET 專案可安心用 VB.NET 繼續維護發展,沒有支援到期問題,不需要積極考慮更換語言;但如是新專案,想更完美應用較新技術,C# 是更好的選擇。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK