苏州网站建设:C#.net确实没有Java/Python/go受青睐,归根结底还是生态问题。
1.语言特性
C#非常容易上手,微软为它提供了号称“宇宙最强IDE”的visual sudio,C#的语法也十分凌厉,lambda表达式,轻松描述复杂逻辑,在操作链表数组等方面,C#提供了丰富的扩展库,让算法小白也能轻松完成业务复杂的开发任务。
而Java就不同了,虽然后续支持了lambda表达式,但使用便捷性还是比C#差了不少,写个排序还得实现Comparable接口。spring是Java应用最广泛的框架,其配置项目也比C#.net复杂不少,可以这么认为:C#.net是以契约为基准的,而Java则大都依赖配置。所以你想搞懂原理,就得踏踏实实地学习配置原理 和其他基础知识。
2.开源
这可以说是Java生态超过C#.net最关键的因素。现在.net framework也已经开源,但Java的生态气候已成,.net再怎么穷追猛赶,也难以超越。用Java技术栈的公司,遇到问题后,基本都可以在网上找到解决方案,国内没有就翻墙去国外找资料,总能解决。
而C#.net的各类资源则较少,程序员知名网站github上,Java项目数量几乎碾压C#的项目数量。
3.成功案例
这条原因也间接解释了Java很难被超越的原因。企业在技术栈选型时,会重点考虑一项技术的成功案例数量。Java在开源社区的支持下,经营数年,各种疑难杂症都有现成的解决方案,这也导致使用Java的企业越来越多,甚至一些初创时使用C#.net的公司,后续都会选择转Java,以获得Java生态圈丰富的技术储备。马太效应,愈演愈烈。
4.授权费
C#语法优美,visual studio号称宇宙最强,名副其实,然而这一切都不是免费的。C#.net程序基本职能运行在微软的系统和应用容器里,微软对企业级应用都有不菲的授权费用,很多小公司为了规避授权费用,都会选择Java,并使用开源免费的linux服务器程序。这无形之中也帮助了Java生态圈的成长。
5.跨平台
早起C#.net程序并不能做到跨平台,微软曾通过.net framework让C++/C#/VB等能够实现一次编写,多处运行,然而始终没能跳出windows系统这个圈子。即便有人通过mono让linux和mac系统具备运行.net程序的能力,但也很少有公司愿意将其商用。
Java的跨平台则是出了名了,Java程序运行与JVM虚拟机,但凡能装虚拟机的系统容器,Java程序都能运行无阻。
以上这些原因,让C#不如Java受欢迎。但还是要夸赞下C#出色的语法设计。两个阵营的争端已经有数年不止,再争也毫无意义。对于初学者,苏州网站建设推荐先学习Java或python。