ITPUB

ITPUB专访 | 张宏波:一场关于编程语言速度与效率的深度对话

随着 AI 大语言模型(LLM)不断突破和开源社区活跃程度达到前所未有的高度,以 OpenAI 的 GPT-4、Meta-LLaMA 等为代表的重量级产品和服务相继发布,AI 技术的蓬勃发展给编程语言带来了新的挑战和机遇。

作为 AI 大模型的“底座”,开发者工具基础设施承载着顶层大模型的建设,也是大模型应用落地的关键。在大模型时代下,AI开发者工具应该具有何种形态?

近日,ITPUB 有幸采访到 MoonBit 平台的负责人张宏波老师,一起探讨 MoonBit 与 AI 大模型如何结合、编程语言在这一时代的商业化探索、及 MoonBit 未来的发展计划。

Image

问题 1:您好,张老师!很荣幸有机会采访到您,先简单介绍一下您自己!

从我本科算起,我有十几年的时间一直在从事编程语言和开发者工具开发工作。在我念书时就荣幸的进入到 Ocaml 编程语言的核心维护中,值得议一提的是去年 Ocaml 获得了 ACM 系统软件奖(计算机世界级大奖之一),今年获奖的编程语言是 Rust。我的第一份正式工作在纽约,期间我自己研发了一个新的编程语言叫 ReScript ,后来这门编程语言被一些国际知名公司的知名项目使用,其中包括 Facebook (Meta)的 messenger 和 chats,同时我也参与了 Flow 编程语言的开发。

基于我过去三门编程语言的职业经历与开发积累的经验,我酝酿了一个更大的梦想,从顶层视角思考,设计一个新的编程语言与IDE等开发工具更好的协同,2022时这个机会到来,我们在深圳 IDEA 研究院组织了一个团队从事 MoonBit 的开发。

MoonBit 是一个全新的 AI 云原生开发者平台,它还有一个中文名字叫做月兔,我们预计在未来几年它就会有十万级别的用户。

试用 MoonBit 传送门:https://marketplace.visualstudio.com/items?itemName=moonbit.moonbit-lang

Image

问题 2:在 AI 时代下,编程范式是否会发生一些变化?MoonBit 支持哪些编程范式?

全新的编程范式预计会向 「传统编程+AIGC的转变」。

MoonBit月兔编程语言支持多范式编程(命令式、函数式、面向对象等),同时面向云原生开发(提供浏览器中的IDE,可编译到WebAssembly),面向AI开发(集成AI环境),适合各种水平的开发者。

Image

问题 3:MoonBit 采用什么方式部署大模型?哪种方式部署最有利?

MoonBit AI(ai.moonbitlang.com)首页 playground 的大模型部署在我们私有 Mac Studio 的推理集群上,使用 llama.cpp 作为推理引擎。我们认为端侧的模型部署能够更好满足 IDE 中用户对延迟和效果的需求。此外,端侧模型也能更好地保护用户的代码和隐私。
Image

问题 4:MoonBit 作为一门新语言,在没有大量可用于训练的代码语料的条件下,如何训练出可用的代码大模型?采用什么方式提高终端模型的准确性?

在语料上,我们收集了 GitHub 上面以 MoonBit 语言编写的项目、我们自己撰写的文档来训练。我们也通过现有的大模型生成了一些 MoonBit 的语料。不过这些仍然远远不够,我们希望通过类似于强化学习的方法来通过向 MoonBit 编译器这个 Oracle 进行查询的方式获得反馈,来大大增加我们的数据量。

在终端模型的部署上,我们通过静态分析技术对模型生成以后的 MoonBit 代码进行检查,去掉一些不合法的 MoonBit 代码,来提升生成 MoonBit 代码的可靠性。同时,由于终端模型通常经过了低精度的量化来减小体积、提升速度,我们会对生成的代码以比较低的温度参数进行采样,减少因为精度下降带来的损失。

Image

问题 5:MoonBit 包含了哪些核心组件,从什么场景中而来?最大的优势是什么?

MoonBit 是一个用于云计算和边缘计算的 WebAssembly 端到端编程语言工具链,集开发、编译、测试、部署于一体 —— 涵盖了通用程序语言设计、编译器、构建系统、编辑器和语言服务器、IDE、部署工具等。

MoonBit 优势很多,归纳总结有编译快、运行快、支持多后端、体积小、安全、开发者友好和开源等。

Image

问题 6:MoonBit 如何与 AI 技术结合?它在大模型智能和自动化编程方面有哪些应用?

MoonBit作为一个AI时代下全新的开发平台,从一开始的顶层设计就考虑如何将传统IDE智能和大模型智能融合在一起。利用传统IDE智能修正大模型智能,MoonBit通过局部重采样和全局重采样实现了智能代码生成的调整和修正。

局部重采样利用AI生成的代码进行实时调整,确保代码符合语法规范,而全局重采样进一步验证代码的语义正确性。这种方法基于深度领域知识,为开发者提供了更可靠、更准确的代码生成体验,减少了后续调试和错误修复的需要。MoonBit团队还特意开发了基于token的实时语义分析工具,确保大模型输出更为准确。

值得注意的是 MoonBit 还支持实时的自动测试,解放双手,提高生产力!

Image

问题 7:MoonBit 在云计算和边缘计算方面有哪些独特的优势?

MoonBit 具备后发优势,如基于 Webassembly 设计同时支持多后端,生成代码的性能高、体积小。

Image

问题 8:MoonBit 如何支持开发者在 WebAssembly 上进行高效的云原生开发?

MoonBit 是一种端到端的编程语言,针对 WebAssembly 进行了优化,同时也可以编译成 JavaScript 和汇编代码。
目前 WebAssembly 的优势还没有体现出来,总的来说 WebAssembly 是安全且快速的,但是当 GO 语言被编译到 WebAssembly 时,它生成了大量的 WebAssembly 代码,因此变得不再敏捷,原因是 WebAssembly 语言语义与 Go 语言并不十分匹配。
所以我们认为存在一个巨大的机会,需要一种专为 WebAssembly 语义而设计的语言,MoonBit 应运而生。

IDE 是开发人员可能发现 MoonBit 对 Wasm 有吸引力的另一个重要原因。对于新语言来说,从一开始就拥有 IDE 是不寻常的。通常来说,这需要数年时间。MoonBit 从一开始就提供了强大、可靠且提供最佳性能的 IDE。

Image

问题 9:MoonBit的 云IDE环境有何特点?有哪些创新功能?是否支持代码高亮、自动补全等功能?

支持。
借鉴以往IDE的架构经验,MoonBit在语言设计之初充分考虑了IDE、构建系统、语言设计的协同,实现类型检查和推断的高度并行化和增量化。
目前,业内大多数程序语言的IDE是为桌面操作系统所设计,未能充分考虑在云原生环境下与边缘端的交互。MoonBit通过高度并行化的架构以及对分离编译(separate compilation)的原生支持,和得益于静态类型检查性能的极大提升和轻量化设计,实现CloudIDE在边缘端的直接运行,不再依赖网络带宽,让用户输入能快速反馈。

MoonBit快速语义分析的技术可以适配到海量的代码库,在更大的代码库也能在百毫秒级别完成IDE响应。初步测试结果显示,MoonBit在冷启动环境下只需要约30ms就能完成数个包的语义检测,而传统语言IDE则需要几秒甚至几十秒。

Image

问题 10:MoonBit 为什么能在短时间内获得大家的关注?哪些方面值得关注?与其他编程语言相比有哪些优势?MoonBit在未来有哪些计划或新增特性工具?

我觉得MoonBit非常有机会成为一门世界级的编程语言,要做好任何事情,它都需要天时地利人和,我们这三要素是占据的。第一是在现在国家大的政策背景下,大家对根技术是非常支持的,第二是我们在深圳这样一片创新的土壤,深圳对我们的支持还是足够的,第三个是人和,这是最重要的一点,我们有非常优秀的团队,ReScript的开发早期更多是一个人的工作,MoonBit有一个非常年轻、精力充沛的团队,所以MoonBit是一个非常有希望的编程语言,也正因此能在短时间内获得大家的关注。
MoonBit 专为云 + AI 打造,其核心技术自主研发,通过专注 Wasm 形成后发优势,目前在核心指标(编译速度、运行速度、体积大小)已成功领先传统语言。

目前接下来的计划是编译系统开源,之后是正式的 Beat 版本,值得一提的是我们马上会举办一场「MoonBit 编程挑战赛」,届时欢迎各大高校的学生前来参与。

Image

问题 11:为什么 MoonBit 会成为现象级的编程语言及商业化思路?

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

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

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

MoonBit在商业模式从开发者用户(C端)和企业用户(B端)进行了商业化的思考

阶段一:定制化服务

我们会为大厂商提供定制化服务,满足他们的特定DIY需求。我们的团队小而精,凭借高效的运作和国家的支持,我们有能力为客户提供高质量及时的解决方案。最新的政策文件也表明,国家对于技术软件的支持力度在不断加大,这为我们市场上的生存和发展提供了有利的条件。
阶段二:云计算平台
我们提供的是一个涵盖从开发、调试到部署的全方位云计算平台,并通过 AI 赋能,进一步提升用户体验和覆盖面。所以对于普通开发者而言,可以一键部署、调试和测试,完全做到开箱即用,提供的独特价值远超现有的开源解决方案,这将为用户带来明显的增值体验。
但基础软件在商业道路上,往往会有人提出质疑,很多人认为基础软件类似于水电等大型基础设施,应该是免费开源的。我觉得里面有一个很大的误解。在市场上,既有像 Python 和 Rust 这样的免费开源软件,也有像 MATLAB 和 Mathematica 这样的优秀盈利软件。两者各有优劣,能满足不同层次的需求。Python 和 Rust 由于早期为了扩大用户基础而失去了控制权,而 MATLAB 则通过保持对核心技术的控制,形成了良好的生态系统。我们相信 MoonBit 可以采取一种平衡的策略,在保持一定开放性的同时,继续对核心技术保持控制。
作为一个技术驱动的公司,MoonBit有一些很明显的特性:
• 市场的稀缺性和极高的门槛
国内从事基础软件研发,并在国际上取得领先的地位目前是非常罕见的,MoonBit从诞生之初就有非常大的野心,我们不仅希望能填补国内某些领域的空白,我们更预期在相关领域取得国际领先地位。国内这片领域几乎是一片空白,对我们来说是巨大的机会。
• 控制权与核心产品价值
MoonBit 在一开始的商业化考虑上,就将核心技术和控制权牢牢掌握在自己手中,这样在商业模式和产品方向上具有绝对的自主权。这样意味着我们可以根据市场的趋势和需求及时调整产品策略,保持长期的竞争力和盈利能力。这是很重要重要的一点。
其次,产品价值的大小是能否通过市场考研的第一“试金石”,MoonBit 提供具有核心价值的产品。我们不仅仅是一个编程语言,而是一个能够为用户提供实质性价值增量的平台。我们的定制化服务和云计算平台,通过 AI 赋能,为用户提供从开发、调试到部署的全方位支持。这种独特的价值是现有开源解决方案所无法比拟的,也是我们赢得市场和客户的关键。从国产编程语言的应用现状来看,目前我们是对外发布的首个工业级别的编程语言级开发者工具链平台,一旦我们进入市场,凭借我们的技术优势和产品价值,能够迅速建立高门槛,使得外部竞争者很难进入。这种稀缺性和高进入门槛,赋予了 MoonBit 巨大的市场潜力和独特的竞争优势。