.NET的前景如何?你的问题答案都在这里-2017

版权声明:本文为博主原创文章,未经博主允许不得转载。QQ527592435 https://blog.csdn.net/cplvfx/article/details/70156734
你感觉.NET的前景如何? 

我怎么感觉  现在都是PHP和 JAVA的天下了


如题:我找了些文章发些很好就分享下!

链接地址:https://www.zhihu.com/question/36993859?q=你感觉.NET的前景如何?


回答一:

题主所说C#边沿化的问题,是因为前十年出现一股反 Microsoft 的潮流,主要不是技术之争,而是一种政治运动。说实话我挺反感这股潮流的,完全过火了。

本质还是关于开源和闭源的争论,商业模式的竞争。虽然这些潮流,从时间轴拉长了看非常可笑,但它确实也鞭笞了 Microsoft,客观上促成了情况的转变。

现在 C# 开源后,问题就解决了。

在这种情况下,要看语言本身的技术性,而排除以前的成见。我觉得现在正是投资和押宝 C# 的好时机。如果以前有积累,现在放弃是最可惜的。


作者:匿名用户
链接:https://www.zhihu.com/question/36993859/answer/70173338
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

回答二:

作者:find goo
链接:https://www.zhihu.com/question/36993859/answer/137384805
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

行不行,看虚拟机。

java应用广是因为虚拟机,应用限制也是因为虚拟机。

python应用广是因为虚拟机,应用限制也是因为虚拟机。

Unity3D基于mono,能在ios平台把c#上编译成二进制运行,一下子解决了性能问题,所以Unity3D火了,加上vr应用的兴起,c#应用前景在大家最不被看好时,柳暗花明又一村。很多时候开发语言只是一种语法,在未来可能发展出的新的虚拟机引擎平台,又有了新的发展空间。

和c/c++不同,java,python,c#的发展关键看虚拟机这个翻译器。

看未来不能以当前的状态看未来,c#的mono已经开源, 随着消费习惯的改变,移动终端市场比电脑终端市场大得多,未来70亿人,有60亿人用移动终端不是夸张,对用户沾性更强,估计再过几十年未来终端应该是平板(大的,包括tv)+手机+手表+vr,这种新型终端,得终端者得天下,而传统pc可能只是生产者工具。

现在在移动终端3d市场,各个语言有短板,所以造成了c#的兴起。

主流的开发语言拿到移动终端特别是3d市场会有各种问题,如平台专用的java,obj-c,只能运行在自身平台,而跨平台受到竞争对手限制,如java虚拟机无法进入app store市场,被条款卡死了,obj-c/swift在ios上运行良好,但到了android受编译工个限制及java的平台限制不好用。如果两个平台同时开发,复杂度超过了1+1=2,而3d,VR会进一步增加复杂度。

c++本应该是理想选择,如cocos2d-x就是这种选择,但c++受限于指针内存管理的细节,开发速度特别慢,在商业竞争中用c++开发会导致成本高昂,对于需要快速迭代的移动市场成本太高,这一点在开发3d游戏时表现更明显,因为3d游戏的复杂度高于2d,而VR的复杂度又高于3d,所以需要一种能快速开发的性能高的能工程化的语言。

python,lua受语言静态检查限制,只适合小型化编程,而且性能在3d/VR这种要实时要求高时跟不上,而且python,lua开发工具对软件工程化支持度不好,n多人开发时不容易使用软件工程方法和软件进行管理,语言语法和c,java一样不兼容会导致人难招用工成本高,语言黑箱也比较多不适合在ios下编译成二进制。

c#,本来没有移动市场什么事,特别在基于java的安卓的出现后,微软的wp失败后,c#被认为不会进入移动市场,但mono的开源c#改变了这一切,Unity3D的出现,让人看到跨平台的c#,调用3d,VR平台这种以前是c++与lua天下的api很流畅,代码也好写,c#进步是mono开源虚拟机技术的进一步发展,适用了app store这种要求苛刻的环境,xamarin的开源让人们看到c#在开发移动平台程序时,是一种快速迭代,实现一种代码,n个平台运行。如果你用java幸苦开发出来只能运行于安卓,而c#开发出的游戏或软件可以运行mac,windows,ios,osx,tv,你怎么想?虽然对BAT这样的公司没什么问题(但成本上去了),但对需要快速占领市场,需要快速迭代产品运营赚钱的公司来吸引力非常大。大小老板不是傻子,老板开公司不是谷歌的研究院有钱玩技术不用管市场,而是需要有生产力,好招人,市场反映良好的开发语言,快速迭代移动终端的兴起市场。现代软件产品运行速度的瓶颈是IO,未来也会IO,因为一个死循环一直运行,1秒可以运行n亿次,每次产生一个数据,IO存储是无法跟上这个速度的。程序永远比IO跑得快。你用c++编程最后数据总要落地读写,但一旦调用IO部分,速度和java,c#同样慢。对数据分析,建议使用python,支持的工具库非常多。

另外随着游戏的终端领域的发展,有些团队为了开发方便,在服务器端也使用c#做为app服务器,使用mono可以运行于linux服务器,也可以运行windows,可以使用mysql,mongodb,redis,可以使用云平台基础产品,使用json做为传输协议,根据程序不同可以走http通道,也可以自定义tcp,只要框架设计注意,并发不是问题,这样整个产品的前后台迭代速度更快了。语言虚拟机技术只会越来越进步,硬件性能只会越来越高,用虚拟机语言是降低开发成本提高开发速度的趋势。硬件只会越来越便宜,没有必要像google,腾讯那样堆c++(90年代只有c++可选,后来的淘宝选java),一般的应用根本达不到,就算能达到,那时你整个产品就非常成功了,只要有钱,这些问题都不是问题,如facebook用php开发一样很成功,php性能不够时可请专家优化,开发php虚拟机,所关键不是语言,而是市场。

回答三:

 


回答四:



微博链接:
http://weibo.com/1678298567/DoR3Wtn9f?type=comment#_rnd1492056014543

如果你们看后还是疑问多,那么可以再看看下面的文章!

.NET技术在中国为什么老被人嫌弃

这个话题有点自黑的意思,我从.NET 1.1开始玩.NET,到现在已经11年了,我是看着.NET成长起来,在中国壮大的,也见证了近几年.NET被各种嫌弃,其实说到底还是中国的架构师太少,我是说真正懂行的架构师,一个资深的架构师是不会直接攻击一门语言或者嫌弃一门语言的,而是会从操作系统、服务器应用容器层面是分析性能、实现成本以及有多少坑。

我其实和很多客户、IT经理、高级软件工程师、架构师聊过,所以对事实有一定的了解。首先呢在中国技术圈氛围就是很浮躁的,浮躁到什么程度,还是中国人的老毛病,喜欢跟风、喜欢一窝蜂,人家用node.js,我们就用node.js;人家用docker,我们也用docker;人家用CloudFoundry,我们也用CloudFoundry,总之人家的东西比我们家先进,所以我们一定要跟上。拿docker来说,其实很多传统企业根本没有用,也就是几家互联网大厂对它情有独钟;Node.js我承认它性能好,但毕竟是弱语言编程,其实代码的维护成本并不低,而且你需要雇佣很资深的Javascript开发人员,薪水自然是水涨船高。其实很多所谓的架构师、IT经理考虑的不是迁移成本、运维成本,而是怎么找点事做,这样才能体现出自己的价值,我总结为四个字“无中生有”。

.NET中的C#语言(我的最爱)其实从1.0发展到6.0,目前已经非常成熟了,特别是语言层面的异步编程支持,已经部分超越了Java,那为什么还是没有公司愿意选它呢?从我的角度看,有几方面的原因。

首先微软的IDE实在是太好用了,好用到基本上找个应届生,就算不懂编程,1-2天内也能写个控制台程序,当然是简单的;但如果是Eclipse,配环境也要好一会儿,但这意味着什么知道吗?门槛!人的门槛!越好用的东西聚集的人相对越Low,当然并不是说用.NET的人烂,而是说平均而言,真正懂.NET的开发人员相对于懂Java的开发人员要少,因为人家的IDE用起来各种不舒服,还不如用Notepad++和Java.exe做编译。这就导致了Java的工程师很多时候必须知其然知其所以然,否则它没法干活,比如jar打包。但很多.NET的程序员估计连怎么用命令行编译程序都不会,这就是问题。

其次一些号称懂.NET的架构师觉得.NET简单,所以他们不愿意给.NET开发高工资,这也间接导致了很多.NET开发人员开始转向其他语言,其实这种模式就是个恶性循环。到最后的结果就是,大量潜在的优秀开发人员放弃.NET,毕竟现在是向钱看的年代。.NET从我的角度看是非常适合做后端,这么多年技术的积淀使得.NET得到了社区广泛认可,其实在国外懂.NET还是很吃香的,根本不愁找不到工作,所以国内一些公司的逻辑我觉得很奇怪,甚至觉得神奇,反正我就是不招.NET工程师,我公司比较高大上,所以只有高达上的Java、Node.js 才能配得上我司,我只能说,不作不死。

再者,.NET可以抄的现成架构并不多,而真正懂.NET的资深架构师在中国基本属于稀有物种,因为这些公司的所谓架构师水平有限,他们自己用.NET写不出好的架构代码(我通常喜欢叫他们集成师,即不会写代码或者写不好代码的架构师),最终还是选Java,因为Java有一大堆架构可以抄,而且很多是开源的,就算不会也至少能抄个4-5成吧。当然咯,从项目风险可控角度这是可以接受的,但其实资深架构师是可以解决这些问题的,在国外很多架构牛人基本都是自己写框架的,这也就能解释为什么优秀且流行的框架基本上都是洋人写的,比如Java的Structs、Spring framework, .NET的Orchard、DNN、ASP.NET Biolerplate等。

最后,微软作为.NET亲爹自然难辞其咎,自从纳总上台后,更是拼命推行拥抱开源政策,拥抱了一堆非.NET系语言,尽管推出了跨平台.NET即.NET Core,但在.NET市场布局和推广方面与过去并没有什么明显不同,说白了就是表现对.NET份额出无所谓的态度。不过微软一直是行业中比较傲娇的公司,它觉得只要自己想推什么肯定能成功,所以对市场份额从来表现的不太看重,他觉得根本不需要在意,迟早是微软的。然并卵,微软手机的失败让微软感受到了自己能力的有限,最近貌似在调整策略,其实回过头来看代价非常高,单收购诺基亚就花了85亿,我只能赞叹微软真土豪,有钱任性,呵呵。

我必须承认近2年.NET的中国市场份额在不断下降,很大程度上与.NET的市场推广策略有关,给行业内一种中低端编程语言的假象,在语言推广初期,这种策略没有什么错误,便于用户上手和接受,但是如今都10年了,重新树立.NET高大上技术的形象非常必要。

有人可能要说我属于老王卖瓜自卖自夸了,我举几个真实的.NET案例你就懂了,沪牌拍牌系统后台是.NET写的,并发至少几千每秒,这个大家懂的;Stackoverflow核心是.NET写的,网站并发 3000每秒,数据库并发 8000每秒;摩根斯坦利交易客户端以及协议是.NET写的;NASDAQ的交易系统是.NET写的,后台跑的SQL Server;腾讯有大量后台系统用.NET写,腾讯甚至已经使用跨平台.NET(Mono)很多年,部署于它的TLinux系统集群中;携程有大量系统用.NET写成,日均动态PV是3千万。

事实胜于雄辩,我就不多说了,你们懂的。

文章地址:http://www.cnblogs.com/neuzilla/p/dotnet_china_market_share.html

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

链接地址:https://www.zhihu.com/question/32249717

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

链接地址:https://www.zhihu.com/question/25908953/answer/32119971

展开阅读全文

没有更多推荐了,返回首页