广州.NET培训
达内广州.NET培训中心

18589266248

热门课程

C#的前景怎么样呢?我来告诉你

  • 时间:2018-02-05 16:22
  • 发布:c#前景
  • 来源:达内新闻

最近看到好多人都在问C#的前景怎么样,今天小编就来给大家分享下吧

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虚拟机,所关键不是语言,而是市场。

上一篇:.net分析工具你知道有哪些么? 
下一篇:.net程序员应该去怎么学习?你知道么?
选择城市和中心
贵州省

广西省

海南省