为什么那么多公司不用 .NET,而选择PHP、JSP,是 .NET有什么缺点吗?:做了7年的c#开发,4年多的java,c/c++,说说我的看法,主要有的区别:一是开源和闭源的区别,
做了7年的c#开发,4年多的java,c/c++,说说我的看法,主要有的区别:
一是开源和闭源的区别,.net早期完全闭源,开发也是完全傻瓜式的,微软的思想就是让开发更容易,所以无法看到底层实现,给人的感觉就是走一条胡同,很快到达目的地却无法知道墙内的东西,接触过java和c之后,感觉就像掉进了大海,原来海底也这么漂亮,有太多开源的软件和框架,你可以看到更深层的东西,比如我们看dubbo,看进去后看netty,netty看进去后看到Linux,select,epoll,看到epoll,看Linux相关的,感觉就是掉进了大海,太多东西需要学习,做这么多年开发依然在不断的学习,但也给了我更多兴趣和探知未知世界的乐趣,以前做.net的时候有种感觉就是,别让我做非.net的东西,我不会,对陌生的的东西很害怕,现在的感觉就是你让我写个控制原子弹的程序我也敢去写(比方)。
二是免费和收费的区别,所有的公司产品的成本是公司发展的最关键因素之一,.net全家桶成本太高,vs的版权+windows版权+sql server版权再加上其它支持类软件版权,成本非常高,相反linux完全免费开源,给你选你会选哪一个?同时linux或从Unix而来,但天生具有轻量级性能可以发挥到极致而且稳定的系统,而windows为个人和办公而设计,界面和系统其它资源就让系统占用一部分,感觉很笨重,上天做一个长连接测试,单台Linux轻松上几十万,当然由于内存原因,否则可以上百万,而windows就很难做到,而且Linux哪里不行你可以去改的,windows就不行了,所以一个稳定高效免费的还有一大堆开源支持的,和一个收费性能相比没有那么高效的,好多公司自然选择前者
三是开发效率,上面说两点都说.net处于下风,但.net不是一无是处,.net有自身的优点,那就是开发效率,.net在java之上做了改进,让开发人员更容易开发,语言优美,做企业应用开发是很好的工具,可以快速出结果,你用其它开发要么大炮打蚊子,要么不稳定,在工厂和企业就要求很快做出来,这是.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的东西,那就一统天下了。
为什么PHP、Java在市面上比.NET要受欢迎?而且从各大招聘网站上看PHP、Java的岗位比.NET岗位要多很多。
其实.NET也是有不少的优点的:
语法优美,比Java语法优美度还要高
在Windows平台上表现优异,能轻易调用Win平台各类组件服务
但是,它的致命缺点是:
它目前只能跑在Windows平台上(虽然.NET Core可以跑在Linux上,但它毕竟推出不久,需要时间考验)
Windows系统是收费系统(虽然平时在用时,没感觉到它是收费的)
与它配合使用的SQL Server同样也是收费的
设想一下,一个企业,如果服务器众多,那系统费用、数据库的授权费用,是多么庞大的一笔支出!
而PHP、Java则不同,它们都是跨平台开源免费的,虽然Java开始收费了(但还有免费的OpenJDK),所以PHP、Java还是首选。
我自己当初学过.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。
如果用户采用微软全家桶解决方案, .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找不到工作,转而当测试的。
其实问题还是经验,有多年工作经验,就是你找工作最好的敲门砖了。
最后,没有最好的语言,适应市场发展的语言就是好语言。
各位看官,不喜勿喷!
简单的说几句,就几句。我司用.net做web,推送服务器,消息服务器,数据握手服务,cad应用二次开发,gis应用,各种手持设备应用,各种服务窗口用的终端应用,视频监控等等等,你还觉得php真的能打过.net么?
个人的观点:
1、php肯定比不过.net了,用他主要是网站那块而已。
2、net和Java,单纯从语言c#比java优秀,开源生态肯定是Java,效率是c#
3、.net效率不高,在于windows平台,现在跨平台了,linux性能高于windows。
.Net core 有一定的机会。
做一个企业,最主要的目标是生存。活下来,才是根本目标,说好听一点,就是可持续发展。微软的生态圈大多收费,价格不菲,虽然从性能,入门,易用性来说,.Net都好于Java领域,好于JSP和PHP,无奈中国市场竞争激烈,企业研发成本是首选考虑的因素,尤其是在中美贸易战的背景下,美国要加强知识产权保护的前提下,使用方用.Net产品和服务就要支付昂贵的版权费用,让人承受不起。那么,免费开源的非.Net体系,就会受到很多企业青睐,企业只要承担人工成本,不用过多支付版权费,是企业不得不考虑的方面。所以,现在使用什么技术,未来使用啥技术,是市场竞争的结果,要把握住这种趋势,才能占有先机。
php就是个入门简单,开源框架多,上手快的这么个语言,尤其是小项目不用开发简单配置下东西就出来了,不属于高级语言,java属于高级语言,开源,框架解决方案满天飞,生态链也好,跟mysql绝配,所以使用这俩组合成本会低很多。再说说这可爱可恨的.net,这个需要也属于高级语言,语言本身的语法也要比java好不少(我是同时写java也写.net所以感受特别深),虽说相同的东西也不少,再加上微软这个巨无霸在后面支撑,解决方案也不少,但是呢他的生态链基本脱离不了微软,不开源,跨平台也不是太舒服,还有就是成本太高,简单说就是你弄啥事也掺和个微软让你恶心到死,.net还有个最牛逼的优势那就是IDE,这个不用多说了,宇宙第一IDE没有之一并且不接受反驳而且不提供任何解释!
一天中什么时候运动减肥效果好抓 小孩能不能练哑铃多大的孩子适合 小孩嘴唇起皮怎么办怎样才能预防 孩子的罗圈腿是怎么形成的三大因 孩子早恋怎么办如何有效疏导孩子 医生婆婆称自己专业孩子的事必须 儿子成人礼送什么礼物好呢给你孩 有孩子的夫妻千万不要离婚对于孩 小孩千万别让老人带的说法正确吗 自卑缺乏安全感的孩子怎么改善 怎么让孩子开口说话 这几个方法 怎么让孩子吃饭 教你如何让孩子 怎么管教不听话的孩子 家长首先 顽皮的孩子怎么管教的 这些方法 叛逆期的孩子怎么管教 引导孩子 孩子性格软弱怎么办 懦弱的性格 孩子性格偏激怎么办 孩子性格偏 孩子性格固执怎么办 家长们不妨 爱惹事的孩子怎么管教 不妨试试 养育优秀的孩子具备特征,家长要 高考数学难出新天际,可有的孩子 “做胎教”和“不做胎教”的孩子 花费十几万只考了302分 妈妈觉得 甘肃作弊考生留下来的疑团,是怎 一举夺魁!高三学生离校时,校领 高考钉子户:26次参加高考,今年 D2809次列车因泥石流脱线!此类 “女儿16岁,学校宿舍里分娩了” 扭曲邪门的内容,频频出现在教科 川渝地区几所大学实力很牛!四川