当前位置:首页 >看资讯 >创业资讯 >为什么.NET平台在技术上远强过Java,而多数大公司却仍采用后者?

为什么.NET平台在技术上远强过Java,而多数大公司却仍采用后者?

更新时间:2018年04月05日     编辑:小A     来源:今日头条| 浏览量:408
分享到:

为什么.NET平台在技术上远强过Java,而多数大公司却仍采用后者?

这个问题比较大,但重要的一点是市场的选择。.net开发入门是比较简单的,但技术要深入还就不简单了。从技术上来说,.net与Java没有高下或贵贱之分。那为什么市场上这么多选择了Java,而不选择.net作为开发或使用工具呢?从简单的几点来看看。

1、重要的原因是商业选择。首先是费用,微软的费用从不手软。.net开发后软件的应用成本一般比Java开发后软件的应用成本要高。不管是硬件成本或软件成本,作为开发公司来说省掉这些费用,更容易吸引客户。为客户省掉这些费用客户当然高兴。

2、开发实践或方案多样化及规范化。总得来说,开发成本也谈不上有好大的差异,但还是有的。.net技术其实还是先进的,但开发上面的标准解决方案规范比Java欠缺,比如针对不同类型网站的构建模式,.net就比Java欠缺。Java有解决这些问题的全套框架模式。微软也有,但快速复制就差了。

3、跨平台。这一点估计大家都有体验。

4、快速化反应、技术获得。一个最重要的就是Java开源,有全世界各地的技术人员为Java做各种各样的事情,构建了一个生态环境。需要什么,就可以找到什么,暂且不论拷贝复制带来的各种问题,但起码可以很快找到一种解决问题的途径和方法。

5、编码变得更简单。这倒不是说Java比.net有什么优劣,主要是全世界的JAVAer都可以在上面添加东西,各种框架,各种类,各种封装等等,然后开发者就直接拿来用就可以了,结果就是只要经过培训机构快速培训就可以上手当程序员了,而不是要经过几年学习或教育的大学生才能胜任。当然,这样也会造成软件Bug众生,但这给开发公司带来了直接的经济效益,为什么不选择这种模式呢?.net也可有这种模式,但还不够。

构建一个生态是要花很长时间的,在开源还没有构建完成时,.net还是占据了一段时间的领导地位的。现在市场上有更多的选择,而且有更实惠的选择时,如何抓住用户才是开发公司考虑的事情,而最直接的就是给用户降低费用。

简单地说,有几个原因。

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要好得多。

想要取代老技术,老平台,不能只是做到跟原来的平台一样好用就可以的。要有决定性的优势,能做到以前的平台和技术做不到的事情才行。或者是,功能一样,价格具有很大的优势。

该提问本来就有问题。我以前是主要做.net的,现在搞python居多。但不可否认java的生态要比.net的生态强很多,技术跟工程师的水平有关,基本上与语言无关。

大公司使用java主要是有各种现成成熟的库,框架和架构案例,遇到的坑别人都几乎给你填过了。二是可以部署在稳定的linux服务器上,.net以前也可以通过mongo部署在linux上,但毕竟是非官方支持,遇着问题也不好解决,效率上也得打些折扣,so,我为什么不直接用java,还要这样折腾一翻?虽然现在.net core出到2了,而且是原生支持夸平台,但毕竟java系已经先入为主好久了,.net core能否翻身我不敢评价,因为我并没有多少的使用经验。

当然windows平台的昂贵服务器费用也是一个采用java平台的主要原因。

回到生态系统那问题上,一个系统几乎或多或少地与使用其他的组件,如rabbitmq,redis,mongodb,apache等,这些成熟的组件几乎都系天生linux系的,接口方面从来都是不可能没有java,python而先有.net的。而且在安装支持方面,这些东西都是非常容易安装的,一个apt-get命令就可以了。windows下有可能遇到奇葩的错误。还有就是有大部分这样的组件是java开发的,进行二次开发就肯定用回java了。

小吐槽一下.net后,再来谈谈.net的优势。

再说说.net方面的,大部分人对.net的印象只停留在拖控件上,这些人大部人要么是完全不懂.net的或者只懂个语法的,别人踩时他就跟着踩,瞎起哄。.net最大的优势其实在于单一平台的完整性,微软不仅给.net提供了语言和类库C#和.net framework,在UI框架方面则提供了winform和wpf,工作流方面则有wf,web 框架方面和webform(现在的项目比较少用了,缺点自查),asp.net mvc和asp.net api等。数据库和服务方面则天生偏爱sql server和windows sever了,你要的东西,微软都给齐你了。这样的大统一的好处是,你的学习是一气呵成的,因为你在学习这个框架的东西,其他框架的东西也是十分类似的,无论从方法命名还是类型组件设计上,例如asp.net mvc和asp.net web api这两个东西。

再者不是所有系统都跑着过亿订单,并发量多大多大的啊(看到有些人老拿这个说事,说.net做大型系统不行,我心里就问,你们每次都只做开发这么牛逼的系统?)其实绝大部分的项目都是中小型的项目,还在那里jb地高谈阔论.net这个语言带来性能瓶颈了。能不能反省一下是不是自己水平问题呢?

手打字累不说了。。。。。

其实这个问题涉及很多层面。

首先对双方做一下比较。其实.Net和Java作为相同的高级语言,基本功能上是互通的。当然两者有着不同的优势方面。

1. 跨平台。这是Java最大的优势。Java开发的应用程序可以同时部署在Windows、Linux、Mac、以及其他的Java JRE环境支持的各种操作系统上。而这是.Net平台最大的瓶颈。作为微软官方的平台,或许微软为了推广自家系统,限制了.Net平台的运行环境,没有提供除windows平台外的Runtime环境。这直接限制了.Net发展。毕竟对于真正大规模的系统,Unix和Linux系统的大型服务器是更可靠地解决方案。于是Java成了唯一选择。虽然现在微软已经意识到这个问题,开始提供.net core的开源项目,积极的适配Linux系统,但是追赶者需要时间来证明自己。

2. 开源性。这是Java第二个巨大的优势,当然也造成了一些不利影响。首先开源性,使得Java语言迅速的在全球产生了众多基于社区的开源框架。这加速了Java的推广。同时对于很多大型项目,提供了众多成功案例(开源项目都是在应用中被提取的)。这使得Java的解决方案在前期被更多的认可,成为行业主流解决方案。当然,由于框架太多,使得能够合理准确的选择合适的框架,成为了项目架构师最头疼的问题。也提高了Java的门槛。但同时,这也提高了Java程序员的薪金水平。Java程序员收益比较高,成为了行业现实。导致众多新人拥入Java的怀抱。.Net平台,由于是微软自己的平台,没有那么多的开源框架,但是由于每一个框架都是“认证过的产品”,使得产品具备微软属性。使用简单,能够进行快速开发。是的,同样的功能,.Net能够节省一半以上的编码时间。但这也间接的导致了对程序员要求的降低,使得程序员收入降低,项目成本降低。导致很多人不希望成为.Net程序员。并且由于成本低,给很多企业造成,使用.Net框架是不稳定的,廉价的,低等的感觉。导致很多无知的企业高层,被开发公司忽悠采用Java开发,因为能赚到更多的钱。

3. 开发环境。这个不好评价,客观的介绍一下。Java有自己的开发环境,免费的Eclipse,收费的JBuilder等很多第三方IDE。对于免费的Eclipse,我个人很讨厌,虽然功能强大,兼容性强,但是使用麻烦,操作复杂,上手难。当然JBuilder等收费IDE还是很好用的。微软的VS IDE就不用说了,用过的都说好。几乎不用配置,各种智能导航,将微软傻瓜化,上手快的理念发挥到了极致。这也是后期我主要走.Net路线的原因。

4. 时间。Java起步早,导致最早的一批程序员都是Java出身,而现在他们都成了公司的CTO或者技术主管。在选择技术路线的时候,谁不会希望使用自己熟悉的技术呢?这也导致很多项目立项之初的技术选择,就是Java。.Net平台自2002年才开始推出,其实完了3~4年的样子,这足够一个初程走上管理岗了,是不可逾越的鸿沟。

综合上述,导致了Java程序员比较多的现状。

但是,我要说的是,其实对于企业来说,其实.Net是一个很好的选择。

首先是成本。同样的功能,.Net平台开发成本要比Java节省30%以上,至少。然后硬件成本,windows服务器虽然稳定性与Linux与Unix服务器有差距,但这个差距正在越来越少。但是微软的admin和linux的admin的成本差距巨大。在管理人员成本上,至少能够省30%。然后,虽然Linux系统免费,但是企业版系统如Redhat还是收费的。当然它还是最便宜的这个我们不说了。对比Unix的IBM服务器和普通x86的windows服务器,其实windows服务器还是便宜的,比AIX服务器便宜巨多。同样的钱,用x86组建服务器场,其实对成本控制以及后期扩展使用的灵活性更高。最后是后期运维,由于Java开源性,一直在更新,每次更新都可能会出现一些问题,同样的问题存在与Linux,这导致后期维护的成本增大。或许你需要经常的技术支持以及技术培训。

所以说,对于企业来说,特别是初创企业,除非你的技术路线是Liunx+PHP,这是目前最低廉的技术路线。但是不适用于中型以上企业。那么.Net平台性价比是最高的。即使你发展快速,5年做到几万人,也能够通过逐步增加服务器扩展的方式,分摊成本。并且总成本绝对不高于JAVA。并且能省下一大笔人力成本。

然后说开发周期。现在的市场,将就时间就是机会就是金钱。同样一个Idea,用.Net平台你可以1个月内上线,Java就可能前后需要2~3个月的时间。当然,如果你需要技术作为宣传的噱头那另说。但总的来说,快速上线,那么.Net是首选。

综合来说,其实.Net真的是适合大多数企业的选择。当然,目前.Net对大数据平台的支撑不是很好,如Hadoop平台,但是其实老外已经发现这些问题,并在逐渐转换支持.Net开发,支持windows平台,未来一定会有所改善。这里笔者建议,对于初创公司,如果没有核心技术(java系)合作伙伴,那么果断走.Net路线吧。

一种技术的流向,不完全取决于他是否先进,还有其它非技术原因。论技术,论生态链没有人比得过微软。正是微软太强,所以才垄断,专横,才逼出了linux,Java,PHP。

在二十世纪初期,互联网快速发展的时期,微软还沉寝在单机的垄断梦里,微软的服务器非常贵,互联网公司无法承担服务器软件和数据库的费用,才无奈的选择了LINUX,MYSQL,JAVA,PHP。微软的.NET战略全面失败。当大企业都流逝后,开发者自然要流逝。因为JAVA,PHP职位薪水明显高于.NET。

·net主要缺点:

1、跨平台性差,这个有目共睹

2、人少,找人难(做项目的亲身体会)

3、闭源平台,没有形成像Java那么大的生态圈

4、互联网方面的系统、平台用.net的很少,有些企业服务用.net,整体待遇要低。之前京东是.net的,后来也换了

不过用.net做些桌面程序还是不错的选择。

最热资讯
言情小说推荐-侯门大小姐
今天推荐给大家一部古典言情小说“侯门大小姐”,本人看过还不错哦,分...
Cristino Rollister飞行员系列 自动机械男表 专为成熟男人设计的一款手表
 时尚腕表在近些年的关注度极高,特别是全自动机械手表深受广大手表收...
美团打车司机接够10单每天有600元保底收入,和滴滴相比收入可观吗?
美团打车司机接够10单每天有600元保底收入,和滴滴相比收入可观吗? 有没...
最近想入手一个荣耀v10,它的优缺点是什么?
最近想入手一个荣耀v10,它的优缺点是什么? 原来用的手机是苹果5S,16G的...

资讯看点

更多
行业资讯
奔驰车搭载1.6升6缸发动机,限量275台卖1800万,未上市却已售罄
奔驰车搭载1.6升6缸发动机,限量275台卖1800万,未上市却已售罄。 梅赛德斯-AMG公布了一系列 AMG Project One的最新宣传照!据悉,该车专门是为了AMG50周年打造的限量版车型,全球限量打造275台,售价227.5万欧元,约合人民币1800万元。
时事聚焦
不把支付宝和微信这些授权解绑,可能会让你的账号突然被扣钱
不把支付宝和微信这些授权解绑,可能会让你的账号突然被扣钱 支付宝和微信,应该是大多数人手机中的必备应用。随着两款应用的普及,很多网站和应用也随之出现了「使用微信 / 支付宝账号登录」的功能。通过跳转到微信 / 支付宝验证,就可以免注册使用服务,这样的方便让不少人都喜欢通过这种方式进行登录。