方舟编译器,最近几个月,一直在科技热词之首。
这来源于其自身架构层面的优化,也来源于其与鸿蒙系统OS在特殊时间背景下的关系。此外,自诞生以来,Ark编译器就宣布将开源。

对于中国的软件开发者来说,开源是一个既熟悉又陌生的词。很熟悉,几乎所有人都在用GitHub,但很奇怪,中国的底层软件技术,这个看似没有移动端的东西,却去开源了。
在不久前的华为开发者大会上,华为给出了鸿蒙系统OS和方舟编译器的开源时间表。不到一个月后,8月31日,华为方舟编译器开源官网正式上线,框架开源代码与关注方舟编译器的发烧友和开发者见面。
据悉,方舟编译器开源版开放了编译器框架的部分源代码,包括编译器中间表达式+语言编译。开发者可以通过官网和代码托管网站获取相关代码和文档进行参考,学习和了解方舟编译器的架构和代码。
放眼更广阔的未来,这一次,开源不仅仅是技术发布。基于方舟编译器,华为引领行业共建生态和社区,是中国底层软件开源之路的探索。
“方舟”和“开源”,或许有理由把这两样东西放在一起看。因为开源软件和社区建设,一直被认为是中国软件业必须完成的关键环节。而方舟编译器的战略价值恰恰成为了一个契机和窗口。
开源是途径,方舟是关键。两者结合起来,或许可以窥见中国移动产业和软件产业的生态未来。
五十年,开源软件的历史和产业的洪流
要理解方舟开源对业界的价值,首先要说明这样一个问题:软件开源为什么重要?
这个问题要放在五十年的历史长河中来回答。事实上,整个信息革命的过程总是伴随着软件开源的不断发展和深化。一部开源的历史也是一部信息技术和互联网工业革命的历史。
UNIX是由美国电话电报公司·贝尔实验室在1969年开发的。未来10年,业界可以低成本获得UNIX源代码,并在此基础上进行创新和改进。事实上,UNIX和贝尔实验室在当时就已经创造了开源意识和社区思想的最初版本。之后,美国电话电报公司出于商业原因停止了免费的UNIX版本更新,但软件开发者的自由和共享意识已经觉醒。从此,计算机时代一直伴随着软件工作者对开源的热爱和执念。
1984年,richard stallman发起了GNU项目,目标是创建一个完全免费且向后兼容的UNIX操作系统。次年,他围绕GNU建立了自由软件基金会,第一个推广自由软件的非营利组织诞生,为软件业正式开始开源工作奠定了基础。
1991年,Linux内核诞生。其实大家熟知的Linux就是采用了当时GNU的系统软件集,可以说是对GNU项目的发展和继承。Linux内核也开放不久,其开发生态直接影响了互联网产业的进程。
我们所熟悉的Android,是用Linux内核编写的手机操作系统。Android的开源和生态建设,直接造就了移动互联网和智能手机的繁荣时代。相对于封闭的iOS,Android的开源有很多问题,但其高开放、低门槛也带来了行业的包容价值和强劲增长空。
开源之路并没有就此结束。2008年,著名的GitHub发布。这个平台的价值在于,它是一个开源的分布式软件版本控制系统,各种开源项目都可以在平台上公开公正,从而与全世界的开发者一起创造更好的软件体验。如今,GitHub已经成为一个被广泛认可的开源民主化平台,其社区生态影响着全球各领域软件开放的进程。
回顾开源50年的历史,我们会发现开源平台和技术是在时代需求和先进技术的基础上逐渐发展起来的。而更高质量、更彻底、更自由的开源底层软件,并不会降低一个公司的竞争力。反而可以促进行业的共识和生态的繁荣,利用所有开发者的智慧,共同做大技术红利。
所以开源的历史带给世人的结论是:平台技术的开源是长期红利的基础,是产业繁荣的先导。不断适应时代需求的开源技术和开源社区生态,是层层搭建的软件塔。在这座塔上,软件用全球开发者的智慧让自己变得更好,然后反哺世界科技的发展。
开源生态的底层模式,技术的民主化,贡献更大、话语权更大的社区机制,奠定了软件行业50年可持续进化的基础能力和全球行业共识。不幸的是,在这场巨大的变革中,中国软件人更多的是在扮演用户和学习者的角色,而不是变革推动者。
当然,多年来这种情况正在改变。例如,华为等中国公司正在继续拥抱开源。目前,华为在开源社区拥有十多个理事席位和200多个TSC、PTL和核心委员会席位,具有很大的国际影响力。华为作为Linux基金会白金会员,为Linux内核贡献了6800+补丁,是TOP 5中唯一的亚洲厂商。
在开源事业上一直有所积累的华为,正准备在移动生态的沃土上开始由中国科技公司主导的开源平台建设。
历史的时针可能会倒转。
今天,方舟的舵
回顾历史,底层软件开源之路带来的行业红利主要就是这种模式产生的:软件本身具有巨大的应用价值,开源后厂商和开发者可以获得直接的效用;进而让广大开发者重新思考、雕琢、优化这个软件,汇聚成一个开源社区。这个共同体不仅仅是底层技术的不断优化,更是行业共识的自然建立。

方舟编译器的开源显然符合这个逻辑的基础。
对于APP厂商、软件开发商、互联网公司来说,对方舟编译器的了解和应用,能够带来的核心价值,就是对自身应用体验的直接提升。从长远来看,Ark Compiler背后的技术思想和生态价值将对行业产生长远的推动作用。
这个开源的Ark编译器框架代码可以完成Java静态编译,包括类层次结构分析、虚方法表和接口表的生成、原生函数的处理、基于引用计数的内存管理,提供简单的RC插入功能。
现阶段框架是开源的,主要满足编译领域专家和爱好者的研究和学习需求。同时,华为将继续优化其他编译器组件,以便使源代码更适合开源社区的开发环境。同时,开发者可以通过代码托管平台参与社区贡献,包括文档贡献和代码贡献,也可以在这个平台上反馈相关问题和需求。
由近及远,我们看到方舟编译器开源,并建立了相关的社区和贡献体系,这对整个软件行业有三个价值:
1.开发者可以通过加强对Ark编译器的了解来加强自己的产业竞争力。
Ark编译器具有多语言联合优化能力、高效的内存回收机制、灵活的编译优化方法、极低的学习和使用成本等特点。如今,方舟编译器已经广泛应用于产业合作的各个APP开发领域,成为提升用户体验的新技术。Ark开源本身,对于这些APP开发者和移动应用开发行业来说,是一个增进了解,加强自身行业与Ark编译器之间耦合的机会。在同质化竞争激烈的移动互联网行业,这是差异化竞争力的另一个来源。
2.了解跨语言编译机制,提高自己的业务能力和面向未来的移动编程能力。
Ark编译器本身就是一种新的编译机制,特别是具有跨语言编程的能力。很大程度上,这是对目前编程基础的一种优化和提升。业内人士都知道,跨语言编译已经成为行业主流,但是存在大量的痛点。比如JNI和反射机制价格昂贵;Java代码和C/C++代码互不可见;跨语言的整体程序优化无法实现等等。
这个开源的Ark编译器框架代码包括编译器中间表示和语言编译实现。开发者可以基于开源代码+二进制构建编译器工具链,尝试编译Java程序。这样开发者就可以通过熟悉Ark编译器的架构思想,提高自己在跨语言编程领域的业务能力和理解水平——通过Ark的“分解和解决问题”,实现行业内基础软件层面的共同进步。
3.参与方舟的生态建立,在日益壮大的开源环境中获得长期红利。
编译器是一个庞大的软件工程,需要逐步完善。对于软件开发人员、高校科研人员、终端厂商来说,方舟开源在此时推出的开源社区可以说是中国移动开源社区的基础,也是寻求未来行业共识的良好平台。这时候加入不仅可以在短期内加强业务竞争力,还可以通过长期的贡献帮助积累未来社区的话语权。在方舟开源的过程中,编译者会建立托管平台,根据贡献决定话语权,走向开放的治理机制,最终形成社区生态。这是中国终端软件的全新尝试,无论是完成产业链,还是走向未来,都将不断激发技术和社区红利。这些红利将长期释放给行业和开发者生态,尤其是早期参与者和积极贡献者。
像许多伟大的底层技术一样,Ark编译器将是开源的,对所有智能大脑开放。当开发者在这一刻拥抱方舟的时候,一定会关注这样一件事:这个方舟在向何处去?
卢远芳
移动时代之后,下一个科技产业时代从何而来?我觉得现在对这个问题已经有了初步共识:5G提高了连接能力;AI改变交互;物联网作为一种硬件形态,一起编织成下一个时代。
对于软件和移动行业来说,今天最关键的问题是:我该怎么走这条路?
要知道,AI、5G、IoT的想象是相辅相成的,但其中涉及的技术难点太多,在起步阶段严重缺乏技术共识。比如AIoT的芯片、网络、应用、算法,以及未来的演进方向,在今天都充满了不确定性,甚至是矛盾的产业现状。
如何让这条通往未来的路真正畅通?借鉴信息技术50年的历史,我们会发现开源和技术民主是确定行业底层技术共识的最佳方式。
5G交融AI的智能时代,是中国人和中国开发者第一次完全掌握了科技产业革命,但这是机遇,也是考验。当我们需要开源生态和社区的长期红利时,首先要建设生态和社区。未来的技术大门需要一把钥匙才能打开,开源社区和技术生态需要第一堆土壤来积累。
从哪里开始?为什么不从方舟开始?
我们知道,方舟编译器是鸿蒙系统OS的重要工具,而鸿蒙系统OS是面向物联网全场景生态的底层操作系统,也是AI和5G融入新硬件时代的关键接口。
如果我们把Ark开源到鸿蒙系统开源看作是一个长期实施、长期生态的系统工程,我们会发现,华为其实是基于Ark开源刚刚发生的在中国开放面向未来的开源社区的第一步。

方舟的开源和改进是一个不间断的过程,是一个系统工程,是一个释放行业红利的长期轨道。接下来,2020年,方舟编译器将开放Java编译器工具链,支持Java程序编译;2021年,Ark compiler将开放对Javascript语言的支持,可用于编译JS应用。
同时,鸿蒙系统OS的开源工作也将陆续展开。华为将在社区中不断为行业贡献自己在软件方面的技术能力,与行业一起探索更好的、更符合时代需求的软件技术。
沿着这条道路,我们今天已经可以想象到很多东西,比如基于AIoT逻辑的杀手级应用,明星公司的成长;比如,物联网产业迎来大量共识,产业效率快速提升;例如,软件开发行业的总体效率得到了提高,更多的创造性思维和人才将聚集在软件领域。
未来还很长,但钥匙在手中。以前我们问中国软件行业为什么总是跟随者而不是创造者,其实很多时候答案很简单,因为没有人迈出第一步,没有人选择最辛苦最累的工作去完成,没有开源开放的共识和思考。
如今,很多事情都变了。从方舟到开源,从开源到生态——鸿蒙系统已经开放,春草青青。


