虽然我们常说开发平台并没有绝对的优劣,而在于负责开发的人,但其实对于大多数人来说,其实平台还是很重要的。所以我们接下来就总结一下各自的优势是什么。
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总显得啰嗦,而且有很多用起来比较难受的地方。