为什么.NET平台在技术上远强过Java,而多数大公司却仍采用后者?
网友解答: 虽然我们常说开发平台并没有绝对的优劣,而在于负责开发的人,但其实对于大多数人来说,其实平台还是很重要的。所以我们接下来就总结一下各自的优势是什么。Java的优势是开源、以及跨
虽然我们常说开发平台并没有绝对的优劣,而在于负责开发的人,但其实对于大多数人来说,其实平台还是很重要的。所以我们接下来就总结一下各自的优势是什么。
Java的优势是开源、以及跨平台虽然现在微软已经把.net core整个微软开发者生态的核心已经开源了,并且visual studio都有了macOS版本,但是总体来说,跟Java比起来,Java还是占有极大的优势的。
生而开源、生而跨平台,这是C#所不能比拟的,因为开源,所以开发者愿意为Java的生态做贡献,并且也因此诞生了很多经典的Java框架,比如传统的Spring以及Spring mvc,已及现在大红大紫的Spring boot,这些都是C#生态所没有的,没法相提并论的。Java拥有更加强大的开发者生态,这一点毫无疑问。
而基于虚拟机,让Java不经意之间拥有了几乎所有平台的开发者资源。不管是Windows还是macOS还是Linux,一个JVM搞定一切,一些开发到处运行这是Java的优势。
微软这一点做得太晚了,习惯一定养成很难改变,何况现在macOS版本的VS就是之前的xamarin studio,跟windows下原生的visual studio差距太大,谁愿意用?
除此之外,在大数据、大并发领域,Java依然是绝对的首选,.net搞不定!
.net开发周期短、快速开发耗资更少毫无疑问,.net首先拥有从设计上比Java更棒的语言C#,Java代码臃肿的特点在C#上是没有的,其次C#在桌面开发领域非常棒,可视化编程效率其实非常好。
除此之外,.net拥有更好的官方维护的开发者工具箱!首先是.net拥有更好的集成开发环境visual studio,不管怎么说,VS都是这个蔚蓝色星球上最好的集成开发环境。
与此同时,.net还拥有最好的开发者帮助中心,MSDN开发者网络可能是太阳系最好的开发者官方帮助中心,没有之一!
使用.net开发周期更短、效率更高,并且快速开发的时候是耗资更少的解决方案。
但是在大数据以及大型项目中,还是有一定的局限性,比如京东曾经就是.net解决方案,后来逐渐将Java作为核心后台开发语言。
其实,从C#和Java,.net生态和Java生态,从两大生态的缔造者也能看出。安德斯海尔斯伯格更是一个更是一个比较纯粹的工业生态缔造者,先勾打造了Delphi和C#两套开发体系,都是工业特点非常显著,高效、实用、不拖沓,能非常完美的解决我需要的所有需求,几乎没有多余。而詹姆斯高斯林更像一位学者,致力于学术型研究,所以Java倾向于能做很多事情,并且分享精神很足,但是在有的地方Java总显得啰嗦,而且有很多用起来比较难受的地方。
网友解答:简单地说,有几个原因。
1. Java出得早
2. Java够用
3. Java开源
4. Java由以上三点衍生出来的一系列优势
在科技行业,做得早会有天然优势。我们回顾中外互联网科技巨头,大多数都是本行业最早的一批创业者里面涌现出来的。而java比.Net早了差不多五年推出来的,这五年的时间,让Java建立了很大的优势。
其次就是Java也是一个很好用的语言,.Net能实现的功能,Java基本也都能实现,无非只是说实现的方式不太一样。也就是说,Java是可以满足使用的。尽管.Net语言的确有一些优势,技术上也比较先进,但是Java够用了,也就没必要非要换成.Net了。
而Java有一个不容忽视的优势就是,Java从一开始就是开源的。Java的好框架好思想几乎全是开源的,包括Spring这种。因此生态建设很成功。而受限于Windows平台的.Net在这方面吃亏不少。
除此之外,由于Java起步早,开源,所以累积的使用人数也多,采用这个平台的企业也多。最终导致的结果就是人才储备非常雄厚。与此同时, Java也足够使用了,为了追求语言的技术先进性更换语言,收益不大,也无必要。而选择开源,人才储备足,使用人数多的Java往往也意味着更低的支出,而且不用担心受制于微软公司。由于.Net人才少,招人需要高薪,还不容易找到优秀人才。而微软的平台使用费用也是一笔不容小视的支出。对于企业来说,除非.Net有不可替代性,那就没有必要选择.Net而放着好用又便宜的Java不用。更何况,Java的生态建设也比.net要好得多。
想要取代老技术,老平台,不能只是做到跟原来的平台一样好用就可以的。要有决定性的优势,能做到以前的平台和技术做不到的事情才行。或者是,功能一样,价格具有很大的优势。