為什麼要從 C# 轉為 Java:淺談 .NET 與 Java 生態

本文是 從 C# 到 Java 系列的第一篇文章。整個系列的目錄請點擊此處瀏覽

C# 是 .NET 平臺上最重要的一門語言,Java 是世界上使用最廣的語言之一。這兩門語言有著太多的恩怨情仇,也有很多相似之處。C# 在最初創立的時候,或多或少借鑑了 Java 語言的優秀特性,但後期發展又和 Java 走上了不同的道路。

那麼,為什麼你要從一門語言,轉換為另一門很相似的語言呢?本文主要談談,為什麼在某些情況下,你可能需要,或者願意從基於 .NET 的 C# 轉移到基於 JVM 的 Java 語言平臺。

統一開發平臺,重用現有資產

  • 某些類型的開發不得不用 Java 開發,或者大多數人都在用 Java 開發。如 Android 開發,Android 的開發技術棧全部構建於 JVM 之上;所以整個團隊的開發語言只能遷就於上述原因來選用 Java;
  • 很多團隊或公司中,有大量現存的基於 Java 的資產(代碼、模塊、應用),統一開發語言和平臺可以降低團隊磨合、學習成本,重用現有代碼資產。而統一語言時顯然無法選擇 C#,因為 Java 適用面更廣(即很少有 Java 可做而 C# 無法做的領域或平臺)。

減少技術風險,方便技術學習

  • Java 的歷史更長,開發人員更多,社區也更大,如果在開發上遇到問題,有很多成熟的解決方案可以參考(俗稱的Google之);
  • 開發特定領域的程序時,Java 可借鑑的代碼和框架更多,避免遇到技術死角;大多數領域的開發已經在 Java 中有成功的案例,避免技術上潛在的風險。
  • 某些第三方產品或接口,官方優先支持 Java 或只支持 Java,使用其他平臺需要額外開發或進行封裝,導致開發效率和性能的問題。

減少開支

  • 靠譜的 Java 程序員更好招聘,可以減少用於招聘的人力資源成本;原因有二。一是 C# 確實比 Java 對開發者更貼心,所以導致了學習成本更低,造成了 C# 小白喪失了繼續學習的進取心,客觀上降低了 C# 開發者的平均水平;二是從絕對數量上來說,C# 開發者也少於 Java 開發者(如下圖)。
  • 基於 .NET 平臺的開發工具和相關產品普遍需要付費;基於 Java 的開發工具和相關產品免費的更多。

下圖為 2016年11月,在全球範圍內 C# 與 Java 語言的流行度對比,Java 排名第一,C# 排第四。

C# 與 Java 流行度對比
C# 與 Java 流行度對比

基於 Java 開發將擁抱更廣泛的生態

  • 如上圖所示,Java 長期在開發語言排行榜中流行程度排名第一,所以擁有更好的生態,即有成千上萬的成熟類庫大量的技術資料很多的現成代碼
  • Java 更偏向於基於 Linux/Unix 平臺的開發,而 .NET 在早期太多地依賴於 Windows,後期 .NET 雖然開源且跨平臺,但已為時略晚。在互聯網相關行業,Linux 及其生態圈比 Windows 繁榮得多。
  • Java 早已不是一個開發語言,而是一整個生態圈
  • Java 在語法、平臺技術上、開發效率上並非最好的,但卻是夠用的,且有出色的平衡性。雖然 Java 在哪個方面幾乎都不是最強的,但卻都說得過去。

說實話,我個人更偏愛 .NET 技術,其炫酷、性能優異、免費且跨平臺、開發效率高,但是,基於以上原因,有時 Java 是更務實的選擇。

如果你準備好了基於 Java,而不是 C# 開啟你的下一段代碼,就讓我們一起來學習吧!

本文是 從 C# 到 Java 系列的第一篇文章。整個系列的目錄請點擊此處瀏覽

当前页阅读量为: