科研视野

分享IDEA研究院的科研趋势观察与工作随笔

在不久前的第一届开放原子开源基金会 OpenHarmony 技术峰会上,IDEA 研究院基础软件中心讲席科学家张宏波受邀发表了题为《ReScript 语言成长道路上的启迪以及当下中国程序语言发展的机会》演讲。在分享中,张宏波介绍了 ReScript 语言的开发经验及程序语言设计启发,并结合云原生、开源等时代背景与 WebAssembly 等新兴技术,探讨了中国程序语言后发领先的可能机会。


 

(以下为部分演讲内容整理)
张宏波主题分享现场

程序语言的重要性

作为开发者,第一个需要接触的技术往往是 PHP、Python 或 Node.js 这类编程语言。因此,编程语言可以被视为整个开发者社区生态系统的切入点,但要培养完整健康的开发生态系统,编程语言发展需要其他支撑技术的配合,如编译器、构建系统、静态分析、安全检测工具,以及日常使用的代码编辑器、标准库和 IDE 等。

以编程语言为抓手,重视培养这类“根技术”人才,往往可以推动整个下游生态的良性发展。在这些底层技术中,编译器作为链接软硬件的关键,是如今可信计算平台中不可或缺的一环,安全稳定的编译器可以避免出现注入代码等安全漏洞。此外,程序语言的发展也需要结合当下国情,计算机性能的飞速增长对软件的体验提出了新的挑战。通过着力发展程序语言和工具链的协同设计,可以在不牺牲开发者体验的情况下实现软件系统的性能提升。

冰山下的“根技术”是编程语言发展的重要支撑

从过往经历来看,编程语言作为一个重要的系统工程,涉及到大型系统的开发,同时还会带动一批人才和产业的发展。要让编程语言真正地用于商业开发,还需要瞄准和解决用户的痛点。ReScript 的推出就是通过先进的类型系统来解决用户在使用 JavaScript 时,如何在海量的代码库中安全重构的问题。

ReScript 语言发展历史

市场上虽然已有各种各样的编程语言,但是真正能被用到商业开发的微乎其微。ReScript 语言是目前中国人开发的首个在国际范围内具有一定影响力的通用程序语言。其发展最早可追溯到 Lisp(为 AI 设计的函数式语言),其后也受到 ML、Caml 和 OCaml 等语言的影响。从函数式编程语言 ML 到更加注重工业强度的 OCaml,ReScript 在不断优化迭代中,发展为今天的语言。

中国程序语言当前的发展机会

现阶段,“根技术”对于国内产业升级越来越重要,中国作为全球基础软件行业的后发者,将面临不少挑战。

基础软件类比一个系统工程,投入成本大,但在发展程序语言的“经济学”中,更大的成本是培养出用户生态。切换一门编程语言,用户需要面临巨大的切换成本,因此想要吸引新用户加入,后发者需要带来新的用户价值,思考新语言能否带来足够的价值增量。

随着软件行业的不断发展,当前开发者对程序语言的预期,已不仅仅是语言规范和编译器,而是希望拥有一站式的服务体验,包括 IDE、构建系统、标准库等。整个系统研发过程的难度较之前的语言更大,需要总架构师拥有全局的视角,对设计师人员的知识储备有较高要求。

同时,语言设计如同一门艺术,要在复杂性、用户体验和用户学习曲线等多方面衡量取舍;在社区培养方面,好的语言需要面向世界,开发者如何和不同文化背景的人交流、合作、沟通?上述都将是国内开发人员需要应对的挑战。

与此同时,当下也蕴含程序语言发展的巨大机会,可围绕下述三点展开:

第一,更好的性能。传统的编程语言很少从全局优化的角度提升性能,工业界相关的工作很多也只是在底层 IR 上做链接时优化。一门全新的语言如果能够在架构上支持高层次的全局优化,会在性能方面有更好的表现。此外,编译性能和 IDE 响应时间也对开发体验有很大的影响,如何更好地支持并行和增量式编译,也是很多传统语言未曾考虑的。最后一点,如何通过语言和编译器的协同设计实现神经网络计算范式的加速,是业界比较热门的研究方向。

第二,新的平台。新平台必然需要打造自己的开发者工具链,全新的工具链能带来崭新机会。现在一个明显的趋势是开发上云,Google、Facebook 等国外互联网企业多年前就已实现了代码云端开发。结合云原生的趋势,研究者可以进一步思考如何更好在云端调试、如何保证云端 IDE 的体验等等问题。

第三,新的标准指令集。WebAssembly、RISC-V 等新一代指令集的出现,将是后发者发挥优势的机会。在此之上,自底向上地架构一门语言,能够更好地克服如传统语言编译到新指令集产生的语义不匹配等问题。

基于上述机遇,IDEA 研究院基础软件中心正在打造全新的云端开发工具链,力求以流畅的云端开发体验、大幅提升的代码质量和性能,以及产品跨平台、跨系统运行的能力,为开发者提供更好的智能开发体验。

Rescript 语言是一次具有”抛砖引玉”意义的尝试,说明了我们在程序语言工具链相关的技术储备已相对完善。相信在国家科技强国的政策支持下,我们携手行业优秀伙伴,未来将能吸引更多程序语言人才加入基础软件行业,共同创造出“立足中国、引领世界”的基础软件生态。

张宏波,IDEA 研究院基础软件中心讲席科学家,通用程序语言 ReScript 作者,程序语言 OCaml 前核心开发人员。现阶段研究方向为基于 WebAssembly,自底向上设计和开发新的通用程序语言以及一整套云原生开发工具链。本科毕业于清华大学电子系,在美国宾夕法尼亚大学读博期间受 Bloomberg 邀请,从事函数式语言编译器的开发工作。他主导的 ReScript 语言是目前中国人开发的首个在国际范围内具有一定影响力的通用程序语言。ReScript 官方文档已被翻译成英文、中文、韩语、葡萄牙语等多国语言版本。

观点|张宏波:ReScript语言成长启迪及中国程序语言发展机会

日期:2023-03-24
  • 分享:
探索国产语言后发领先的可行之道

在不久前的第一届开放原子开源基金会 OpenHarmony 技术峰会上,IDEA 研究院基础软件中心讲席科学家张宏波受邀发表了题为《ReScript 语言成长道路上的启迪以及当下中国程序语言发展的机会》演讲。在分享中,张宏波介绍了 ReScript 语言的开发经验及程序语言设计启发,并结合云原生、开源等时代背景与 WebAssembly 等新兴技术,探讨了中国程序语言后发领先的可能机会。


 

(以下为部分演讲内容整理)
张宏波主题分享现场

程序语言的重要性

作为开发者,第一个需要接触的技术往往是 PHP、Python 或 Node.js 这类编程语言。因此,编程语言可以被视为整个开发者社区生态系统的切入点,但要培养完整健康的开发生态系统,编程语言发展需要其他支撑技术的配合,如编译器、构建系统、静态分析、安全检测工具,以及日常使用的代码编辑器、标准库和 IDE 等。

以编程语言为抓手,重视培养这类“根技术”人才,往往可以推动整个下游生态的良性发展。在这些底层技术中,编译器作为链接软硬件的关键,是如今可信计算平台中不可或缺的一环,安全稳定的编译器可以避免出现注入代码等安全漏洞。此外,程序语言的发展也需要结合当下国情,计算机性能的飞速增长对软件的体验提出了新的挑战。通过着力发展程序语言和工具链的协同设计,可以在不牺牲开发者体验的情况下实现软件系统的性能提升。

冰山下的“根技术”是编程语言发展的重要支撑

从过往经历来看,编程语言作为一个重要的系统工程,涉及到大型系统的开发,同时还会带动一批人才和产业的发展。要让编程语言真正地用于商业开发,还需要瞄准和解决用户的痛点。ReScript 的推出就是通过先进的类型系统来解决用户在使用 JavaScript 时,如何在海量的代码库中安全重构的问题。

ReScript 语言发展历史

市场上虽然已有各种各样的编程语言,但是真正能被用到商业开发的微乎其微。ReScript 语言是目前中国人开发的首个在国际范围内具有一定影响力的通用程序语言。其发展最早可追溯到 Lisp(为 AI 设计的函数式语言),其后也受到 ML、Caml 和 OCaml 等语言的影响。从函数式编程语言 ML 到更加注重工业强度的 OCaml,ReScript 在不断优化迭代中,发展为今天的语言。

中国程序语言当前的发展机会

现阶段,“根技术”对于国内产业升级越来越重要,中国作为全球基础软件行业的后发者,将面临不少挑战。

基础软件类比一个系统工程,投入成本大,但在发展程序语言的“经济学”中,更大的成本是培养出用户生态。切换一门编程语言,用户需要面临巨大的切换成本,因此想要吸引新用户加入,后发者需要带来新的用户价值,思考新语言能否带来足够的价值增量。

随着软件行业的不断发展,当前开发者对程序语言的预期,已不仅仅是语言规范和编译器,而是希望拥有一站式的服务体验,包括 IDE、构建系统、标准库等。整个系统研发过程的难度较之前的语言更大,需要总架构师拥有全局的视角,对设计师人员的知识储备有较高要求。

同时,语言设计如同一门艺术,要在复杂性、用户体验和用户学习曲线等多方面衡量取舍;在社区培养方面,好的语言需要面向世界,开发者如何和不同文化背景的人交流、合作、沟通?上述都将是国内开发人员需要应对的挑战。

与此同时,当下也蕴含程序语言发展的巨大机会,可围绕下述三点展开:

第一,更好的性能。传统的编程语言很少从全局优化的角度提升性能,工业界相关的工作很多也只是在底层 IR 上做链接时优化。一门全新的语言如果能够在架构上支持高层次的全局优化,会在性能方面有更好的表现。此外,编译性能和 IDE 响应时间也对开发体验有很大的影响,如何更好地支持并行和增量式编译,也是很多传统语言未曾考虑的。最后一点,如何通过语言和编译器的协同设计实现神经网络计算范式的加速,是业界比较热门的研究方向。

第二,新的平台。新平台必然需要打造自己的开发者工具链,全新的工具链能带来崭新机会。现在一个明显的趋势是开发上云,Google、Facebook 等国外互联网企业多年前就已实现了代码云端开发。结合云原生的趋势,研究者可以进一步思考如何更好在云端调试、如何保证云端 IDE 的体验等等问题。

第三,新的标准指令集。WebAssembly、RISC-V 等新一代指令集的出现,将是后发者发挥优势的机会。在此之上,自底向上地架构一门语言,能够更好地克服如传统语言编译到新指令集产生的语义不匹配等问题。

基于上述机遇,IDEA 研究院基础软件中心正在打造全新的云端开发工具链,力求以流畅的云端开发体验、大幅提升的代码质量和性能,以及产品跨平台、跨系统运行的能力,为开发者提供更好的智能开发体验。

Rescript 语言是一次具有”抛砖引玉”意义的尝试,说明了我们在程序语言工具链相关的技术储备已相对完善。相信在国家科技强国的政策支持下,我们携手行业优秀伙伴,未来将能吸引更多程序语言人才加入基础软件行业,共同创造出“立足中国、引领世界”的基础软件生态。

张宏波,IDEA 研究院基础软件中心讲席科学家,通用程序语言 ReScript 作者,程序语言 OCaml 前核心开发人员。现阶段研究方向为基于 WebAssembly,自底向上设计和开发新的通用程序语言以及一整套云原生开发工具链。本科毕业于清华大学电子系,在美国宾夕法尼亚大学读博期间受 Bloomberg 邀请,从事函数式语言编译器的开发工作。他主导的 ReScript 语言是目前中国人开发的首个在国际范围内具有一定影响力的通用程序语言。ReScript 官方文档已被翻译成英文、中文、韩语、葡萄牙语等多国语言版本。