MoonBit与其负责人张宏波轶事
2023-09-23 09:44:01 阿炯

在大家的印象当中,编程语言主要是欧美人发明的,就连日本和巴西也发明了Ruby和Lua,而中国在编程语言上没什么贡献,很多人不知道的是 ,中国人也参与与发明了两个非常有影响力的语言,更厉害的是,这两门语言主要是由一个人完成的,这个人就是张宏波。

1、进入编程语言领域

张宏波从小就是“别人家的孩子”,小学以全校第一毕业,初中以市第一毕业,高考“没考好”失利的情况下调剂到清华大学电气工程及自动化系。为了追求更适合的自己方向,大一结束时以全系第三的名次转到清华电子系,电子系高手如云,第一年还不太适应拿了20来名,不过大三专注了一年,又回到系里第一名了。

张宏波在大一大二时就用C和C++写过不少程序,用编程实现了很多想法,但是他也发现,用这些语言编程一点儿也不快乐,很容易出错,时间都花在了调试上面。大三时张宏波进入微软亚洲研究院(MSRA)实习,他在那里接触到了函数式编程语言 F#,并由此被编程语言的理论之美所吸引。

在这里,张宏波还有幸遇到了他的伯乐——他的博士导师、原微软全球执行副总裁沈向洋,并通过沈向洋的推荐张宏波前往美国读博。

2013年,张宏波在宾大读博,出于兴趣,他深度参与了 OCaml 语言开源项目,成为 OCaml 的核心开发者,值得一提的是去年 OCaml 获得了 ACM 系统软件奖(计算机世界级大奖之一)。

当时彭博( Bloomberg ,全球最大的财经资讯公司)收购了一家法国金融衍生品公司的衍生品定价软件,该软件恰好是用 OCaml 编写的,因此急需一个擅长 OCaml 编程语言和编译器的人,于是彼时身为 OCaml 核心开发人员的张宏波,在读博期间就被 Bloomberg 邀请以实习生的身份加入。后因其表现出色,Bloomberg 向张宏波提供了一个待遇可观的 Offer,他也就此成为了其一名正式员工,从事函数式语言编译器的开发工作。

当时这个金融软件的界面主要是用JavaScript编写的,成千上万行的JavaScript代码读起来让人非常崩溃,张宏波开始思考一个问题:是否有一种更稳健且易于维护的编程语言,可以用来编写 UI 的前端逻辑?

他尝试了用了6-7周的业余时间开发了一个编译器,将OCaml编译成JavaScript。这个叫BuckleScript的项目非常成功,以至于老板让他专职开发,最后发展成了具有全球影响力的编程语言:ReScript。

在社区和用户的帮助下,源自学术界的 ReScript,如今真的成功打进了工业界。其商业案例遍布世界:不仅游戏公司 Ubisoft、文本编辑器 TinyMCE 等大型公司将 ReScript 应用至其项目上,韩国农业独角兽Greenlabs、为欧洲公共交通提供移动解决方案的公司(cca.io)都在用 ReScript,甚至印度最大的物流市场(Porter)应用 ReScript 也已经超过两年了。

Meta(彼时的Facebook)找到他,说已经在Meta Messenger项目中使用了ReScript,希望他能继续这项工作。因此他破例受聘,成为Meta当时唯一一位常驻国内的软件工程师,负责维护 ReScript 并参与编程语言 Flow 的开发工作。

虽然 ReScript 已经取得了令人欣喜的成绩,但对于 ReScript ,它是有很深的遗憾的——相较于微软的 TypeScript 或者谷歌的 Dart,ReScript 的影响力远没有达到它应该到达的高度,但这门语言的技术实力比很多编程语言都要好。“这里面有很多原因,如果让我重新来一次,我相信有机会做成一个现象级的编程语言。”

怀揣着理想与遗憾,张宏波在深圳遇到了以前的导师、微软原全球执行副总裁、后来的 IDEA 研究院创院理事长、美国国家工程院外籍院士沈向洋,得到了他的大力支持。这几年国家大力扶持基础软件的发展,可谓天时,地利,人和。在这样的背景下,他选择离开工作了 5 年的 Meta,加入了 IDEA 研究院,并从 0 到 1 快速搭建起一个非常年轻的团队,继续开展编程语言研究。

2、MoonBit的诞生

编程语言历经几十年的发展,从结构化编程到面向对象,从桌面到互联网,从大型机到PC,从单机到分布式......随着市场需求的迅速变化,不断新的编程语言异军突起,也有大量编程语言销声匿迹。

在云计算、边缘计算、AI等新兴行业快速发展的今天,市场也期待一个全新的编程语言,它在运行速度、编译速度、代码体积等核心指标上要更有优势,更适合这些快速发展的领域。

张宏波在编程语言上也积累了非常有价值的经验:

1、在负责 ReScript  全套供应链的工作中,他清楚编译构建系统和 IDE 响应性的协同效应,以及它们之间如何有效配合的必要性。如果从一开始就将这些因素纳入考虑,能够更好地规避潜在的问题,提升开发效率。

2、“ReScript 让我体会到了快速编译的重要性。编译速度远超同类工具的性能,如果只是 10%,20% 的提升并不能引起用户很强烈的体验,但如果是提升 10 倍,就变成一个显著的速度的优势,也可以是吸引用户的一大卖点,就像 Go 语言之所以受欢迎部分原因在于其相比 C++ 的快速编译一样,是极其吸引人的。”

3、在Meta从事Flow开发时,张宏波接触到了超大型代码库, 如何在巨大的代码库中保持 IDE 的实时响应,这是个巨大的挑战,所以新语言应该让IDE 快速响应、让静态分析工具能够迅速理解代码。

4、OCaml最初考虑学术受众,学习曲线陡峭,工业化应用有一定瓶颈,新的编程语言一定得得到工业界的支持。

5、在从0到1主导了编译器构建、系统语言互操作、标准库设计、IDE搭建等工作后,张宏波发现自己拥有了全新的视野。“最开始我只是懂程序语言领域知识,但没有全局视角,不知道怎么布局、怎么相互协调。”

6、大模型时代重新塑造了开发者的工作方式,同时也降低了学习新语言的门槛,开发者将更专注于创意和设计,代码的实现和优化将由编程工具完成。这一转变推动编程工具从简单的代码生成器进化为复杂问题解决平台。张宏波意识到了这个机遇与挑战并存时代将重塑软件开发生态。

借鉴了核心开发团队过去十几年在 OCaml, BuckleScript, ReasonML, ReScript, Flow等程序语言及其工具开发上的经验,张宏波带领团队开启新的征程。

2022 年 10 月, MoonBit(月兔)这门完全由国人自主研发的编程语言诞生!

3、技术快速发展,视野走向国际

1. 技术优势

MoonBit(月兔)语言专为WebAssembly设计,同时提供JavaScript,Native等多种后端,支持函数式和面向对象等多种编程范式,实用的类型系统,面向数据的语言设计,让任何背景的开发者迅速上手。

MoonBit不仅是一门编程语言,更是一个开发平台!它涵盖了通用程序语言设计、编译器、构建系统、IDE、部署工具等,在语言设计、编译器和构建系统上实现高度的垂直整合,为用户提供更佳的开发体验和性能。


它旨在在整个栈中都快速,包括开发性能和运行时性能。

MoonBit 是为多级中间表示(IR)上的全程序优化而设计的,这种方法改善了内存布局,以最小化缓存未命中,并提供了数据和控制流分析的优越环境。

快速的构建性能,特别是 IDE 功能,对于开发者体验至关重要。与 ReScript 和 Rust 不同,MoonBit 允许函数级并行语义分析。由于它在这个粒度上的增量重分析,MoonBit 能够处理庞大的单仓库,并提供毫秒级的响应时间,显著提高 IDE 的可扩展性。


MoonBit 专为有效的死代码消除而设计。它省略了妨碍这种分析的语言特性,且有一个结构化的标准库,便于死代码的移除。通过全程序优化,MoonBit 大幅减少了最终代码的大小,提高了安全性并减少了攻击漏洞。这也确保了在 serverless 计算环境中的快速启动。


MoonBit这种闪电般的编译速度、卓越的运行性能,以及安全紧凑的代码,让MoonBit非常合适云计算和边缘计算的场景。和一般的IDE调用大模型生成代码不同,在 MoonBit 设计之初,张宏波就考虑到了与大模型的深度融合和互动。


MoonBit 通过局部采样和全局采样技术,已经实现了对智能代码生成的调整和修正,这一策略既确保了 AI 生成代码的实时调整以符合语法规范,也进一步验证了代码的语义正确性。

随着大型语言模型(LLM)生成新的token,MoonBit采样器将从局部和全局收集并利用信息,以确保每个生成的token不仅在语法上正确,而且没有明显的类型错误。这种方法提供了更可靠、更准确的代码生成,减少了后续调试和错误纠正的需要。

2024年8月MoonBit Beta 预览版正式推出,比大部分主流语言更早推出现代化泛型、精准错误处理和高效迭代器等重要特性,此举标志着 MoonBit 生态进入全新阶段,为用户提供更稳定、流畅的创新操作体验。

2. 国际声音

值得一提的是,MoonBit 不仅在国内备受关注,在海外也颇受欢迎, 发布之初 MoonBit 就登上热门科技资讯聚合网站 Hacker News,之后又受到知名媒体 The New Stack 的多次报道。后续还在日本知名开发者社区 Zenn 爆火。并获得 JavaScript 标准委员会联席主席 Rob Palmer 、 Vue 框架作者尤雨溪等知名技术大咖的点赞。

4、编程创新挑战赛

为了更好地培养编程语言这一基础软件领域的后备人才,MoonBit 于2024年10月发起了面向全球的编程创新挑战赛。本赛事由河套深港科技创新合作区深圳园区发展署作为指导单位,IDEA 研究院作为主办单位,腾讯云、深港科创、阿里云天池和深圳市福田区福保街道办事处作为协办单位,并邀请到粤港澳大湾区数字经济研究院创院理事长沈向洋,中国科学院院士、中国科学院软件研究所学术委员会主任林惠民,中国科学院软件研究所所长赵琛,香港科技大学(广州)创校校长、IEEE终身会士、香港工程科学院院士倪明选教授担任名誉评委。

本次大赛奖金池达 12 万之多,并给参赛者提供企业研学和实习直通车等奖励,大赛分为「程序语言设计与实现」赛道和「游戏开发」赛道,期待选手可以使用 MoonBit 进行奇思妙想和探索硬核的编程语言领域。

在赛程上还设置线上课程给到参赛选手,初赛脱颖而出的队伍将被邀请到决赛现场,与大咖面对面深度交流。推荐感兴趣的开发者,特别是大学生开发者报名参赛。

5、未来之路

MoonBit 具备成为现象级语言的巨大潜力。从开发者数量来看,中国是目前全球程序员最多的国家,这意味着我们拥有一个庞大的开发者用户基数。然而,几乎所有的基础软件工具都是由国外开发或主要引导的。在编程语言方面,流行的社区主要集中在欧洲,如英国的 GHC、法国的 INRIA(主导 OCaml、Coq)和瑞士的 EPFL(拥有 Scala)。这使得国内在基础软件领域存在巨大的市场空白和高度的稀缺性,形成了一个蓝海市场。

拥有自己的编程语言对一个国家具有重要的战略意义,尽管中国在学术论文发表方面已居世界前列,但在基础软件领域仍处于“大而不强”的状态,主要原因之一是缺乏自主开发平台。大部分的期刊和成果仍在国外平台发表。近年来,虽然取得了显著进步,但拥有自己的开发者平台仍迫在眉睫。国家层面近年来非常关注基础软件工作的开展,明确指出要健全和强化基础软件等重点产业链的发展体制。

在当前良好的政策环境和市场条件下,MoonBit 提供端到端解决方案的产品,即使只有 10% 的市场渗透率,也可以获得百万级的用户基础,这为商业化提供了坚实的基础。MoonBit 从一开始就定下了高远的视野,我们不仅仅是为了填补国内基础软件工具的空白,还希望成为一门世界一流的编程语言。我们需要一个优秀的开发者平台来弥补目前基础软件工具的缺失。MoonBit 很有可能在基础软件领域实现自立自强,推动中国在这一领域的快速发展并取得国际领先地位。

这个世界是否还需要一门新的编程语言?答案是:是。

编程语言的发展经历了60年代时,结构化编程的兴起。到70年代,则是面向对象编程与C语言。90年代是脚本语言与互联网。而00年代,是语言的统一与多样性。到了10年代,是现代语言与大数据。编程语言在不断进步,同时也有大量的编程语言渐渐销声匿迹。

大模型时代浩浩荡荡的浪潮卷席了万事万物。编程语言作为计算机核心组件、且是软件开发者创造技术世界最重要的工具,自然被顶上风口浪尖。整个技术行业都对编程语言提出了更高的要求。

在大模型时代,工具重塑了开发者的工作方式,同时也降低了学习新语言的门槛。开发者将更专注于创意和设计,代码的实现和优化则由编程工具完成。这一转变推动编程工具从简单的代码生成器进化为复杂问题解决平台。

MoonBit AI 云原生开发者平台——MoonBit 编程语言及工具链,就在这个机遇与挑战并存的时代应运而生。MoonBit 的目标,是重塑软件开发生态。

当然,大家都知道,MoonBit AI 云原生开发者平台是一个“道阻且长,行则将至”的系统工程。MoonBit 正在马不停蹄地扩大 MoonBit 的社区力量、培养社区人才。两年的时间里,MoonBit 工具链已有几百名社区贡献者和近万人的全球的用户,增长速度遥遥领先。欢迎大家加入MoonBit社区,一起努力,让MoonBit成为世界一流的编程语言!


CSDN对张宏波的采访录

受访者 | 张宏波,IDEA 研究院基础软件中心负责人、MoonBit 团队负责人
作者 | 郑丽媛
出品 | CSDN(ID:CSDNnews)

自 1945 年第一部电子计算机投入使用算起,人类进入信息时代已有 70 余年,而编程语言作为非常重要的必备基础设施,也在不断演变发展:从最初的机器语言,到后来的汇编语言,再到如今的高级语言——换言之,当今信息时代飞速发展的背后,离不开编程语言。

曾有人试问:既然如此重要,为何中国没能开发出一门优秀的编程语言?但其得到的回答,却多是消极否定。

国产编程语言的难点到底在哪里,是信念、投入、资金还是人才?我们又该如何打破国产编程语言发展的僵局?为了解答这些问题,2023年9月 CSDN 专访了 IDEA 研究院基础软件中心负责人张宏波。

他不仅是程序语言 OCaml 的前核心开发人员,更是国内首位有国际影响力的程序语言 ReScript 作者,他最近带队开发的 100% 自主研发的编程语言 MoonBit,更是在业内引起了不小的关注——不仅有著名前端框架工具 Vue.js 作者尤雨溪、WebAssembly 生态知名公司 Wasmedge 在试用后转发公告,全球诸多技术爱好者也被 MoonBit 的编译速度所惊艳,并对其抱有高度期待。


那么接下来,就让我们走近张宏波的程序人生,希望通过他所分享的编程语言开发之路,能为正在开发国产编程语言的开发者们带来裨益,助力国产编程语言“破局”。

1、转入清华电子系,对编程语言萌生兴趣

如果以学习成绩做参考的话,张宏波或许从小就是家长口中“别人家的孩子”:小学是校第一毕业,初中是市第一毕业,在高考“没发挥好”的情况下,还被调剂到了清华大学的电气工程及自动化系(本来报的是数理基科专业)。但电气工程及自动化并非张宏波的兴趣所在,于是刚上大学他便决心要转专业,并在咨询了学长建议后,将电子系设为目标:大一结束时,张宏波凭借全系第三的成绩,如愿转入了电子系——甚至,那一年还是清华大学“姚班”的第一届。

忆及大二初进清华电子系的场景,张宏波感慨“确实高手如云”,他的成绩排名也掉到了全系 20 名左右。好在经过了一年的适应和专注后,他的专业成绩在大三又回到了全系第一,并获得了国家最高奖学金。

“现在回想起来,这些成绩只能作茶余饭后的谈资。人生最大的难处是开卷的,找到自己的方向并且坚持下去才是最重要的。”正如张宏波所说,大三这一年对他而言不仅是学业顺利,更是他对编程语言萌生兴趣的关键节点。事实上,早在大一大二时他就开始接触 C/C++ 编程了,课余时间也阅读了许多编程书籍,还用 OpenCV 做了一些东西。虽然通过编程能快速实现想法,但张宏波坦言:当时的他认为编程本身并不快乐,因为调试的时间占比太多了,很少能一次编译通过。

直到大三,成绩优异的张宏波进入微软亚洲研究院(MSRA)实习,在那里接触到了函数式编程语言 F#,并由此被编程语言的理论之美所吸引:“我发现,使用 F# 编写程序基本上可以一次性完成,几乎不需要经过调试,即使是构建复杂的系统也很快,这使得编程本身变得快乐起来。”

2、读博期间,成为 OCaml 核心开发人员


在清华大学和微软亚洲研究院(MSRA)的联合培养项目中,张宏波有幸遇到了他的伯乐——他的博士导师、IDEA 研究院创院理事长、原微软全球执行副总裁沈向洋(Harry Shum):“我觉得人生之中,除了努力外,如果能遇到自己的伯乐是很幸运且可贵的一个事情。对我而言,Harry 就是那个可贵的伯乐。”

读博期间的张宏波接触到了程序语言研究领域,并被程序语言的优美所打动,故而想要继续深造下去,便向 Harry 表达了这个愿望。得知张宏波想法后的 Harry,不仅十分支持他,还帮他引荐了多位资深专家和高等院校的系主任,包括 Simon Jones(Haskell 语言主要贡献者)和 Jeannette M Wing(卡内基-梅隆大学计算机系主任,后担任哥伦比亚大学常务副校长)。

正是在 Harry 的推荐和邀请下,张宏波获得了前往美国宾夕法尼亚大学计算机系读博的机会。随后他出于兴趣,还深度参与 OCaml 语言开源项目,并成为了 OCaml 的核心开发人员。

幸运的事情接踵而来。当时 Bloomberg 收购了一家法国金融衍生品公司的衍生品定价软件,该软件恰好是用 OCaml 编写的,因此急需一个擅长该编程语言和编译器的人——于是,彼时身为 OCaml 核心开发人员的张宏波,在读博期间就被 Bloomberg 邀请以实习生的身份加入。后因其表现出色,Bloomberg 向张宏波提供了一个待遇可观的 Offer,他也就此成为了 Bloomberg 的一名正式员工,从事函数式语言编译器的开发工作。

3、“不务正业”开发的 ReScript,成功打入了工业界

或许在外界看来 Bloomberg 只是一个媒体平台,但事实并非如此。其主要盈利模式是销售 Bloomberg 终端软件,而软件的用户界面是用 JavaScript 渲染的。2014 年在 Bloomberg 工作的张宏波,不仅要面对上千万行的 JavaScript 代码,自己也要天天写 JavaScript,再加上当时的 JavaScript 远不如现在这样便利,维护难度颇高,不禁令他深感头疼:“我开始思考,是否有一种更稳健且易于维护的编程语言,可以用来编写 UI 的前端逻辑?”

在这种想法的推动下,张宏波开始“不务正业”:利用周末或下班后的业余时间,他大概花了 6、7 个周末做了一个 Demo,也是一个 Playground(左边是 OCaml,右边是 JavaScript),方便他一边写静态语言代码,一边实时地编译到 JavaScript。幸运的是,这个 Hobby Project 得到了 Bloomberg 老板的认可,认为其开发体验很好,并允许张宏波对此进行全职开发——而这个 Hobby Project,便是 ReScript 的雏形。可能谁也没想到,就是这样一个原始设计动机在于为自己打造个更顺手的工具的编程语言 ReScript,后来会成为首个由国人主创、具有全球影响力的通用编程语言。

在最初设计 ReScript 时,张宏波曾想过一个问题:“为什么明明 ML(meta-language)的作者拿了图灵奖,这个学院派语言最终却没有在工业界拓展开来?”思来想去,他认为关键在于执行力:学术界没有很好的执行力,无法将想法很好地带入工业界。

为了弥补这部分空缺,将学术界里一些更好的想法带到工业界来,ReScript 起源于学术界,包括最早期的 ML 和后来的 OCaml,是一门基于 OCaml 上衍生的一个 ML(meta-language)系的方言,能帮开发者去设计更好的抽象和支持大规模的程序开发。

在社区的帮助和用户的建议下,ReScript 不断优化并完善,渐渐地张宏波的期待成真了:源自学术界的 ReScript,如今真的成功打进了工业界。不仅游戏公司 Ubisoft、文本编辑器 Tinymce 等大型公司将 ReScript 应用至他们的项目上,韩国农业科技型公司 Greenlabs、欧洲的一些跨领域公司、为国家公共交通提供移动解决方案的公司(cca.io)都在用 ReScript,甚至印度最大的物流市场(Porter)应用 ReScript 也已经超过两年了。

更值得一提的是,由于 Meta(原 Facebook)在 Messager 项目中也使用了 ReScript,因此在 2017 年张宏波决定回国时,Meta 主动抛出了橄榄枝,并破例允许他成为了 Meta 当时唯一一位常驻国内的软件工程师。而对于这些成绩,张宏波强调了一点:从 POC 到 Product 之间的鸿沟还是很大的。

“一个语言如果只是从 Toy Language(玩具语言)这个层面去出发,可能只需要耗费 6 个周末的时间。但如果要将其真正落地到工业场景,使其成为能用且好用的工具,是需要经过很多个环节的考验的,是一个可以做一辈子的事情。”

4、100%完全自主研发的MoonBit!

在 Meta 度过 5 年时光后,2022 年张宏波加入了沈向洋院士创办的 IDEA 研究院,带队研发使用 WebAssembly(以下简称 Wasm)的云计算与边缘计算开发平台。

尽管 Wasm 是一个 2017 年才推出的新一代标准指令集,但其潜在优势和开发前景不可小觑。不过目前在 Wasm 平台上,主流的开发语言仍然是一些对程序员门槛要求相对较高的底层编程语言,如 C++ 和 Rust;而应用层的 Go 语言,虽然在 Wasm 上运行,但它生成的代码体积巨大。基于这些痛点问题,张宏波及其团队开始思考要如何充分发挥 Wasm 的优势:如果能有一个平台,能解决前面的问题,那不仅可以形成后发者优势,也能促进整个生态的发展!

于是乎,一款 100% 完全自主研发的编程语言 MoonBit(月兔)应运而生。

得益于开发 ReScript 的经验加持,在张宏波的主导下,其团队开发 MoonBit 仅用了不到 11 个月的时间,甚至在 8、9 个月的时候就推出了 IDE、构建系统和编译器。

MoonBit 在语言设计上受到 ReScript 的启发,主要体现在以下三个方面:

(1)将IDE优先级提高,早期就明确了 IDE、构建系统与编译器的同步协作模式,帮助团队拥有全局视野(如果在语言的后期阶段才进行这些方面的构想,将大幅增加开发成本)。其中,与许多知名语言如早期的 Rust 和 Flow/Hack 一样,MoonBit 的核心编译器也是基于 OCaml 进行开发的,而张宏波正是 OCaml 的前核心开发人员,因此团队经验较为丰富。

(2)在构建系统上,之前开发 ReScript 时张宏波也积累了宝贵经验,即为了最好的性能,将编译器与构建系统高度整合。在这个基础上,MoonBit 在速度与性能上表现更佳。

(3)在语言生态上,MoonBit 也会追求实现商业化的可持续发展。正如上文所说,ReScript 在商业方面有很多国际化的用户与商业需求,恰好可用作 MoonBit 借鉴的宝贵经验。张宏波表示:“商业化模式将为我们提供稳定的资金来源,从而构建健康的语言生态闭环。我相信好的东西应该得到广泛应用,而商业化将为 MoonBit 带来长期稳定的发展。”

凭借这些优势,尽管目前 Moonbit 仍在 Pre-Alpha 阶段,但它已在 IT 工业界引发热议,还登上了 Hacker News 的头版头条。此外截至目前,MoonBit 的代码库也已累计进行了 6000 次提交(commit),这绝对是一个相当庞大的工作量。

对于 MoonBit 的未来发展规划和长期愿景,张宏波透露团队将集中在三个核心领域:教育、AI 和云/边缘计算。

教育领域

在教育领域,相对于 Python 和 Java,拥有简洁语法及强大类型系统的 MoonBit,可能更适合作为编程教学语言:简洁的语法让学生容易入门,而 MoonBit 生态配套工具,比如在线 IDE 可以让学生无需搭建调试本地开发环境即可直接编写和调试程序;类型系统可以让学生在学习程序语言的过程中,从更高的维度思考怎么让程序更稳定以及更容易长期维护。

“教育也是基础软件生态很重要的一部分,培养底层软件人才将有助于推动下游生态系统的建设,并为企业输送优质人才,实现互惠双赢。”

AI 领域

在 AI 领域,随着大型语言模型的兴起,MoonBit 具备与时俱进的优势,可以更好地结合当下趋势。据了解,开发团队正在积极推进将开源大语言模型(LLM)整合到 MoonBit 中的计划,目前已经实现了编译器与 AI 的实时交互,即充分利用开源大模型,通过特定领域的 LLM 来辅助用户生成高效的代码,未来也将继续通过交互式静态分析,进一步提高生成代码的准确性。

“我想强调的是,MoonBit 不仅是一个语言,也是一个端到端的解决方案。相信我们在 AI 垂直领域打造独有的语言生态,可以大幅提升程序员的开发效率。”

云/边缘计算领域

在云/边缘计算领域,MoonBit 的发展主要取决于 Wasm 的生态系统发展,而它的潜能还有很多可以释放的地方。例如,随着智能化的快速发展,对于车载驾驶领域而言,传统分布式电子架构已经无法满足智能化变革需求,因此一些汽车厂商已经开始将视野扩展到 Wasm 上了,积极寻求新一代电子架构来搭建底层硬件集中式平台,并通过软件 OTA 的方式来实现功能的快速迭代——此时,Wasm 架构上的安全、高性能、体积轻巧,使其成为边缘计算领域的首要选择。

在云计算领域,随着 AWS Lambda 等 Serverless 技术的广泛流行,业界也在寻找下一个比当代 Serverless 技术更安全,启动速度更快的方案。对此,张宏波认为:“Wasm 的超快冷启动速度以及安全性,也会是这个领域非常有力的竞争者。”

当 MoonBit 登上 Hacker News 热榜时,张宏波曾说,MoonBit 将是他退休前的最后一个项目——这句话的背后,无疑承载着他对 MoonBit 的极大投入和承诺:对他而言,MoonBit 不仅仅是一个项目,更是一项他将全身心投入的事业、一个他将长期奋斗的愿景。

我也希望把多年的开发和编程经验与 MoonBit 项目相结合,倾注全部心血。我认为,如果我们有机会在基础软件这个领域成为世界第一,那么这可能是我唯一一次的机会,之后可能再也没有精力和机遇去投入到这样的事情当中。

5、国产基础软件,一定能闯出来!


CSDN:圈内有不少人在坚持开发国产编程语言,但其中也有不少声音说“中国并非必须要有自己的编程语言”,对于这个问题您的看法是?

张宏波:这个观点是值得商榷的,因为编程语言它是基础软件,如果你要做一些底层上的创新,你是绕不开编程语言的。对于一个国家,拥有自己的编程语言是一项重要的战略性举措。尽管中国在学术论文发表方面已经居于世界最前列,但在大部分科技领域尤其是基础软件领域中依然处于大而不强的状态,其中很大的难点在于国内缺乏自己的开发平台。

在基础软件领域,特别是在程序语言方面也是类似的情况,业界比较流行的编程语言的社区主要集中在欧洲,比如 Haskell 社区基本都围绕英国的 GHC 中,法国和瑞士的 PL 在业界公认一流,也是因为像法国 INRIA 这样研究机构主导了 OCaml、Coq 的开发,瑞士的 EPFL 拥有自己的研究平台 Scala。

这让我想到《加强基础研究 实现高水平科技自立自强》中提到的一段话:
我们国家要建设基础研究高水平支撑平台。在过去很长一段时间,我国基础研究存在题目从国外学术期刊上找、仪器设备从国外进口、取得成果后再花钱到国外期刊和平台上发表的“两头在外”问题。近年来,我国着力打造世界一流科技期刊、建成一批大国重器,基础研究支撑平台建设取得长足进步,但是从根本上破解“两头在外”问题还任重道远。

拿 Matlab 做例子,国内的研究人员可能会发一些数值算法或者机器学习很好的论文,论文的成果可能最终转换成 Matlab 的工具箱的某个函数而不能沉淀在自己的生态里面,最后可能给其他国家的平台做嫁衣。

如果我们有自己的编程语言,我们可以进行更多的研究,发表关于静态分析等方面的论文,然后将这些研究成果应用在自己的平台上,最终实现整个生态系统的繁荣。这将使研究成果真正落地并造福于中国。

开发 MoonBit 平台是一个“道阻且长,行则将至”的过程,开发编程语言工具链以及培养自己的生态系统需要投入大量的时间和精力,但如果能让国内的基础软件学者和工业界开发者能够在自己的平台上沉淀积累,这将在工程和学术的角度都具有重要意义。

CSDN:多数国产编程语言的使用者并不多,因此其生态难以发展,导致使用体验不佳从而更“劝退”用户,这也是当前国产编程语言发展的主要难点之一。您认为要如何打破这一僵局,有哪些阻碍因素需要克服?

张宏波:这个问题确实值得深入探讨,因为不仅是国产编程语言,任何一门编程语言想要成为一个现象级的编程语言都非常困难,不比做一个独角兽,或者做一个大公司要容易。一个现象级的语言要天时、地利、人和,很多因素缺一不可。

天时:国家在政策上很支持基础软件的发展,基础软件的发展已不单单是一个行业的发展,更关乎着国家产业结构转型。我觉得基础软件是支撑信息产业升级的一个“根技术”,国家的重视以及政策利好都有利于基础软件产业的发展。

地利:我们所处的地域是深圳,这是一个充满活力的城市。同时我们所在的 IDEA 研究院背靠粤港澳大湾区(河套地区),最近国务院最新宣发的文件中提到了要重点发展河套地区,鼓励企业在科技创新领域发展,这也为创新科技企业提供了很好的平台。

人和:优秀人才的加入也给 MoonBit 提供了“新鲜血液”,我认为未来是属于年轻人的,重视人才培养很重要。“授人以鱼不如授人以渔”这个道理在这里是很适用的,科研和编程教育是 MoonBit 一直关注的场景。

我认为中国编程语言的出发点应该是走向世界,属于世界的,我们有很多机会去把这个语言做成,我们应该有信心和耐心。总之,只要有好的人才、对的方向、加以耐心和信心,国产基础软件一定能闯出来——关键在于敢创新,而非一直追随。我们要乐观地看待这个问题。

关于Moonbit

MoonBit是一个用于云计算和边缘计算的WebAssembly端到端编程语言工具链。系《盘点由中国人开发的编程语言》中的一种。

主要优势
生成与现有解决方案相比显著更小的WASM文件。
更高的运行时性能。
先进的编译时性能。
简单但实用的数据导向语言设计。

表达式包括:
值字面量(例如布尔值、数字、字符、字符串、数组、元组、结构体)
算术、逻辑或比较操作
访问数组元素(例如a[0])或结构体字段(例如r.x)或元组组成部分(例如t.0)
变量和(大写字母开头的)枚举构造器
匿名局部函数定义
match和if表达式

语句包括:
命名局部函数定义
局部变量绑定
赋值
While循环和相关的控制流结构(break和continue)
return语句
返回类型为unit的任何表达式

函数接受参数并产生结果。 在MoonBit中,函数是一等公民,这意味着函数可以作为其他函数的参数或返回值。

内置数据结构:元组、数组

元组是一个有限值的集合,使用圆括号()构造,其中元素由逗号,分隔。 元素的顺序很重要,例如(1, true)和(true, 1)是不同的类型。
数组是由方括号[]构造的有限值序列,其中元素由逗号,分隔。

变量可以使用关键字var或let分别声明为可变或不可变。 可变变量可以重新赋值,不可变变量则不能。

数据类型

创建新数据类型的方法有两种:struct(结构)和enum(枚举)。

在MoonBit中,结构与元组类似,但是它们的字段由字段名索引。 结构体可以使用结构体字面量构造,结构体字面量由一组带有标签的值组成,并用花括号括起来。 如果结构体字面量的字段完全匹配类型定义,则其类型可以被自动推断。

枚举类型和函数式语言中的代数数据类型类似。 枚举可以有一组情况,并且每个情况和元组类似,可以指定不同类型的关联值。 每个情况的标签必须大写,称为数据构造函数。 可以通过调用带有指定类型参数的数据构造函数来构造枚举。 枚举的构造必须使用标明类型。 可以通过模式匹配来解构枚举,并且可以将关联值绑定到每个模式中指定的变量。

可以在顶层的函数和数据结构定义中使用泛型。支持重载内置运算符。与运算符<op>相对应的方法名称是op_<op>。字符串插值是MoonBit的一个强大特性,它允许您在插值字符串中替换变量。这个特性通过直接将变量值嵌入文本中,简化了构造动态字符串的过程。