C#当然已经是一门彻底的跨平台编程语言,最厉害的是C#是目前除了C++之外唯一一门可以开发移动端和PC端的编程语言,C#除了Windows平台的开发,还搞定了iOS/Android的开发,他还不用像C++一样每个平台都要单独开发一次。
从Mono说起、C#似乎不是真正的跨平台
C#并不是一开始就跨平台的,不像Java/Python/JavaScript/PHP这些编程语言一开始就是跨平台,C#并不是这样,C#设计之初并不是跨平台的。
C#之父也是Delphi之父、安德斯海尔斯伯格从设计C#开始,就把它作为了Windows平台专属的编程工具,因此微软官方并没有像Java一样跨平台。
Xamarin公司主持了一个叫做Mono的开源项目,这个项目的目的就是创建一个开源的
.NET
工具,包括C#编译器以及通用语言架构,与微软官方的.NET
Framework不同的是,Mono项目不仅仅可以在Windows平台上运行,还可以在Linux、Unix、macOS、FreeBSD、Solaris等,甚至在Playstation 3,Wii以及XBox 360等游戏平台Mono也都能够运行。后来微软收购了Xamarin这家公司,微软正式推进了C#和
.NET
开源,并且微软官方推出了macOS版本的visual studio,其实就是基于xamarin做的,这可以说是微软正式官方支持了整个微软最核心开发体系的跨平台和开源。C#能够用在下面这些框架当中
.NET
Core(全平台、完全跨平台支持Linux、Windows、macOS),主要用在服务器端开发,Web应用开发,以及企业系统开发,这方面功能是C++/Java/PHP/Python等编程语言最擅长的事情;Windows桌面程序开发,主要技术是WPF框架,这个层面的技术是C++最擅长的;
Unity游戏引擎的主要脚本语言,可用来开发PC、Sony、Xbox等游戏平台上的各种游戏,Unity是最为成熟的游戏引擎之一,目前除了Unity最强的是Unreal虚幻引擎,虚幻引擎的主要编程语言则是C++,相对来说C#更低的学习门槛,也让Unity迅速发展成为最火的游戏引擎之一;
开发原生移动应用,除了曾经的Windows phone平台,通过Xamarin的技术,微软实现了iOS/Android原生应用开发,并且与此同时还支持了macOS应用开发;
.NET
标准在上述所有应用程序中使用.net标准创建库。最后总结一下跨平台编程语言的特点:Java是一次编写到处运行,C++是一次编写针对特定的平台进行编译,C#则本质上仅仅是一门编程语言,想要实现跨平台你需要选择不同的技术栈、不同的框架。
本文由EmacserVimer原创出品,未经许可,任何渠道、平台请勿转载,违者必究。
- 相关评论
- 我要评论
-