道路与距离从方舟的开源到中国软件产业的生态未来

最近几个月,“方舟编译器”一直处于技术热潮的顶端。

这源于其自身的架构级优化,也源于其在特定时代背景下与鸿蒙操作系统的关系。此外,方舟编译器自诞生之日起就宣布将开放源代码。

对于中国软件开发人员来说,开源是一个熟悉又陌生的词。熟悉的是几乎每个人都使用GitHub。奇怪的是,似乎没有移动终端的中国底层软件技术已经转向开源。

在最近的华为开发者大会上,华为给了鸿蒙操作系统和方舟编译器一个开源时间表。不到一个月后,8月31日,华为的Ark编译器开源官方网站正式启动,框架开源代码与关注Ark编译器的粉丝和开发者见面。

据悉,开源版本的Ark编译器已经打开了一些编译器框架的源代码,包括编译器中间表达式(IR)语言编译。开发人员可以通过官方网站和代码托管网站获取相关代码和文档,以供参考,并学习和理解Ark编译器的架构和代码。

5d73814158ae7.png

展望更广阔的未来,这种开源不仅仅是技术的对外发布。基于方舟编译器,华为引领行业共同建设生态和社区,这是中国底层软件开源之路的探索。

“方舟”和“开源”可能有理由将这两者结合在一起。由于软件的开源和社区建设,它一直被认为是中国软件产业必须完成的关键环节。方舟编译器的战略价值刚刚成为一个机会和窗口。

开源是道路,方舟是关键。当两者结合起来,我们可能会看到中国移动产业和软件产业的生态未来。

50年,软件开源和工业洪水的历史

要理解方舟开源对行业的价值,首先必须解释这样一个问题:为什么软件开源很重要?

这个问题必须在50年的漫长历史中得到回答。事实上,信息革命的整个过程一直伴随着软件开源的不断发展和深化。开源历史也是信息技术和互联网的工业革命历史。

1969年,阿特贝尔实验室开发了UNIX。在未来10年,业界可以低成本获得UNIX源代码,并在此基础上进行创新和改进。事实上,当时UNIX和贝尔实验室已经创建了开源意识和社区思想的原始版本。尽管ATT出于商业原因停止了免费的UNIX版本更新,但软件开发人员对自由和共享的意识已经觉醒。从那以后,计算机时代一直伴随着软件工作者对开源的热爱和痴迷。

5d7381423296b.png

1984年,理查德·斯托尔曼启动了GNU项目,目标是创建一个完全自由和向后兼容的UNIX操作系统。第二年,他围绕着GNU建立了自由软件基金会,从而诞生了第一个推广自由软件的非营利组织,为软件行业正式开始开源工作奠定了基础。

1991年,影响了现在的Linux内核诞生了。事实上,当时著名的Linux采用了GNU系统软件集,可以说是GNU项目的发展和继承。Linux内核很快被开发出来,它的发展生态直接影响了互联网产业的进程。

我们熟悉的安卓是一个用Linux内核编写的移动操作系统。安卓的开源和生态建设直接创造了一个繁荣的移动互联网和智能手机时代。与iOS的关闭相比,Android的开源存在很多问题,但其高开放性和低门槛也带来了行业的普遍价值和强劲的增长空间。

然而,开源之路并没有就此止步,著名的GitHub在2008年发布了它。该平台的价值在于它是一个开源的分布式软件版本控制系统。各种开源项目都可以在平台上公开公平的软件源代码,从而为全世界的开发者创造更好的软件体验。今天,GitHub已经成为一个被广泛认可的开源民主化平台,它的社区生态影响着全球各个领域的软件开放进程。

5d7381426e72c.png

回顾开源50年的历史,我们会发现开源平台和技术是在时代需求和前人技术的基础上逐步发展起来的。然而,更高质量、更彻底和更自由的底层软件不会降低公司的竞争力。相反,它可以促进行业共识和生态繁荣,并利用所有开发商的智慧,共同增加技术红利。

因此,开源历史带给世界的结论是,平台技术的开源是长期红利的基础,也是工业繁荣的先导。不断适应时代需求的开源技术和开源社区生态是一个层层叠叠的软件塔。在这座塔的顶端,软件利用全球开发者的智慧让自己变得更好,然后反馈世界科技的发展。

生态开源的底层模式、技术的民主化、贡献更大、话语权更大的社区机制,为软件产业的可持续发展和50年后的全球产业共识奠定了基础。不幸的是,在这一巨大的变化中,中国软件人更多地扮演应用和学习者的角色,而不是变革推动者。

当然,这种情况多年来一直在变化。例如,华为和其他中国公司继续拥抱开源。目前,华为在具有重大国际影响力的开源社区中拥有10多个董事席位和200多个TSC、PTL和核心委员会席位。作为Linux基金会的白金会员,华为为Linux内核贡献了6800个补丁,是排名前五的唯一一家亚洲制造商。

华为一直在积累开源业务,如今正准备在移动生态的沃土上,开放一个由中国科技公司主导的开源平台。

历史的时针可能会移到这里。

今天,方舟的舵

回顾历史,底层软件开源带来的行业红利主要是通过以下方式产生的:软件本身具有很大的应用价值,制造商和开发者可以在开源之后获得直接效用;反过来,大量的开发者重新思考、雕刻和优化软件,以形成一个开源社区。这个社区不仅是基础技术的不断优化,也是行业共识的自然建立。

Ark编译器的开源显然满足了这一逻辑的基础。

对于应用程序制造商、软件开发商和互联网公司来说,对ark编译器的理解和应用可以带来核心价值,即直接改善他们自己的应用体验。从长远来看,方舟编译器背后的技术思维和生态价值将对行业产生长期的推动作用。

这个开源Ark编译器框架代码可以完成Java静态编译,包括类层次分析、虚拟方法表和接口表的生成、本机函数的处理以及基于引用计数的内存管理,提供简单的RC插入函数。

这一阶段的开源框架主要满足编译器领域专家和爱好者的研究和学习需求。同时,华为将继续优化其他编译器组件,使源代码更适合开源社区的开发环境。同时,开发人员可以通过代码托管平台参与社区贡献,包括文档贡献和代码贡献。同时,他们还可以在这个平台上反馈相关的问题和需求。

5d738142d088e.png

从近到远,我们可以看到ark编译器对于整个软件行业有三个价值,从开源到建立相关的社区和贡献系统:

1.开发人员可以通过加强对Ark编译器的理解来增强他们的行业竞争力。

Ark编译器具有多语言联合优化、高效的内存恢复机制、灵活的编译优化方法和极低的学习成本等特点。如今,Ark编译器已经广泛渗透到工业合作的各种应用开发领域,成为改善用户体验的新技术撬棍。对于这些应用程序开发人员和移动应用程序开发行业来说,Ark开源本身是一个机会,可以通过提高理解来加强自己行业和Ark编译器之间的耦合。在同质且竞争激烈的移动互联网行业,这是差异化竞争力的另一个来源。

Ark编译器本身是一种新的编译机制,尤其具有跨语言编程的能力。这在很大程度上是对当前编程基础的优化和改进。业内人士都知道,尽管跨语言编译已经成为行业的主流,但仍有许多痛点。例如,JNI和反射机制有巨大的开销。Java代码和C/C代码互不可见;跨语言全程序优化不能实现等。

这个开源Ark编译器框架代码包括编译器中间表示和语言编译实现。开发人员可以构建基于开放源代码二进制文件的编译器工具链,并尝试编译Java程序。通过这种方式,开发人员可以通过熟悉Ark编译器的架构思想来提高他们在跨语言编程领域的业务能力和理解水平,并通过Ark的“反汇编和解决方案”来实现行业基础软件水平的共同进步。

3.参与方舟的生态建设,并在不断增长的开源环境中获得长期红利。

编译器是一个庞大的软件工程,需要建立生态并逐步完善。对于软件开发商、大学研究人员和终端制造商来说,方舟开源推广的开源社区可以说是中国移动开源社区的基础,也是寻求未来行业共识的良好平台。此时加入不仅可以在短期内增强企业竞争力,还可以通过长期的贡献在未来的社会中积累话语权。方舟编译器将在一个接一个开源的过程中建立一个托管平台,实现一个根据贡献大小决定话语权的机制,走向开放治理,最终形成一个社区生态。这是中国终端软件的一次全新尝试,无论是完成产业链还是前进,它都将持续刺激技术和社会红利。这些红利将在很长一段时间内释放给行业和开发者生态,尤其是早期参与者和积极贡献者。

像许多伟大的基础技术一样,方舟编译器将向所有聪明的大脑开放源代码。当开发商在这一刻拥抱方舟时,他们必须注意一件事:方舟将走向何方?

道路和距离

继移动时代之后,下一个科技产业时代将从何而来?我认为现在在这个问题上应该有一个初步的共识:5G改善了连通性;人工智能改变互动;物联网设备作为一种硬件形式,已经被编织到了下一个时代。

对于软件和移动行业来说,今天的关键问题是:我应该如何走这条路?

要知道,人工智能、5G、物联网的想象力是相辅相成的,但其中涉及的技术难度太大,而且在初始阶段严重缺乏技术共识。例如,AIoT的芯片、网络、应用、算法和未来的发展方向都充满了不确定性,甚至是今天矛盾的工业状态。

这条通向未来的道路如何才能真正打开?根据信息技术50年的历史,我们会发现开源和技术民主是决定行业底层技术共识的最佳方式。

5G融合人工智能的智能时代是中国及其开发者已经完全掌握的第一次技术产业革命,但这既是机遇也是考验。当我们需要开源生态和社区的长期红利时,我们必须首先建立生态和社区。未来的技术之门需要一把打开的钥匙,而开源社区和技术生态需要第一把土堆起来。

你从哪里开始?为什么不从方舟开始呢?

我们知道Ark编译器是鸿蒙操作系统的重要工具,它是物联网整个场景生态的底层操作系统,也是人工智能和5G集成到新硬件时代的关键接口。

如果我们将Ark的开源视为鸿蒙开源的长期实施和长期生态系统项目,我们会发现华为实际上是在新出现的Ark开源的基础上迈出了在中国开放面向未来的开源社区的第一步。

方舟的开源和改进是一个不间断的过程,一个系统化的项目,也是一个释放行业红利的长期轨道。接下来,方舟编译器将在2020年打开Java编译器工具链,以支持Java程序编译。方舟编译器将在2021年开放对JavaScript语言的支持,并可用于编译JS应用程序。

与此同时,鸿蒙操作系统的开源工作也将陆续开始。华为将继续将其软件技术能力贡献给社区中的行业,并与行业合作探索更好的软件技术来满足时代的需求。

沿着这条路,我们今天已经可以想象很多事情,比如基于AIoT逻辑的杀手级应用和明星公司的成长。例如,物联网产业已经获得了大量共识,并迅速提高了产业效率。例如,软件开发行业的总体效率得到了提高,更多的创造性思维和人才将聚集在软件领域。

未来依然漫长,但关键就在眼前。过去,当我们问为什么中国的软件产业总是一个跟随者而不是创造者时,答案其实很简单,因为没有人迈出第一步,没有人选择最艰难和最累人的工作去完成,也没有人达成共识和考虑开放新的资源。

现在,许多事情都变了。从方舟到开源,从开源到生态——鸿蒙已经开放,春天草长绿了。