为什么那么多公司不用 .NET,而选择PHP、JSP,是 .NET有什么缺点吗?

牟海峰


我自己当初学过.net,java,现在算是略有了解。

就我个人理解,许多公司不用.net语言的根本原因,就是.net在最初的时候不开源,教程少,入门较难,而且最后正式发行程序什么,还要交钱,所以在许多公司中首选java这种开放语言,教程多,入门简单,基本不收费(不收费是关键,划重点)。这也算是开源与闭源软件之争吧,最终以java为首的开源软件获胜,得以普及。

后来,开源软件已经是大势所趋,这时候微软.net阵营已经做了许多改变。我最熟悉.net中的c#语言,我就以c#为例说说吧。

微软以前信奉闭环,所有语言都不支持跨平台,也就没有c#;后来java越来越发展壮大,.net感受到了巨大危险,于是就模仿java,.net提出了c#,借以打击java。c#很像java语言,而且和java一样能够跨平台,windows、linx、android、ios都可以编程,这就是微软做的改变。

如果大家用过c#或者vb,c++来编写窗口程序,就会发现,这些语言写出来的windows窗口太棒了,而用java写出来的窗口程序,不敢恭维,太丑了,这也就是我后来学习c#的原因。(这也就是为什么说跨平台只是一个美梦而已)。


跨平台、开源之后的.net,其实跟java的基础结构并不差多少,但不具备数量优势,也就是说:java由于之前用的人太多了,各个方面的创新、发展都比较完善,有着坚实的用户群体、应用基础;而

.net,由于是后发,已经失去了太多的应用环境,自然现在许多公司在不考虑是专为windows开发的情况下,是不会太主动使用.net。


岁七夸父


先以开发者的角度:

PHP跟.net根本就不是一个级别的,.net无论是应用场合、开发环境、帮助文档、编写风格、运行效率全部吊打PHP;PHP之所以流行就是因为很多开源框架都是现成的,刚好符合国人拿来主义的精神,修修改改就能拿来卖钱了。

JAVA各方面体量大致跟.net旗鼓相当,Windows系统下还是.net的天下,企业应用方面JAVA占用率高些,移动开发方面因为安卓和苹果的原因,.net失去了先机。微软正在逐步赶超,unitiy、.net core都在表明微软的态度。

以成本的角度:

微软的产品哪都好,就是版权太贵,Windows系统要钱,office要钱,服务器要钱,sqlserver要钱,再高级点用用企业版、集群之类的,做一个项目下来才能挣多少钱,都给微软了。PHP之所以能存活,就是linux免费,MySQL免费,Apache免费,PHP免费,就连框架都免费;JAVA跟PHP差不多。这种生态下导致了代码资源非常丰富,天下一般抄,开发成本就更低了。所以不是微软的东西不好,是JAVA和PHP开发成本太低了。用过对比你会发现,贵有贵的道理,所有开发帮助文档中,没有比微软做的更详尽的。

如果你是一个独立开发者,首选.net,Windows桌面应用、Windows服务、Windows游戏、网站、webservice、unity游戏,除了安卓和苹果原生应用,.net都能胜任。如果微软可以在安卓下造出类似framework的东西,那就一统天下了。


自由践行


这个答案有几点:

1、运行环境成本问题,在.net core出来之前,.net

需要的运行环境搭设成本高,windows服务器正版上万,用access做数据库也需要几千元的正版office,虽说sql express是免费的,但是阉割的太厉害。所以一般win虚拟主机或者服务器都基本上比linux的贵,尤其是海外注重版权地区,更是差至少一半,所以造成了php大行其道,因为他的运行环境几乎零成本,而且服务器需要的配置可以很低,甚至128m内存就可以跑php程序。

2、开发环境成本问题,一样的毛病,code出来之前,开发.net程序的工具首选visual studio,但是正版的也要几千上万,不是一般人承受的起的。而php和java的免费又好用的开发工具又很多,因此php又获得了先机。

3、学习成本问题,.net之前,微软平台应用系列的开发需要太多,vb,c,c++,而网页脚本语言是基于vbscript的asp,随着系统的发展,这些需要和脚本逐步跟不上时代对敏捷开发、更复杂系统开发的需求,因此推出了asp.net和c#、f#,vb.net等语言,网页方面使用asp.net开发又一直升级,.net 2.0,3.0,3.5,到现在的4.7.x,每次升级都带来了新的概念,如今为了抢回份额,推出了.net core 也是升级了好几个版本,所以.net的开发要不断的学习,学习,升级,升级。而php就不一样了,版本的升级基本上都是框架内的升级,学习成本明显低于.net

4、资源丰富问题,如上所述,由于成本问题,很多人选择了php开发,然后php的免费框架越来越多,程序员一般都懒,拿来修修改改就能上线,接着做下个项目就可以啦,而.net明显没那么多免费框架,市面上分许多.net框架是要授权费的。

不过目前微软的发力,也在着手改善这种问题,发布了visual studio code,visual studio community免费开发工具开发成本明显降低,.net code跨平台语言只要版本符合要求linux系统也可以运行.net code开发的程序了。如果能够有支持linux的文件型的数据库软件(例如office的access)发布就更好了。


魔码科技


如果用户采用微软全家桶解决方案, .Net 的开发效率和体验是完全可以吊打 Java 和 PHP 的, 但昂贵的价格, 让开发者和用户又爱有恨.

其实 .Net + C# 现在虽说不如一票跨平台框架语言用得人多, 但也远远谈不上没落.

在这个问题上, 个人认为 Microsoft 的原 CEO Steve Ballmer 难辞其咎, 在 Windows 霸主地位已经开始崩溃的时候 依然固执坚持封闭生态, 导致当时的 .Net 开发者 无不焦虑和彷徨.

不过 2014 年 Satya Nadella 接任 CEO 后, 微软 逐渐采取了 务实 开放 的做法, 收购 Xamarin 整合进 IDE, 推出 Visual Studio 社区版, C# 开始免费和跨平台, Microsoft 越来越像 Oracle, C# 越来越像 Java, 多多少少缓解了开发者的忧虑, 不少开发者开始回归, 毕竟 C# 优雅的语法 和 Visual Studio 卓越的开发体验 确实让人难以割舍.





宜宾智轨


.Net以前是不开源的,需要收费,有着各种版权问题,导致其语言生态发展不够。有其语言优点,但是从公司发展成本上来考虑,就注定不能作为首选。

PHP未兴起之前,很多公司使用.net来开发网站,因为相比较java的JSP,开发效率也还是要高一些,这对中小型企业的业务快速变更升级很重要。JSP运行速度会快一些,但其需要编译的特点,开发速度会相对缓慢。而对中小型企业来说,时间就是金钱,开发速度太慢,跟不上业务发展是很致命的。



之后PHP应运而生,其语言设计的初衷就是为了快速开发web应用。完全的开源免费,开发效率非常高,甚至一个人就可以搞定一个项目。中小型公司,从发展之初的考虑,逐渐将PHP作为首选发展语言。

随着PHP生态的逐渐强大,.net这种生态落后,开发速度比不上PHP,运行速度比不上JSP的语言也就逐渐没落了。


现在也有很多发展好了的公司,做大了做强了,又开始将自己的PHP项目往JSP迁移,因为开始追求运行速度。

所以PHP基本占领了中小型公司,而大公司则更多选择JSP。这都是语言的特性和优势决定的,将来如果出现一种语言能同时兼有开发速度和运行速度的免费开源的语言,那PHP和JSP也会逐渐走上.net这条路。一切都是企业成本和效率的问题。

+++++++++++++++++++++++++++++++++++++

第一次写问答,没想到有这么高的阅读量。

有些人说我对.net的认识太落后了,好吧,我开始学编程的时候,.net确实是比较封闭的状态,这些年我也不再去关注.net,对它的进一步了解也都是通过身边的同学朋友侧面反映的。

然后,真实情况是,我身边所有学.net的同学都转行了。因为岗位少,薪资低,真的生存很艰难哩。

遥想当年,我们一个宿舍的同学(一群穷逼,只能住在学校破旧的8人大宿舍里,因为住宿费真便宜啊😄),开始讨论选某个语言作为今后学习方向。有人选择了.net,有人选择了PHP,有人选择了JSP,然后各自努力。

现在,再来看彼此发展,.net的同学都转行了,PHP的都在中小型公司,JSP的在平安保险这种大公司里。薪资待遇对比,.net的同学和我们也有了差距。如果只看基本工资的话,还是PHP的高,哈哈。但是,加上年终奖就扑街了。我们同在深圳的经常一起出来聚聚,中小型公司的经常自嘲,辛辛苦苦一整年,比不上**一个年终奖。唉,大公司年终奖是真多啊,可以顶你大半年甚至一年的工资,人比人气死人。

当然,学PHP也不是都好,有个同学受不了压力转行做SEO了。也不是所有学java都好,我现在公司的测试就是个学java找不到工作,转而当测试的。

其实问题还是经验,有多年工作经验,就是你找工作最好的敲门砖了。

最后,没有最好的语言,适应市场发展的语言就是好语言。

各位看官,不喜勿喷!


冥域梵音


php就是个入门简单,开源框架多,上手快的这么个语言,尤其是小项目不用开发简单配置下东西就出来了,不属于高级语言,java属于高级语言,开源,框架解决方案满天飞,生态链也好,跟mysql绝配,所以使用这俩组合成本会低很多。再说说这可爱可恨的.net,这个需要也属于高级语言,语言本身的语法也要比java好不少(我是同时写java也写.net所以感受特别深),虽说相同的东西也不少,再加上微软这个巨无霸在后面支撑,解决方案也不少,但是呢他的生态链基本脱离不了微软,不开源,跨平台也不是太舒服,还有就是成本太高,简单说就是你弄啥事也掺和个微软让你恶心到死,.net还有个最牛逼的优势那就是IDE,这个不用多说了,宇宙第一IDE没有之一并且不接受反驳而且不提供任何解释!


李旭阳379


为什么PHP、Java在市面上比.NET要受欢迎?而且从各大招聘网站上看PHP、Java的岗位比.NET岗位要多很多。

其实.NET也是有不少的优点的:

  • 语法优美,比Java语法优美度还要高

  • 在Windows平台上表现优异,能轻易调用Win平台各类组件服务

但是,它的致命缺点是:

  • 它目前只能跑在Windows平台上(虽然.NET Core可以跑在Linux上,但它毕竟推出不久,需要时间考验)

  • Windows系统是收费系统(虽然平时在用时,没感觉到它是收费的)

  • 与它配合使用的SQL Server同样也是收费的

设想一下,一个企业,如果服务器众多,那系统费用、数据库的授权费用,是多么庞大的一笔支出!

而PHP、Java则不同,它们都是跨平台开源免费的,虽然Java开始收费了(但还有免费的OpenJDK),所以PHP、Java还是首选。


网络圈


JAVA一路的开源生态环境适合做软件开发,做为一个开发要知其然,知其所以然。

.Net个人感觉学后跟没学一样。

以下是两者实际工作的感受

.NET WEB应用基于.net framwork基础框架。window服务器自带安装的IIS WEB容器和最新版本的.net framwork。

JAVA WEB应用基于JDK基础框架,安装对应OS系统的JDK版本,可实现跨平台,一次编译处处运行,一般基于tomcat web容器。也可以jar方式直接运行。

.NET应用链接的数据库一般我常使用sqlserver2012,一般基于window安装,易操作,性能上也没问题。可到官网下载服务端免费版。如果单独购买云数据库,价格要比MySQL贵。

JAVA应用链接的数据库一般我使用MySQL


用户9689114505486


理由简单的很,.net core印象中是2016年发布的rc版,那在此之前呢?.net只能完美运行于win平台下。一套正版授权多少钱可以自己去查。虽然很早就有mono之类的跨平台方案,但坑太多,没人喜欢一更新版本就出好多幺蛾子。差不多的东西,有免费的为啥要用收费的?虽然.net现在开源了,也跨平台了,但有点晚。拿c#来说,作为进化版的java,从各方面来说都很好,但它太大了,和java一样的笨重,在go,elixir,swift,kotlin这些语言新贵面前,其实已失去最好的发展时机


偶尔来逛逛随便来瞧瞧


主要成本和生态趋势吧。java面相对象跨平台语言刚推出来的时候大受欢迎,加上一开始就采取开源策略,获得很多有领导力大公司(ibm,bea,oracle,google等)强力推崇。它的友好和开放,为他迎来爆发势的野蛮生长,由此构建的各种开源工具框架如雨后春笋般遍地出现,整个生态的良性发展再加上大学校园的拥抱,为未来的发展培育了良好的土壤。生态壁垒一旦形成,如果不是出现一些致命缺陷或者策略事务,类似的后来者很难超越。就好比国内的聊天软件,即便有类似替代者,可能某些功能再好用,也难把用户吸引过去,因为微信已牢牢把握住的用户的社交关系,你用其他的聊天软件,对应社交关系没迁移完全没用,毕竟不可能自己和自己聊吧。.net一些功能特性即便再好,还是失了先机,就微软一家领头企业在推,其他大公司不跟着玩,无法形成趋势,要让已习惯的用户转移到并没有绝对优势的平台,那简直难于上青天!


分享到:


相關文章: