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

网友投稿 930 2022-10-17

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

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

你感觉.NET的前景如何?

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

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

链接地址:Microsoft 的潮流,主要不是技术之争,而是一种政治运动。说实话我挺反感这股潮流的,完全过火了。

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

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

作者:匿名用户

链接:随着消费习惯的改变,移动终端市场比电脑终端市场大得多,未来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做为传输协议,根据程序不同可以走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千万。

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

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

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

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Prezto — Zsh的配置框架
下一篇:容器环境的JVM内存设置实践记录
相关文章

 发表评论

暂时没有评论,来抢沙发吧~