為什麼要從 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# 排第四。
基於 Java 開發將擁抱更廣泛的生態
- 如上圖所示,Java 長期在開發語言排行榜中流行程度排名第一,所以擁有更好的生態,即有成千上萬的成熟類庫、大量的技術資料、很多的現成代碼;
- Java 更偏向於基於
Linux/Unix
平臺的開發,而 .NET 在早期太多地依賴於 Windows,後期 .NET 雖然開源且跨平臺,但已為時略晚。在互聯網相關行業,Linux 及其生態圈比 Windows 繁榮得多。 - Java 早已不是一個開發語言,而是一整個生態圈。
- Java 在語法、平臺技術上、開發效率上並非最好的,但卻是夠用的,且有出色的平衡性。雖然 Java 在哪個方面幾乎都不是最強的,但卻都說得過去。
說實話,我個人更偏愛 .NET 技術,其炫酷、性能優異、免費且跨平臺、開發效率高,但是,基於以上原因,有時 Java 是更務實的選擇。
如果你準備好了基於 Java,而不是 C# 開啟你的下一段代碼,就讓我們一起來學習吧!
本文是 從 C# 到 Java 系列的第一篇文章。整個系列的目錄請點擊此處瀏覽。
© 轉載需附帶本文連結,依 CC BY-NC-SA 4.0 釋出。