为什么会有人说.net强过Java,是要笑死人嘛?
网友解答: 我觉得,“有人”说什么不重要,你也不要笑死了,毕竟生命可贵。开始的时候,.Net和JAVA走的两条不同的路。JAVA(JVM)是一种语言,跨越多种平台。开发者无需过多关注OS
我觉得,“有人”说什么不重要,你也不要笑死了,毕竟生命可贵。
开始的时候,.Net和JAVA走的两条不同的路。
JAVA(JVM)是一种语言,跨越多种平台。开发者无需过多关注OS是什么;
.Net是一个Framework(Windows上),跨越多种语言,最终都翻译为MSIL。
虽然最终都采用了编译成中间代码(JAVA-BYTECODE,.NET-MSIL)这种方式来实现,但这是截然不同的两种思维模式,而且都取得了很大的成功。
在程序设计语言和编译器方面,James Gosling和Anders Hejlsberg都是当之无愧的大师,而且都有非常非常了不起的、前瞻性、开创性的技术眼界。
但是,语言/平台之间是互相学习的、参考的。时至今日,.Net已经可以运行于非WINDOWS平台了(.Net Core),JVM上已经支持很多种语言了。二者同时都在向对方的领域拓展,差异越来越小。
从语言层面看,.Net上的当红炸子鸡是C#,它比JAVA语言(截至JAVA 9)要“先进”,支持很多新的东西。原因是.Net微软自己说了算,而JAVA有JCP这东西存在,N多家大公司来投票、扯皮,不仅有技术问题还有商业原因,所以要实现新东西就慢。
从性能角度讲,大家都是中间代码(.Net称之为托管代码),然后靠VM解释执行。但又各有很多优化手段,比如JIT等。所以截至到目前,调优的JVM和.Net的运行效率可以相当,换言之,大多数应用场景,性能问题不是选择的主要决定因素了。
从开发工具层面,Visual Studio是宇宙第一IDE,这个毫无争议的;JAVA虽然也有Eclipse,IDEA等等,但摸着良心说,还是比不上VS那个集成度和体验的。
从社区来讲,得益于SUN多年的培养,JAVA有着最好的最开放的软件生态圈子,所以JAVA开发者非常多,开发资源非常丰富,这才是它最宝贵的财富而.Net因为局限于微软的平台和追随者,相对来说更封闭一些(.net core已经在GITHUB上开源了),没那么蓬勃。
这就造成了现在的局面,在企业软件开发的场景,JAVA当之无愧的王者;在互联网领域;得益于JVM性能的大幅度提升,很多后端也是JAVA(比如阿里系)。所以市场占有率比.Net高。而.Net相对来说,要低一些。这在每个月发布的编程语言排行榜上也能看出端倪来。
JAVA虽然很优秀,但是这绝对不能说明.Net不行。
我们做工程师的人,对技术要有开放的心态、持续学习的心态,不要划些小圈圈,固步自封,夜郎自大,陷入各种无聊的口水战还乐此不疲。