
100%自研的国产编程语言。
作者|赵健
2022年,已经在Meta工作5年的张宏波,正在考虑他的下一站去哪里。
张宏波是编程语言领域的专家,他是斩获2023 SIGPLAN软件大奖的OCaml语言的前核心开发人员,也是被Meta、谷歌、育碧、TinyMCE等多个公司商用的编程语言ReScript的作者,ReScript是首个由中国人主导的有一定国际影响力的通用编程语言。

张宏波,图片来自受访者
张宏波原本收到了深圳某大厂的邀请,加入其已经做了好几年的编程语言团队。大厂的待遇可能更高,但这个相对成熟的业务留给张宏波的舞台却更小。
张宏波心里一直有一个遗憾。虽然ReScript是张宏波一辈子都可以自豪的事情,但相较于微软的TypeScript或者谷歌的Dart,ReScript的影响力远没有达到它应该到达的高度,尽管ReScript的技术实力远超一些同行。
有一个从零开始的机会,可能做出一款完全自研的世界级编程语言,是张宏波长久的愿望,不过需要一个支持这个创新想法的舞台。
2022年的一个周末,张宏波与他的老师沈向洋在深圳叙旧时,这个想法获得了沈向洋的支持。他邀请张宏波加入IDEA研究院(全称“粤港澳大湾区数字经济研究院”)。IDEA研究院是沈向洋在2019年从微软全球执行副总裁的职位退休后,在深圳创立的。
最终,张宏波在2022年9月于IDEA研究院组建了基础软件中心,负责国产编程语言MoonBit的开发。
「甲子光年」独家获悉,4月29日,MoonBit宣布了一项重要更新——从今天开始将支持JavaScript。
JavaScript是世界上最流行的编程语言之一。MoonBit支持JavaScript,意味着MoonBit将从一款相对小众的编程语言进入更加大众化开发者的生态。
这样,距离张宏波心中做出一款世界级的编程语言的梦想又进了一步。
1.最丰富的经历与最艰难的创业
在知乎上有一个热门问题是:为什么中国出了这么多厉害的互联网公司,但没有自己设计过编程语言?
编程语言是基础软件的一类。基础软件与芯片、操作系统一起被称为“缺芯少魂”的卡脖子项目,创业难度可想而知。
对于这一问题,张宏波在不同的时期有一些不同的感受。
他告诉「甲子光年」:“我现在的看法是,根本原因在于国内还没有真正一家大公司,是因为软件技术的先进而形成技术壁垒并赚到钱。我们在硬件领域做的很好,比如华为、大疆,但在软件领域,大部分互联网公司更多是商业模式的创新而非技术的创新。既然在商业模式上赚到钱了,又为什么在软件技术上辛苦地做投入呢?”
2022年,当张宏波告诉别人自己要做一款国产的编程语言时,要么觉得他在吹牛,要么怀疑他在套壳,总之是没人相信。在很多人的固有印象中,编程语言这类基础软件只有微软、谷歌这种国外的大公司才会做成。
不过,沈向洋非常信任张宏波,给予了张宏波充分的资源支持。
一来是因为,张宏波在编程语言领域积累了十几年的经验,是编程语言工程方面最资深的专家。
张宏波他从大学开始就接触编程语言,本科毕设是在微软亚洲研究院做的动画编程语言,硕士毕设是基于OCaml的编程语言,毕业后加入了OCaml的团队成为其核心开发者。后来,张宏波又开发了ReScript,以及在Meta参与开发了Flow。
这些经历让张宏波积累了充足的工程化经验。他表示:“我们想正儿八经做一些真正有人用的系统,而不是单纯地追求学术发表,这是我们最大的不同。
二来,张宏波加入IDEA,完全是基于兴趣与梦想驱动。
张宏波有很多的职业选择,不少机会都能让他有很好的财务回报。他最终被IDEA开放和创新的平台吸引并选择加入。他希望把自己多年的开发和编程经验与MoonBit项目相结合,为之倾注全部心血。他认为,如果有机会在基础软件这个领域成为世界第一,那么这可能是他唯一一次的机会,之后可能再也没有精力和机遇去投入到这样的事情当中。
张宏波曾表示,MoonBit将是张宏波退休之前的最后一个项目。
2.编程语言层出不穷,MoonBit抓住了两个机会
编程语言种类繁多,层出不穷,每天可能都会有新的编程语言出现。其中,有大量用户基础的、最流行的编程语言就有几十种。行业内还需要一款新的MoonBit吗?
对此,张宏波告诉「甲子光年」,本质原因在于,层出不穷的新硬件产生新的需求,导致新的编程语言也层出不穷。比如Go语言的出现,就是为了满足多核并发的需求;英伟达开发自己的CUDA,也是为了更多地对GPU做编程。
MoonBit抓取的两个市场需求有两个,第一个就是生成式AI。
2022年张宏波加入IDEA不久之后,ChatGPT发布。张宏波有一次打开了Copilot,写某条指令的时候AI给自动补全,当时他就被震撼到了。张宏波判断,一定会有一个AI时代的编程语言出现。
第二个市场机会在于,MoonBit是为WebAssembly量身设计的一套编程语言。
WebAssembly是2017年由微软、谷歌联手推出的一个新的跨平台、跨操作系统的标准指令集。张宏波认为,WebAssembly代表了未来万物互联的一种解决方案。
但在该平台上,主流的开发语言仍然是一些对程序员门槛相对较高的底层编程语言,如C++和Rust。同时,一些应用层的语言,如Go语言,虽然在WebAssembly上运行,但其生成的代码体积巨大,无法充分发挥 WebAssembly平台的优势。
张宏波表示,MoonBit一开始就考虑如何适配WebAssembly,可能会对一些已有的编程语言形成降维打击的优势。
在适配WebAssembly之后,Moonbit还计划支持多种后端,包括JavaScript平台和JVM平台,甚至是针对操作系统开发的原生支持。
今天,MoonBit正式宣布支持JavaScript,意味着MoonBit向更主流的用户拓展迈出了重要一步。
张宏波告诉「甲子光年」:“MoonBit不仅是支持JavaScript,而且是支持JavaScript的编程语言中性能最好的一个。如果用户特别在乎性能,一定会优先考虑MoonBit。我相信MoonBit会在JavaScript生态中取得用武之地。”
3.不仅仅是一门编程语言,更是一个编程开发平台
在搭建团队初期,张宏波最大的担心是在国内招不到合适的人,需要从0开始培养。如果是这样,项目的进度会很受影响。
但是事情的进展比想象的要顺利很多。国内的人才储备虽然密度没有那么大,但是由于基数大,还是有很多非常出色的年轻人,张宏波的工作超乎想象的顺利,在短短十个月左右就几乎搭起了一个工业级别的编程语言的alpha版本。张宏波表示,即使强如谷歌,微软,进度也未必会比他们快。
在张宏波的眼里,MoonBit不仅仅是一门编程语言,他还有更大的追求。
张宏波告诉「甲子光年」:“我们其实不是想跟Rust竞争,我们做的事情远远比一款编程语言要多,是想自己做一个完整的编程开发平台,包括 IDE、编译器、构建系统、包管理器等。所有和开发者相关的工具我们都做,从编程、调试到部署,而且高度整合在MoonBit这个平台上面。”
这在编程语言行业里并非一种常态。现在很多流行的编程语言,比如Rust,2006年诞生时只是个人的兴趣爱好项目,花了很多年以后才慢慢完善开发生态。因此,这些编程语言项目往往分工明确,Rust的核心开发人员只做编译器,而它的IDE是一些用户“为爱发电”自己做的。
张宏波的思考是,如果只做编译器,或者只做一小部分其他工作,是很难形成商业化闭环的。“我很少听说那个公司是靠卖编译器赚钱的。”张宏波说。
张宏波一开始就考虑到了商业化。早期阶段团队可以是兴趣驱动,但长期来看必须保证一定的成长空间。张宏波认为,如果这个项目能坚持十年,一定能做成世界一流项目;但要想坚持十年,必须要有自我造血能力,否则会有很大的不确定性。
对于MoonBit的未来发展规划,张宏波透露团队将集中在三个核心领域:教育、AI 和云/边缘计算,成为面向这些领域的应用开发平台。
短期来看,MoonBit在今年4月开源了标准库,7月1日之后会有一个Beta预览版,暑假期间会做大规模的推广,预计在2025年会发布1.0版本,也就是可以商用的版本。
长期来看,张宏波希望做成一个集开发、调试、部署于一体的应用开发平台,打造一个像微软一样的开发者工具平台。
(封面图来源:MoonBit)