为什么要从 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 系列的第一篇文章。整个系列的目录请点击此处浏览

当前页阅读量为: