天天看點

是什麼讓C#成為最值得學習的程式設計語言

随着 Web、iOS、Android、智能裝置的流行,新的程式設計語言紛紛湧現并表現不俗,如 Ruby,Python,Scala,Go,Node.js,Swift 等。反觀已經發展了近20年的 C# 語言(或者這裡應該更準确的說是 .Net Framework),因為天生的平台局限,導緻很多的 C# 程式員為了生計和前途紛紛轉行投入的新語言的懷抱。

就在此時,微軟的 .Net Core 橫空出世

跨平台:可以在 Windows、MacOS 和 Linux 上運作。

相容性: .NET Core 通過 .NET 标準庫與 .NET Framework、Xamarin 和 Mono 相容。

開源:運作時、庫、編譯器、語言和工具都是 GitHub 的開放源代碼。

統一:通過标準庫來保證代碼複用。

強大的生态環境

根據以上 .Net Core 所具備的優勢,無疑是給以 C#(包括VB.NET)作為首選程式設計語言的工程師的一劑強心針。

以下将從6個方面闡述為什麼 C# 成為最值得學習的程式設計語言,甚至可以說 C# 是給初學程式設計最值得推薦的語言。

學習門檻低

如果你曾經做過 C、Java 或者是 JavaScript 的程式設計,那麼你會感覺對 C# 的文法感到非常熟悉,C# 的文法非常的容易閱讀和了解。根據最新釋出的 TIOBE 統計,有數以百萬計的開發人員可以輕松地從 Java 或 C語言程式設計切換到 C# 語言程式設計。

即使你完全沒有任何的程式設計經驗,大量的書籍和線上文檔也不是新興語言可以比拟的,另外還有很多線上資源可以幫助你學習 C#

具備現代語言的所有特點

.NET Core 有一些頂級功能:

強類型。

強大的基類庫。

異步程式設計 - 易于使用的異步/等待模式。

垃圾收集,自動記憶體管理。

LINQ - 語言內建查詢。

泛型 - List<T>,  Dictionary<T, T>。

包管理。

跨多個平台和架構共享二進制檔案的能力。

使用的架構來建立 MVC Web 應用程式和 RESTful API。

多功能性:Web,移動,伺服器,桌面應用

關于 C# 和 .NET 的最出衆的一點就是它的多功能性。Xamarin 可以編寫桌面應用程式,Web 應用程式,背景服務,甚至移動應用程式。除了 C#,我真正需要知道的隻是少量的 JavaScript 來将一些 UI 代碼集中在一起。ASP.NET Core 模闆甚至使用 Bootstrap 布局和 npm 來存入用戶端庫。

多功能性是一個很大的優勢,這樣你所學的語言就可以用于各種各樣的場景中,你的技能适用性就更強。如果你想組合所做的東西,就可以從開發 web 應用程式跳轉到開發移動應用程式。對于隻能在伺服器端工作的大多數其它程式設計語言,這是一個很大的差別。

同時,也請不要忘記 Microsoft Azure 的支援。Microsoft Azure 讓啟動和運作變得如此簡單,隻需點選幾下即可将應用部署到雲端。Microsoft Azure 還支援 Docker 容器,可以輕松地将應用程式部署到 AWS 或其它托管提供商。

最好的開發工具(沒有之一)

Visual Studio 一直被視為适用于開發人員的最佳 IDE,微軟已經釋出了最新的 VS 2017 用來支援 .Net Core,在一個環境中支援代碼編寫、調試、分析、git 內建、單元測試等功能。Visual Studio 現在提供了功能齊全的免費社群版本。 

當然,也可以使用自己喜歡的文本編輯器,作為編寫 .NET Core 代碼的基本文本檔案。你也可以在任何作業系統上将 Visual Studio 編碼工具當做一個良好的基本代碼編輯器。即使對于那些永遠不會放棄 vim 或 emacs 的人來說,依舊可以做 C# 開發。你還可以為 Visual Studio 安裝一個插件,來添加所有喜歡的快捷鍵。

整個 .NET 生态系統也充滿了令人驚奇的開發者工具。例如,我無法想象沒有 Jetbrains 中的 Resharper 的生活。.NET 生态系統存在數十種極好的的工具,既包括開源的,也包含商業産品的。

标準化類庫

.NET 帶有了一套非常好的基類庫。與 Node.js 不同,.NET 内置了簡單的字元串函數,如 LeftPad()。各種各樣的基礎類減少了對外部包的需求。Microsoft 也樂于像 JSON.NET 這樣的社群項目一樣,成為大多數項目中廣泛使用的關鍵庫。

Microsoft 為 .NET 提供了一套非常好的模式和實踐。例如,有内置的标準資料通路(實體架構)和模型 - 視圖 - 控制器(MVC)架構。大多數開發人員都在使用這些标準架構,這使開發人員可以輕松地在團隊之間遷移,并快速了解項目的工作原理。正式由于這一點,你的知識和技能才變得更加具有适用性。

.NET Core 是開源的

.NET 發生的最大變化之一,就是其開源了代碼。幾乎所有的代碼現在都在GitHub上,供任何人檢視,分享和貢獻。這是一個巨大的變化,大多數人從未想過會發生。

作為開發人員,你需要不時的了解你的代碼正在做什麼。例如,過去需要通過調用資料庫連接配接的 Dispose( ) 來确認是否關閉了連接配接。現在你可以通路源代碼,來快速驗證這些類型的問題。

即使你沒能對源代碼做出貢獻,你也可以從巨大的社群中受益。問題和改進可以快速讨論,編碼和釋出,以便你定期使用。那些需要花費數年等待釋出重大改進或小錯誤修複的時代已經過去了。

總結:微軟 .Net Core 的推出,無疑給具備龐大基數的 .Net 平台開發者們,提供了絕佳的機會,可以預見,在未來的幾年内,使用 C# 語言基于 .Net Core 平台開發勢必成為流行。

繼續閱讀