软件培训网

欢迎访问软件培训网!招生咨询电话与微信:15225191462(周老师)
软件培训网,专业解决学IT疑难杂症!

首页 > .NET技术培训/ 正文

java和.net技术的详细对比

2013-02-15 15:07:39 软件培训网

    有许多新手程序员都会纠结一个问题:java好,还是.net好。首先要说的是,没有一种语言具有绝对的优势,他们各有优缺点。其实这个话题是个非常老的话题,很多技术中层也回答过类似的问题,可能这些问题来自从高层、朋友或者网络,但很少看到过一篇很中肯的文章来分析这个问题,于是今天就由北大青鸟翔天信鸽学校的教学专家为大家分析:java和.net的详细对比。qgn软件IT培训网-河南郑州IT培训
    首先,引用一份Forrester Research公司的数据(虽然数据比较早),在2004年,Java在生产工具、电信、金融和保险领域比.NET强,而.NET在制造、零售批发、媒体、商业服务和公共服务领域比Java强。报告指出那些在IT方面有高预算的公司更倾向于使用Java,而相对预算较少的则更倾向于使用.NET。但很有意思的一件事情是超过半数的受访公司同时使用.NET和Java,要知道2004年的时候.net 2.0刚出来,就已经有这么多公司同时用两样了,而现在的情况也没有明显变化,比如现在很多公司就是两样都用,北大青鸟翔天信鸽学校也同事开设java和.net课程,适合不同需求的学员。qgn软件IT培训网-河南郑州IT培训
    下面来说说跨平台。说到跨平台很多人可能想都不想就说,那肯定应该选Java。其实时代在进步,.NET的跨平台能力正在不断增强,最有代表性的自然是Mono开源项目,相应的开发工具MonoDevelop也做的很出色。当然Mono的使用是存在局限性的,很多Windows固有的特性是没有办法使用的,例如COM, Win32 API等,但同时Mono提供很多上层封装,能够帮助我们忽略平台差异。就目前来看,Java在跨平台方面肯定是占优势的。qgn软件IT培训网-河南郑州IT培训
    后面是性能比较。说实话如果在这里给任何一方的语言下一个结论,估计双方的技术人员都不服气。性能这个问题在两种语言之间是很难进行对比的,理由很简单,因为平台不同、硬件不同、安装的软件也不同、使用的库也不同,太多的不确定因素导致无法在完全平等的条件下比较单个项目的性能。也许某个性能问题并非语言本身造成的,而是库函数造成的,这都是有可能的。参考一些评论认为,.NET程序的启动速度快于Java程序,这应该是有目共睹的,看看Ecllipse和VS的启动速度大家就明白了。我个人感觉Java程序的运行速度确实不快,其实你看看很多大公司怎么玩Java的就知道了,他们拿Java做壳,内部全部用C++写,比如Oracle、IBM,要知道Java和C++的组合可是非常有名的。不过么回过头来想想微软也是如此,.NET主要做周边的应用,Windows技术的核心还是C/C++的,不过最近几年微软也开始用.NET做很核心的东西,比如Visual Studio2010和2012就是用WPF 4.0写的。不过这个问题,没有结论,大家自己看着办吧。其实能反驳.NET或Java性能不好的案例都很多,具体看场景,.NET的XML库的性能真的不是一般的差,相对来说Java的XmlBean更胜一筹。qgn软件IT培训网-河南郑州IT培训
    再接下来,我们来看一下扩展性。这两种平台扩展性都很好,上层封装都支持最新的SOAP协议和Web service,自身还有自己的通讯协议,如Remoting和RMI。这恐怕是少数几个大家都能达成共识的观点,即Java和.NET扩展性都很好。双方阵营都有优秀的架构师们坐镇,确保了开发人员能够从架构层面对语言和平台进行扩展。只可惜国内现在.NET阵营的架构师不太给力,导致很多决策层放弃选择.NET。国外其实.NET和Java各分秋色吧,因为就语言本身的扩展性而言实在找不出有什么明显限制,关键还是看用它来干什么,还有就是架构怎么搭建。qgn软件IT培训网-河南郑州IT培训
    然后是开放性,这一点恐怕.NET要完败于Java了,尽管近几年微软加大了对开源的支持力度,例如codeplex网站就搞得很红火,且通过与Developer Media合作给开发人员带来了不少广告收入,但问题还是出在微软本身的开放性上,自家的.NET全部闭源,只有ASP.NET MVC开源。尽管Mono团队已经基本上可以说成功复制了.NET,但很多东西是从盒子外分析得出的,当然这是我的个人观点。Java的开放性不仅体现在其语言开源本身,更多的是来自第三方的支持力度,大量开源项目的支持,例如Apache基金会的顶级项目,如poi.apache.org,使得更多的公司愿意使用java开发,因为扩展成本可能要比.NET低不少,不需要万事亲历亲为。qgn软件IT培训网-河南郑州IT培训
    最后,我们来看一下总体拥有成本(Total Cost of Ownership)。说实话,这是个很难回答和界定的问题,因为完全没有标准,有些公司更看重雇佣成本,有些则更看重设备成本或培训成本。来自stackoverflow评论中的一个观点认为Java的初期拥有成本相对于.NET要低,因为有大量的开源项目和工具可以帮助降低开发成本。.NET的产品前期都需要自行开发很多基础库,因为开源项目和第三方工具相对较少,这是.NET初期拥有成本高的原因。.NET的开发速度确实比Java快很多,特别是前期出样阶段,这得益于微软强大而简单的IDE,说句不好听的,就算不懂技术的项目经理也能自己用VS画个界面出来,你信吗?雇佣成本方面,随着C#的排名不断上升,.NET的雇佣成本会不断降低(其实原来就低,因为大部分使用.NET的公司不算特别有钱,除了微软),语言排名是个风向标,排名高的语言会得到高校的青睐,从而会有更多人才专向该语言,最典型的例子就是Pascal的排名,你看当年学校里Pascal多流行,现在排名里根本看不到,高校自然也放弃了。设备成本目前来看基本差不多,毕竟是语言,不是特别依赖硬件设备的。当然有人觉得Windows+SQL Server的组合授权费很高,这个也是不真的事实,这也是我朋友想换Java的原因之一,为了降低成本,也许你应该考虑用NoSQL或者MySQL作为备份方案,要知道高性能方案可都不是SQL Server和Oracle这种关系数据库搞出来的,你看看淘宝和新浪的架构就知道了。qgn软件IT培训网-河南郑州IT培训
    以上就是关于java和.net的详细对比,对于它们的争端,将来还会继续。而作为成熟的程序员,需要明白自己的需求,这样才能满足需求。
qgn软件IT培训网-河南郑州IT培训

qgn软件IT培训网-河南郑州IT培训
本文由软件培训网整理,转载请注明:http://www.softpeixun.com
qgn软件IT培训网-河南郑州IT培训


Tags:郑州北大青鸟学软件开发需要什么基础,郑州计算机java专业学校,郑州北大青可以拿java工程师证吗,郑州java软件工程编程语言技术学院有哪,北大青鸟学校郑州哪家校区比较好,郑州北大青鸟软件工程师培训课程怎么样

搜索
软件培训学校哪家好,就来软件培训网咨询
软件培训学校哪家好,就来软件培训网咨询
热门标签
软件培训学校哪家好,就来软件培训网咨询
软件培训学校哪家好,就来软件培训网咨询
软件培训学校哪家好,就来软件培训网咨询
  • QQ交谈