百科问答小站 logo
百科问答小站 font logo



为什么 C#/.Net在国内的人气远不如国外? 第1页

  

user avatar   yinfupai 网友的相关建议: 
      

首先是微软自己的锅,最近了解了下IT行业,发现.net在互联网行业曾经衰落了好几年,其中最大的影响就是很多互联网大厂都用Java了,而这些大厂比转java大多是鲍尔默时代的事。

传统桌面或是成熟且有实力的企业开发,.net其实用的并不少,最典型的是,银行的不少项目,而且一般稳定企业里的待遇不错,一般也不用换工作,这些人很少出现在人才市场上流动。

但是IT互联网企业最多,人才流动较快也较大,大多互联公司都是先赔本赚吆喝,成本上一开始也是问题,鲍尔默时代的微软,开发方案全用正版成本太高,所以.net没有那么流行。

现在的.net core 实际上很不错,重要的程序员可以很容易写出高性能并且稳定的代码,java如果不懂点jvm性能调优的话,实际上很难达到同样的性能。

但是如果是互联网行业,情况有些不同,现在是机器比人便宜,所以大多数情况下,大多数场景下,其实开发并不涉及深入的算法优化,所以性能差点不要紧,当然也差不到哪里去,所以只需要扩容就行了。

而如spring cloud这种成套的方案,基本上只需要会扩容,有个运维辅助就好,所以.net的性能优势并不明显。

当然java的前后端都需要的情况下,快速开发优势是缺乏的,毕竟大多重量级的组件需要改源码的是少数,大多数人只需要知道怎么避坑就好,而且大多数组件,都是提供统一通讯方案的,.net比起java这块有优势。

但是这个优势比php一比,那就差远了,像laraval,写Web界面开发效率很高,或者用Python的django写admin也是一样,基本是开箱即用。

所以方案上,如果要上大而稳的后端,用java,如果要快速开发出界面,用php或python。

.net相比不占据优势,如果要说性能的话。nodejs与go的方案,也同样都能实现高性能。

更关键的是,相对来说,这些人都比较好招,容易构建团队,所以在互联网开发这块,.net并不容易受到关注。

然而,.net其实找准了位置还是大有可为的。

首先,java生态强,但是写java的人更薪资成本也高,水平好的基本上都被大厂们给包了,剩下大多其实是进不了大厂的。

很多公司跟风去招的java开发人员,其实水平一般,架构能力也近乎没有,大多其实并不能发挥出java生态的力量。

这部分开发人员就目前的能力水平,还需要成长,需要踩无数的坑,写出来的东西,其实是比不上直接用.net方案的开发出来的东西效率高的,而且普遍.net的开发人员的成本要比同类的java低。

然后说到php,一般php要想达到高性能,起码得熟练使用swoole或lithium的经验,但大多数php初中级的开发人员其实并不会

而有这类开发经验的,大多薪资也猛涨上去了,更多的是熟悉thinkphp,laraval这类框架,开发效率是高,但是后端性能很糟糕,如果有会优化的,也不只是这个水平了。

可以说一般的php开发人员,实际上很难写出高性能的稳定方案,后端服务访问量大点就崩,即使上了自动扩容方案,硬件成本也不低。

所以综合考量,其实兼顾开发效率,性能与稳定性上,.net开发其实很占优势,对于小公司来说,相同的性能及稳定性要求的业务场景下,人力成本很低。

而其它成本,.net如果上windows server,sql server,全部用正版授权,自然成本不低。

但是其它方案成本就低了吗?oracle的mysql是实际是收费的,centos,redhat等改用mariadb都是预见了风险,jdk8以上版本是收费的,当然代替的话可以用openjdk或mariadb,除非有实力的大厂,国内很少有开发人员会愿意这样选。

虽然openjdk很适合适合根据需要进行魔改,如国内阿里的ajdk,美团的mtjdk等,这些需要强大的技术能力支持,虽然听起来很给力,其实很多小公司并没有这种能力。

在云上实际sql server也没比mysql贵多少,更何况如果自己用无论上云还是用ecs装mariadb或postgre这些免费的数据库,.net也可以接入。

.net各种方案,且不论Windows sever 无gui有免费的版本,而并且.netcore在liunx跑得也很欢。

数据库如果想用Sql server话,如果初期数据量不是很庞大,同样可以用sql sever,10g的免费sql server社区版储存,一样能在liunx上跑,不但支持图数据表,还支持外部表,。

做好业务切割,相隔远的或完全无关的,可以放docker加外部文件分库存储,之后公司赚钱了买个正版的其实也没多少钱。

只要会精打细算,其实微软提供的免费方案,初期足够小公司使用,而中期购买微软方案的其实也不吃亏,因为多了技术支持,其实变相省了成本,中后期可以选择性的接入java生态,不会太陡峭。

国外.net为什么流行度很稳,很有可能也与微软azure的有关,比如cosmos万能数据库几乎什么都能做,并且扩展国际节点非常轻松,然而中国却是用不了的。

总之,目前人力成本上说,高级的java与php人员太贵,.net的人员相对便宜得多,这就是优势,只要能搞好.net与java生态间平滑切入问题,发展会很快的。




  

相关话题

  为什么大部分程序员都喜欢用黑色界面? 
  C#为何属性和取值相同的dynamic对象的GetHashCode()相同,直接比较两者却又不同?? 
  C#新启线程导致主线程卡住的问题? 
  .net里web.config的compilation节点debug问题? 
  为什么微软不把C# 设计成像C++一样可以编写底层3D程序的一门语言了? 
  如何评价即将发布的 C# 9.0? 
  C#如何实现类似Nullable<T>的效果? 
  object是引用类型吗? 
  C# ConcurrentQueue 怎么长时间循环取任务? 
  .Net 为什么不为 Dictionary 提供 IEqualityComparer 的默认实现? 

前一个讨论
《道德经》里,“信不足焉,有不信焉”。都来说说,你是如何理解这句话的。?
下一个讨论
怎样反驳“吾生也有涯,而知也无涯,以有涯随无涯,殆矣”?





© 2024-11-09 - tinynew.org. All Rights Reserved.
© 2024-11-09 - tinynew.org. 保留所有权利