不兼容VirtualBox虚拟机,微软不再发布java虚拟机 为什么( 二 )


华为方舟编译器可以编译C/C , Java , JavaScript以及Kotlin , 方舟编译器可以说是实现了几乎所有操作系统平台的通用开发语言的编译环境 。不过要强调的是方舟编译器并没有实现Java像C/C一样的静态编译 , 方舟编译器本质上还是基于GCC的交叉编译套件 , 本身还是采用的预编译的方式 , 至于效率到底怎么样 , 目前也只是华为官方给出了一些数据 , 而且我找遍了华为开发者官网也没有找到这个工具 。
安卓为什么不直接把C作为主要开发语言C作为应用开发语言其实并不奇怪 , 在Windows上除了基于C#和.NET的Windows Form , macOS下则是Objective-C以及Swift , C可以实现对几乎Linux/macOS/Windows三大平台的应用开发 , 诺基亚就曾将C作为应用开发语言 , 当然最终也没能把生态搭建起来 。
那么作为以C/C为核心技术栈的Google为什么不选择C作为Android的核心开发语言呢?主要原因还是几点:C开发门槛相当高 。C是主流编程语言当中学习难度最大 , 学习成本最高 , C正式因为功能太强大了 , 一方面要兼容结构编程 , 又增加了面向对象编程 , 不够彻底的面向对象编程语言 , 又要做很多C语言才能做的事 , 学习门槛相对就高了很多 。
相对应的Java却是比较彻底的面向对象编程 , 学习门槛要低了很多 。C代码能在任何平台下运行 , 不过在每个平台都需要单独重写、重新编译 。这一点就相当的麻烦 , Java本身就是完全跨平台的 , 也是完全开源免费的 , 一次开发到处运行 , 这样可以极大的降低研发成本 。Java拥有最丰富的开发者群体、最好的开源社区支持 。
不论是在美国本土 , 还是在其他国家 , 尤其是我国市场Java编程语言是行业第一大编程语言 , 是连续多年占据着TIOBLE编程语言榜单第一的编程语言 , Java开发者群体的壮大让Android企业在人力方面的成本大大降低 , 基本上内部Java Web或者做企业级应用的都可以轻松转岗Android开发 。选择开发语言的时候我相信Google是做了很大的权衡的 , 毫无疑问Google最重要的技术栈是C/C , 要满足开发者群体足够、开源免费、门槛足够低、完全跨平台、兼顾到性能等等众多特点 , 你就会发现除了自己像苹果或者微软那样做一门编程语言 , 也就是Java最适合了 。
方舟编译器到底如何还不确定尽管华为已经明确表示了方舟编译器和鸿蒙OS操作系统都是开源的 , 不过到现在为止这两款工具都还没有正式开源 , 也许是华为还没有完全准备好将这两个重量级的产品推向开发者市场 。根据华为的资料显示 , 方舟编译器对于体验的提升是非常明显的 , 方舟编译器让系统操作流畅度提升24% , 系统响应速度提升44% , 第三方应用的操作流畅度提升了60% , 不过目前这些数据都还是华为的实验室数据 , 一旦进入真正大规模使用的阶段 , 是不是能达到实验室的数据 , 我们还不得而知 。
华为方舟编译器这事儿 , 如果要有机会还是的华为自己的鸿蒙操作系统上完全重新构建方舟编译器 , 方舟编译器本质上是基于GCC开发的交叉编译器套件 , 而华为方舟编译器仅仅也只是构建在Android这一个成熟的商业生态之上 。从技术本质上讲 , 华为采用的是预编译技术 , 这玩意儿也不是新鲜事儿 , Android也尝试过 , 可是预编译技术会产生一些大家众所周知的后遗症 , 你会产生大很多的固件文件 。

推荐阅读