您的位置  > 互联网

为什么市场和大部分程序员会选择Java而不是C#?

虽然每个月都会有几起关于Java“死亡”或“准备被杀”的报道,但总体来说,Java在技术人员中的受欢迎程度一直很高。 根据TIOBE编程语言指数,Java自2002年以来一直稳居前3名,近年来几乎一直以压倒性优势稳居第一。 相比之下,C# 的受欢迎程度要​​低得多,其整体受欢迎程度是 Java 的两倍多。

为什么市场和大多数程序员选择Java而不是C#?

1. 微软有成功也有失败

微软之于C#,就像萧何之于韩信一样。

众所周知,C#是一种面向对象的高级编程语言,运行在微软发布的.NET上,因此微软在支持C#方面也是非常卖力的。 它被公认为“宇宙中第一个IDE”。 C#背靠这么一座大山,在开发效率上简直就是天助。

不过,众所周知,微软在开支上从来不手软。 使用C#开发的软件的应用成本远高于使用Java开发的软件。 对于企业来说,如果有一个可以降低成本的替代方案,无论是硬件成本还是软件成本,都是非常好用的。 在这方面,Java似乎更胜一筹!

2. 错过跨平台机会,一切都陷入停顿。

跨平台是Java最大的优点之一。 Java应用程序可以部署在Linux、Mac和Java JRE支持的其他操作系统上。 至于C#,由于微软本来想推广自己的操作系统,所以没有提供任何其他的环境,这限制了C#的发展。 虽然微软现在意识到了这个问题,并开始积极适配其他平台,但机会已经过去了,Java已经在大型系统的开发中站稳了脚跟。

3、开源是世界大势

2016年,微软击败并位列“拥有最多开源贡献者(with the most open)的组织”第一名,赢得了业界和开源社区的认可。 此时,人们似乎将微软与开源联系在一起。

事实上,微软这几年一直是开源的死敌。 微软前CEO史蒂夫·鲍尔默(Steve )曾称“开源”是微软知识产权的毒瘤。 C#是在微软的指导思想下开发的,一开始就预料到它会闭源。 由于其开源特性,Java在全球范围内迅速传播,产生了许多开源框架和许多大型项目的成功案例。 虽然此后C#也开源了,但对于开源开发者来说显然吸引力还不够!

4.钱太少,钱太少,钱太少,重要的事情说三遍

“Java程序员的薪资比C#程序员高”这是大家都承认的行业现实。 下图是智游记收集了北京地区C#程序员和Java程序员的薪资和收入水平样本后得出的结论。 从图中我们也可以明显感觉到Java程序员的收入比C#程序员的收入要高。

为什么会出现这种情况? 正如前面提到的,Java 有很多开源框架。 这时,如何准确、及时地选择框架就成了问题。 Java编程的门槛提高了,Java程序员的薪资也随之提高。 至于C#,很多框架都是“认证产品”。 产品具有很强的微软属性,使用方便,开发速度快。 C#程序员的要求比较低,工资自然也低。 此外,还有一些历史原因。 Java 的历史比 C# 更悠久。 自然,选择Java进行开发的厂商也越来越多,市场需求也巨大。

“钱、人、发展”之间的关系似乎是一个无限循环。 钱越少,开发出来的程序员就越少。 如果企业想要使用这项技术来开发应用程序,那么招聘就会更加困难,反之亦然。 是的!

5、不可避免的生态问题

每次比较Java和C#的差异都会提到生态问题。 不可否认,Java生态系统比C#生态系统强大得多。 Java拥有各种现成的库、框架和架构示例,并且在跨平台系统方面也具有许多优势。 一家数据管理软件开发公司营销和开发者关系副总裁 Miko 曾表示,现在已经有相当大规模的用 Java 编写的开源项目。 对于从一开始就以开放为基础的Java,他们建立了庞大的用户社区、源代码自由和构成的多样性。 C# 在开源社区的支持方面还有很长的路要走。 毕竟,Java 八年前就已经开源了!

写在最后

在很多地方,我都听到程序员抱怨“C#的工资太低”、“想转行Java”……从技术和语言舒适度上来说,两者其实是差不多的。 每种语言的优缺点都要在实际应用案例中体现出来,所以选择时一定要结合实际场景!