「差评」鸿蒙是不是PPT我不知道,方舟已经实锤了
自从上个月华为开发者大会发布了鸿蒙 , 很多人的目光就聚焦在鸿蒙的开源计划上 。
没有见到实物 , 大家其实心里还是没底 。 也有爱之深责之切的开发者表示鸿蒙只是个 PPT 系统 。 但是 8 月 31 日 , 华为开源了方舟编译器的部分源码 , 各种声音都小了下来 。
看的懂的看门道去了 , 可看不懂咋办 。
----「差评」鸿蒙是不是PPT我不知道 , 方舟已经实锤了 //----[ http://www.caoding.cn]
托尼觉得要知道方舟编译器到底怎么样 , 首先得知道它是什么 。
其实编译器也是程序 , 它的功能就是把程序猿们写的代码翻译给机器听 。
编程说白了就是你写一段话( 一段代码 )去命令机器做事 。 可代码终归是人类语言 , 机器理解不了 。
用 Python 告诉电脑输出一句话 “ Hello World ” , 你可以这么写:
print("Hello World")
运行结果
----「差评」鸿蒙是不是PPT我不知道 , 方舟已经实锤了 //----[ http://www.caoding.cn]
为了让机器听懂我们的话 , 每套语言一般都会有一套编译器 , 专门把代码翻译成机器听得懂的话 。
而方舟编译器不是为了适配某套语言 , 它想要能够编译尽可能多的语言 。
可能有人会奇怪:明明每套语言都有成熟的编译器 , 为什么要去做一个多余的东西呢?
----「差评」鸿蒙是不是PPT我不知道 , 方舟已经实锤了 //----[ http://www.caoding.cn]
道理很简单 。 之前国内手机厂商的系统都是基于安卓开发的 , 虽然叫着各种 OS 说白了还是安卓的机制 。
最早的安卓应用基本是用 JAVA 写的 , 但安卓的内核 Linux 中并没有 JAVA 的编译器 。 所以想让应用跑起来 , 还得嵌套一个 JAVA 虚拟机 。
----「差评」鸿蒙是不是PPT我不知道 , 方舟已经实锤了 //----[ http://www.caoding.cn]
最早的时候安卓运行在一个叫 Dalvik 的虚拟机上 , 里面集成了一个解释器 , 每次用户在安卓手机上运行 APP 时 , 就会叫醒这个解释器 , 把程序翻译成机器码运行 。 所以最早的安卓很容易卡到飞起 。
当然 , 经过这么长时间 , 安卓已经流畅了很多 。 不仅用上了新的 ART ( Android Run Time )虚拟机 , 还有在设备空闲时对程序进行静态编译的 AOT ( Ahead of Time )机制 , 再加上随时准备救场的 JIT ( Just in Time , 即时编译 ) 机制和最早的解释器 。
----「差评」鸿蒙是不是PPT我不知道 , 方舟已经实锤了 //----[ http://www.caoding.cn]
不过不得不承认 , 再怎么优化 , 多了编译的过程怎么都没省略编译直接运行来的快 。 方舟编译器的作用就是去掉这个编译的过程 , 让程序直接运行在操作系统上 。
----「差评」鸿蒙是不是PPT我不知道 , 方舟已经实锤了 //----[ http://www.caoding.cn]
就像你为了接待外国友人 , 本想着语言不通花大价钱雇了翻译 。 结果外国友人一张嘴 , 嚯 , 中文八级!机器见了经过方舟编译的应用也是这个心情 , 别提多爽了 。
----「差评」鸿蒙是不是PPT我不知道 , 方舟已经实锤了 //----[ http://www.caoding.cn]
方舟不仅让应用直接运行在操作系统上 , 还减少了多种语言互相调用带来的性能损耗 。
前面说过安卓的应用有多种语言 。 现在的头部应用大多都是 Java / C / C++ 等混合语言编写的 , 不同的语言使用规范也不同 , 这就需要通过一个叫 JNI ( Java Native Interface )的接口进行不同语言的交互 。
这不仅多了一个步骤 , 还会占用硬件资源 。
----「差评」鸿蒙是不是PPT我不知道 , 方舟已经实锤了 //----[ http://www.caoding.cn]
不过管你什么语言 , 开发的时候方舟编译器就把程序语言做了统一处理 , 应用运行时完全没有这部分额外的损耗 。
安卓祖传的 GC 内存回收也优化成了可以实时回收的机制 。
根据华为官方测试 , 通过方舟编译器替换了系统后台服务的华为手机 , 系统操作流畅度和系统响应性能都可以明显提升 。
----「差评」鸿蒙是不是PPT我不知道 , 方舟已经实锤了 //----[ http://www.caoding.cn]
听起来是挺好的 , 可到底真的假的?又不是谁都懂技术上的东西 , 之前鸿蒙 OS 的消息就众说纷纭的 。
不过随着 8 月 31 日方舟编译器的开源 , 托尼就放心了很多 。
“开源( open source )”指的是软件的源代码对其他人提供 , 需要的人都可以查看、复制、学习、修改或分享代码 。
----「差评」鸿蒙是不是PPT我不知道 , 方舟已经实锤了 //----[ http://www.caoding.cn]
Linux 创始人 Linus Torvalds 说 , “ Talk is cheap . Show me the code ” ( 少逼逼 , 代码拿来 ) 。 开源就意味着华为 show 出了代码 , 方舟编译器确有其事 。
----「差评」鸿蒙是不是PPT我不知道 , 方舟已经实锤了 //----[ http://www.caoding.cn]
不过方舟并不是一次性全部开源的 , 这一次只开源了基础功能 。
首次开源范围是编译器 IR ( Intermediate Representation )、RC ( Reference Counting )和多语言设计思想 , 运行时并不在开源范围 。
----「差评」鸿蒙是不是PPT我不知道 , 方舟已经实锤了 //----[ http://www.caoding.cn]
缺少了运行时 , 有开发者说难以参与其中 。 编程什么的托尼只是半吊子 , 只好请教华为的专家 。
“ 之所以没有一次性开源 , 是因为内部有很多代码要整理、进行合规认证 , 还有许多流程要走 。 当然华为也承诺持续开源 ”“ 运行时的开源内部还在讨论 。 实际上华为手机上是有现成的运行时的 , 开发者可以先在华为手机上跑程序 , 当然开源社区也在做一个简单的运行时 , 让大家能尽快脱离手机跑起来 。 ”
方舟编译过程演示
----「差评」鸿蒙是不是PPT我不知道 , 方舟已经实锤了 //----[ http://www.caoding.cn]
至于为什么开源 , 专家告诉托尼 , 作为终端行业首个尝试跨平台多语言编译器 , 华为需要集合行业的力量 , 才能共建一个健康的开源生态 。
“ 希望大家能够提问题说这不行 , 那不兼容 , 这补丁没有弄好 , 这些都是真诚的对我们的帮助 , 也是让这个系统更快迭代完成的过程 。 ”
----「差评」鸿蒙是不是PPT我不知道 , 方舟已经实锤了 //----[ http://www.caoding.cn]
托尼这么看好方舟编译器并不是因为它是鸿蒙的重要组成部分 。 很多人因为鸿蒙是自研的系统而自豪莫名 , 但自研的意义 , 并不是廉价荣誉感 。 而是国内在通用基础软件 , 如操作系统、数据库等方面的羸弱 。
通用基础软件的开发不仅不赚钱 , 还非常烧钱 。 国内企业别说是去做 , 想过要这么做的都没几个 。 别人都已经写好了 , 直接拿来用又省事又省钱 , 做做游戏 , 交友什么的 , 圈钱圈到飞起 。
这就是为什么中国会有数以百万计的 “ 996应用程序员 ” ;这也是为什么没了基础软件授权 , 大厂也只能默默等死 。
但华为真正迈出了这没人走过的第一步 , 不是鸿蒙 , 而是已经开源的方舟编译器 。 从这个意义上说 , 方舟虽然是鸿蒙的一部分 , 但是地位是等同的 。
别的不说 , 中文文档就是头一回
----「差评」鸿蒙是不是PPT我不知道 , 方舟已经实锤了 //----[ http://www.caoding.cn]
当然 , 就目前的方舟还有各种各样的问题 , 不管是前端支持的语言 , 或者是 IR 的标准 , 再到算法优化 , 离完善还有很长的路要走 , 开发者们所能参与的部分也有很多 。
----「差评」鸿蒙是不是PPT我不知道 , 方舟已经实锤了 //----[ http://www.caoding.cn]
不过 , 这艘“ 方舟 ”的架子在那了 , 多一点人搭 , 总能更快完成的 。 不说了 , 托尼先去给世超买只华为手机 , 让他找点bug去 。
“ talk is cheap , show me the code ”
推荐阅读
- 三国杀:卡牌是否应该“界限突破”?且看这版「界闪电」设计如何
- 「周榜」9件最抢手美衣
- 丰田神车来了!上市10年,往期0差评,油耗4.7L,放弃奇骏
- 「连麦两会」两位90后村支书隔空分享战“疫”中的乡村管理经验,共谋致富奔小康之路
- 目前几乎零差评的三款苹果手机!便宜又好用,拿出去有面子
- 「两会访谈」新冠疫情下的外贸企业突围之路
- 「图解」半导体成当之无愧吸金王,2.8亿资金打板紫光国微
- 「威客电竞CSGO」ESL里约欧洲淘汰赛,Astralis 3比0碾压G2获冠军
- 最强神父!「圣水喷射攻击」净化信徒那颗邪恶的心
- 深夜美食之「红酒焗排骨」,熬最长的夜,吃最香的排骨
