鸿蒙是不是PPT我不知道 华为方舟已经实锤了

今日头条
Toutiao
最新回复:2019年9月19日 1点23分 PT
  返回列表
74267 阅读
30 评论
差评

自从上个月华为开发者大会发布了鸿蒙,很多人的目光就聚焦在鸿蒙的开源计划上。

没有见到实物,大家其实心里还是没底。也有爱之深责之切的开发者表示鸿蒙只是个 PPT 系统。但是 8 月 31 日,华为开源了方舟编译器的部分源码,各种声音都小了下来。

看的懂的看门道去了,可看不懂咋办。

托尼觉得要知道方舟编译器到底怎么样,首先得知道它是什么。

其实编译器也是程序,它的功能就是把程序猿们写的代码翻译给机器听。

编程说白了就是你写一段话( 一段代码 )去命令机器做事。可代码终归是人类语言,机器理解不了。

用 Python 告诉电脑输出一句话 “ Hello World ”,你可以这么写:

print("Hello World")

运行结果

为了让机器听懂我们的话,每套语言一般都会有一套编译器,专门把代码翻译成机器听得懂的话。

而方舟编译器不是为了适配某套语言,它想要能够编译尽可能多的语言。

可能有人会奇怪:明明每套语言都有成熟的编译器,为什么要去做一个多余的东西呢?

道理很简单。之前国内手机厂商的系统都是基于安卓开发的,虽然叫着各种 OS 说白了还是安卓的机制。

最早的安卓应用基本是用 JAVA 写的,但安卓的内核 Linux 中并没有 JAVA 的编译器。所以想让应用跑起来,还得嵌套一个 JAVA 虚拟机。

最早的时候安卓运行在一个叫 Dalvik 的虚拟机上,里面集成了一个解释器,每次用户在安卓手机上运行 APP 时,就会叫醒这个解释器,把程序翻译成机器码运行。所以最早的安卓很容易卡到飞起。

当然,经过这么长时间,安卓已经流畅了很多。不仅用上了新的 ART ( Android Run Time )虚拟机,还有在设备空闲时对程序进行静态编译的 AOT ( Ahead of Time )机制,再加上随时准备救场的 JIT ( Just in Time,即时编译 ) 机制和最早的解释器。

不过不得不承认,再怎么优化,多了编译的过程怎么都没省略编译直接运行来的快。方舟编译器的作用就是去掉这个编译的过程,让程序直接运行在操作系统上。

就像你为了接待外国友人,本想着语言不通花大价钱雇了翻译。结果外国友人一张嘴,嚯,中文八级!机器见了经过方舟编译的应用也是这个心情,别提多爽了。

方舟不仅让应用直接运行在操作系统上,还减少了多种语言互相调用带来的性能损耗。

前面说过安卓的应用有多种语言。现在的头部应用大多都是 Java / C / C++ 等混合语言编写的,不同的语言使用规范也不同,这就需要通过一个叫 JNI ( Java Native Interface )的接口进行不同语言的交互。

这不仅多了一个步骤,还会占用硬件资源。

不过管你什么语言,开发的时候方舟编译器就把程序语言做了统一处理,应用运行时完全没有这部分额外的损耗。

安卓祖传的 GC 内存回收也优化成了可以实时回收的机制。

根据华为官方测试,通过方舟编译器替换了系统后台服务的华为手机,系统操作流畅度和系统响应性能都可以明显提升。

听起来是挺好的,可到底真的假的?又不是谁都懂技术上的东西,之前鸿蒙 OS 的消息就众说纷纭的。

不过随着 8 月 31 日方舟编译器的开源,托尼就放心了很多。

“开源( open source )”指的是软件的源代码对其他人提供,需要的人都可以查看、复制、学习、修改或分享代码。

Linux 创始人 Linus Torvalds 说,“ Talk is cheap . Show me the code ” ( 少逼逼,代码拿来 )。开源就意味着华为 show 出了代码,方舟编译器确有其事。

不过方舟并不是一次性全部开源的,这一次只开源了基础功能。

首次开源范围是编译器 IR ( Intermediate Representation )、RC ( Reference Counting )和多语言设计思想,运行时并不在开源范围。

缺少了运行时,有开发者说难以参与其中。编程什么的托尼只是半吊子,只好请教华为的专家。

“ 之所以没有一次性开源,是因为内部有很多代码要整理、进行合规认证,还有许多流程要走。当然华为也承诺持续开源 ”

“ 运行时的开源内部还在讨论。实际上华为手机上是有现成的运行时的,开发者可以先在华为手机上跑程序,当然开源社区也在做一个简单的运行时,让大家能尽快脱离手机跑起来。 ”

方舟编译过程演示

至于为什么开源,专家告诉托尼,作为终端行业首个尝试跨平台多语言编译器,华为需要集合行业的力量,才能共建一个健康的开源生态。

“ 希望大家能够提问题说这不行,那不兼容,这补丁没有弄好,这些都是真诚的对我们的帮助,也是让这个系统更快迭代完成的过程。 ”

托尼这么看好方舟编译器并不是因为它是鸿蒙的重要组成部分。很多人因为鸿蒙是自研的系统而自豪莫名,但自研的意义,并不是廉价荣誉感。而是国内在通用基础软件,如操作系统、数据库等方面的羸弱。

通用基础软件的开发不仅不赚钱,还非常烧钱。国内企业别说是去做,想过要这么做的都没几个。别人都已经写好了,直接拿来用又省事又省钱,做做游戏,交友什么的,圈钱圈到飞起。

这就是为什么中国会有数以百万计的 “ 996应用程序员 ” ;这也是为什么没了基础软件授权,大厂也只能默默等死。

但华为真正迈出了这没人走过的第一步,不是鸿蒙,而是已经开源的方舟编译器。从这个意义上说,方舟虽然是鸿蒙的一部分,但是地位是等同的。

别的不说,中文文档就是头一回

当然,就目前的方舟还有各种各样的问题,不管是前端支持的语言,或者是 IR 的标准,再到算法优化,离完善还有很长的路要走,开发者们所能参与的部分也有很多。

不过,这艘“ 方舟 ”的架子在那了,多一点人搭,总能更快完成的。不说了,托尼先去给世超买只华为手机,让他找点bug去。

河池化工
1 楼
c
churchy
2 楼
滚操
e
entang1egeogeo
3 楼
鸿蒙我不看好,但是这个华为方舟估计是真的。但是,最后能否成功还有两个很大的问题: 1. 你如何说服现有的app开发商用你的编译器?人家什么好处都得不到。除了某些非常吃配置的游戏可以提高性能,绝大多数的已经可以在现有的java虚拟机环境下运行的很流畅了,为什么还有画蛇添足的用方舟呢? 2. 用方舟进行预编译,的确可以增加运行效率,可是却降低了存储效率。原来1G的一个游戏,现在需要5G的空间,这个问题方舟如何应对?
b
bmqx31
4 楼
STFU noob. It's Ref count compiler. Basically brings a Swift favor Java to Android.
c
cdcdcdd
5 楼
我没怎么看明白,方舟是否直接生成机器代码?如果是这样的话,那么如何支持不同的CPU架构(比如x86,arm64)? 苹果的App 直接是机器码,因为它采用封闭系统,不需要考虑兼容不同架构。难道华为也要走这条路?另外,有一个叫clang开源项目,能编译大部分主流语言,生成统一的中间码。
e
entang1egeogeo
6 楼
wow, what a potty mouth. arrogant+ignorant = worst combination
L
Ligang1966
7 楼
我觉得楼下的都分析的太简单了,华为有一个重要的属性你们都没考虑,就是爱国。就像华为手机一样,好不好买了就是爱国。鸿蒙要是出来了你不在上面开发app,就把你打入汉奸的行列
刘霍珲
8 楼
1. 60%的效率提升已经很大了,不需要多少说服工作吧?clang运行效率比gcc提高非常有限,也挡不住愈来愈多的公司转用clang。 2. 虚拟机比机器码需要更多的内存。如果你同时有C/C++和Java的经验就知道了。而且,编译机器码并不是说存储也要机器码。安卓现在存储下载都是伪码,运行前才编译成机器码,方舟的模式跟这个没什么不同。
f
folkuniv
9 楼
哈哈哈
e
evision
10 楼
听说华为现在找app进入他们的系统,不过要已经a轮融资的公司,给6万美金补助。。。有点搞笑。
f
fanzhou1989
11 楼
现在还有自媒体吹华为?不知道华为水军的节奏变了吗?以前是爱国华为日天日地日宇宙,拳打谷歌脚踢苹果;现在是华为是兢兢业业的企业,被全球第一大国打压,逆境求生存,吹华为牛逼的自媒体都是反串黑,捧杀华为,吃人血馒头。
k
kaikaikai1984
12 楼
华为都已经放风可以向美国政府提供所有5g技术并允许修改代码,而且还接受中兴模式换取美国政府解除封锁
e
entang1egeogeo
13 楼
终于来了个懂行的讨论。 1. 对于多数的app来说,效率提升并不一定会成为决定性因素。客户究竟等待20毫秒,还是15毫秒,是感觉不出来的,为什么还需要画蛇添足呢? 2. 我的理解是,方舟提前把编程语言编译成Maple IR并储存起来,应该需要更大的空间啊。
g
gdby
14 楼
华为走的就是当年义和团的套路,不断表演刀枪不入就是为了讨老佛爷欢心,毕竟老佛爷需要这个安自己的心,也安国人的心。
C
Cuisiner
15 楼
把open ark开源,是为了表明华为不骗人? 估计只有谷歌的开发人员才有兴趣看一看, 目的是?
m
martinggww
16 楼
60%?只掃600%! 就算size大了5倍,工作量007了又怎樣呢?用戶體驗是第一位的! 不要你們程序猿覺得,我要我覺得! 破壞Google的生態會怎麼樣呢?無所謂的,我是世界第一Android生產商,Google還不賴跪舔?! 不帶我玩兒了?無所謂,收入1300億降到1000億。 我們還有鴻蒙!5G,微內核全設備未來OS。不要你谷歌覺得,我要我覺得! google fuchsia? 怎麼跟鴻蒙比?鴻蒙有PPT,完美PPT, google fuchsia有PPT嗎?有在開發者大會向全球上宣布嗎?開玩笑! 不要你們這群漢奸賣國賊覺得,我要我覺得!
w
wtf6park
17 楼
安卓毕竟是第一代的产品,设计本身就有缺陷,有很多东西不是升个级就能解决的,早就该换了。看好鸿蒙,只要国人用的多了,自然就会有app兼容,只不过需要一点时间积累而已
党中央
18 楼
: 多一个选择吧。有些游戏是为了速度可以丧失硬盘容量的。
葫芦葫芦葫芦
19 楼
支持鸿蒙和他的生态,5G的速度是背后最大的支持
s
sdk
20 楼
我觉得华为有一个好,就是哪怕是ppt人家也做出来了,不像有些人就知道在网上指点江山
s
software_young
21 楼
原文作者真的懂技术吗,错了很多地方的,我指的是基本概念和常识类的。
y
yamagutihg
22 楼
贸易战你来我往尔虞我诈的,都是在为中国争利益,你妈诸葛亮空城计也没见有自己人去揭露他,你这个傻逼作者脑袋里装大便了吧。
顽童在线
23 楼
自己想把自己玩死,谁也阻止不了。
t
tracytracy
24 楼
为什么要show you the code? code 改改就是自己的了.
f
firewall
25 楼
小编说了那么多,还是没有说道具体的方舟怎么样子的。。。
刘霍珲
26 楼
: 你病得不轻啊。
T
TED
27 楼
code毛,将来如果用上这个系统,恐怕说什么都会被监视。。
m
marvels
28 楼
: 对,我们一起吹苹果啊,最近大降价,装逼犯们很犹豫,买了能不能装?不买该买什么装逼呢,人生第一难题。
f
fanzhou1989
29 楼
为啥要吹呢?实事求是点不好吗?
k
kk79
30 楼
又整些没用的看不懂的东西糊弄人,你就直接发布手机za