MoonBit beta 预览版比大部分主流语言更早推出现代化泛型、精准错误处理和高效迭代器等重要特性,在云计算、边缘计算、人工智能和教育等领域快速实现落地应用。Beta 预览版标志着 MoonBit 生态进入全新阶段,为用户提供更稳定、流畅的创新操作体验。
MoonBit 自去年发布 alpha 版后,反响热烈。经过一年的高速迭代,MoonBit 到达了 beta 预览版的里程碑:在核心语言特性上,MoonBit 媲美、甚至超越了大部分主流语言的 1.0 版本;语言特性的开发稳定,开发者可以更广泛地参与到生态建设中来。这里列举几个 MoonBit 的核心特性:
现代语言复杂性的很大一部分在于类型系统的设计,很多主流工业语言,比如 Java,Go 在 1.0 版本推出很多年以后才会渐渐完善泛型的支持,但是这会对生态造成撕裂。MoonBit 在 beta 预览版本已经完成了泛型和 ad-hoc polymoprhism,而且 MoonBit 在保持极快的编译速度的同时,提供了零开销的泛型支持。
错误处理是现代语言设计中的重要组成部分,大部分编程语言在静态分析中,彻底放弃错误处理的支持,这意味着任何函数都可以抛出异常,很难写出高可靠性的代码。MoonBit 通过准确的控制流分析,可以完全在编译时期跟踪函数的错误。这一过程几乎完全由编译器自行推导,且不像 Java checked exception 那样过于繁琐,降低用户的心智负担。
传统的编程语言的迭代器会产生频繁的装箱操作,导致其性能比普通的循环要糟糕很多。MoonBit 创新地使用了零开销的迭代器设计,可以让用户写出优雅代码的同时保持程序的性能。
MoonBit 是一个全场景覆盖的开发者平台,紧跟科技前沿和行业趋势,侧重于云计算、边缘计算、人工智能以及教学领域的发展,并在每个领域做到极致,确保在性能上领先其他语言至少一个数量级。
云计算
在云计算领域,MoonBit 近期已支持 Wasm 组件模型,并有海外用户实现了与 Spin 框架集成的 MoonBit SDK。
通过将应用程序拆分成独立的、可重用的组件,MoonBit 可以在云计算开发中更好地利用模块化开发、灵活的部署和更新、资源优化、防止单点故障提高安全性、易于扩展和集成等特性,实现云计算应用场景中的突出优势,提高系统的灵活性和安全性,简化扩展和集成过程,从而显著提高云计算开发效率并降低运营成本。
边缘计算
在边缘计算领域,目前已有 MoonBit PDK 插件,并被 Extism 收入官方 PDK 库。
通过 PDK 的支持,MoonBit 能够在边缘计算应用中更高效地利用硬件资源,实现分布式计算和本地处理,提升性能和响应速度,同时确保设备兼容性和数据安全性,从而大大提升开发和部署效率,满足低延迟和高效能的需求。
教育
在 MoonBit 的应用生态发展中,注重为学生群体以及编程语言初学者提供简单易学的入门环境,并以游戏的形式打造轻松愉悦的学习体验。
MoonBit 现已支持使用 WebAssembly 开发小型复古游戏的 WASM-4 框架。凭借 MoonBit 的高效工具链和简洁设计,入门级开发者可以在官方教程的指导下轻松创作属于自己的第一款游戏。
同时,框架内置的多玩家支持功能能够让至多四名玩家共同体验游戏的乐趣。无论是创作过程还是开发体验,MoonBit 都能让初学者体验前所未有的简单与高效。
不仅如此,由于 MoonBit 支持实时可视化开发,同时编译速度极快,开发者还能够实时更改代码来灵活调整游戏参数。
MoonBit 团队正在开发 MiniMoonBit 编译器教学项目。学生可以用 MoonBit 实现 MoonBit 语言的一个子集。由于 MoonBit 强大的表达力,相较传统的用 C/C++ 实现的编译器项目,学生可以更轻松地上手实现。同时,MiniMoonBit 项目采用了模块化的设计,多层 IR 都有对应的 JSON 文本表示,学生不再需要从头实现编译器的每个环节,而是可以选择感兴趣的模块来学习。
快、小、安全、
最佳数据处理体验
MoonBit 于 2022 年启动开发计划,凭借团队在 ReScript、OCaml、Flow 等工业编程语言研发中的十多年经验,迅速在两年内完成了整套工具链的开发,致力于成为第一个走向国际的中国编程语言。
2023 年 8 月 18 日,MoonBit 首次在海外发布后,迅速引起了国际技术社区的广泛关注,并登上了 HackerNews 的头条。HackerNews 作为硅谷最具影响力的科技社区之一,对 MoonBit 的每一次重大特性更新都给予了高度关注。
此外,MoonBit 还在全球 DevOps 领域权威媒体平台 The News Stack、日本顶尖科技社区 Zenn 等知科技媒体上频频出现,进一步巩固了其全球影响力。
同时,MoonBit 在工业应用方面进展迅速,包括多家海外创业公司的应用、在国内拥有数据库领域的商业合作伙伴等。这一过程中,MoonBit 一直致力于发挥其在语言速度、代码精简和数据处理等方面的卓越优势。
快
MoonBit 致力于实现全栈性能的卓越表现,包括编译性能和运行时性能。
通过专为多级中间表示(IR)定制的全局优化,不仅改善了内存布局,减少了缓存未命中率,还为数据和控制流分析提供了一个优越的环境,从而确保了编译和运行时的高性能。从编译速度来看,MoonBit 编译 626 个包(package)只需 1.06 秒,比 Rust 快了近 9 倍,运行时间仅为 Go 的 35 分之一。
小
MoonBit 在输出 Wasm 代码体积上相较于传统语言有显著优势。MoonBit 通过 WebAssembly(Wasm)组件模型,在生成代码时实现了显著的体积优化。相比其他编程语言,MoonBit 编写的 Wasm 组件代码体积大幅减少。
例如,在编译一个简单的“Hello World” HTTP 服务器时,MoonBit 的输出文件大小仅为 27KB,而 WasmCloud 提供的 http-hello-world 模板中 Rust 的输出为 100KB,TypeScript 为 8.7MB,Python 更是高达 17MB。
安全
借助前文提到的创新错误处理机制,MoonBit 有效解决了传统编译技术在错误处理机制转换中遇到的适用范围有限和内存开销大的问题。通过静态分析源程序中的错误处理代码,并根据目标编程语言的特性进行转换,MoonBit 扩大了适用语言范围,减少了内存开销,同时提升了代码的安全性和稳定性。健壮的类型系统是 MoonBit 保障其安全的重要设计之一。MoonBit 采用了强大的类型系统,并内置静态检测工具,在编译期检查类型错误,从而提高代码的正确性和可靠性。
MoonBit 的安全保障得益于其对 WebAssembly 的原生支持,这一特性使得 MoonBit 能够深度挖掘 Wasm 在沙箱环境、内存隔离以及默认的无权限机制(deny-by-default)等方面的安全架构优势。通过这些先进的安全特性,释放其在云计算和边缘计算安全问题上的潜力。同时结合语言自身类型系统安全,删减无用代码(DCE)、编译为经过验证的 Wasm 指令等三层保障,确保代码可信与数据隐私安全。
专注数据处理
MoonBit 作为一门多范式编程语言,在保持语言简单性的同时,也侧重于提供数据处理的最佳体验。MoonBit 通过原生支持 JSON 处理、Iter 类型和模式匹配实现高效数据处理,在语法设计上兼具动态语言的灵活性和静态语言的安全高效,直观而简洁地进行对数据的解析和转换。
MoonBit 在数据处理上的语法设计旨在优化常见的数据处理场景,解决传统方法中由于生成多个中间数组而导致的性能问题。在 Iter 性能对比中,MoonBit 的数据处理速度达到了 JavaScript 的 25 倍之多。
一站式解决方案
相较于传统的编程语言设计路线,MoonBit 从一开始就提供全套开发、调试、部署的一站式解决方案。MoonBit 不仅提供多后端支持、通用程序语言设计,还涵盖了编译器、构建系统、集成开发环境(IDE)、调试器,部署工具等。
这个全面的设计使得 MoonBit 能够实现高度垂直整合,而且可以同时在云端和边缘端执行,更好地与各种资源进行交互,从而为用户提供极致的开发体验和性能。
内置 AI 助手的云 IDE
与其他云 IDE 不同,MoonBit 对 IDE 的支持不仅包含了现代 IDE 的所有功能,且 MoonBit 无需依赖容器。快速语义分析技术可处理大量的代码库,并且在更大规模的代码库中也能在百毫秒级别完成 IDE 响应。现今大多数编程语言的 IDE 是为桌面操作系统设计的,未能很好地适应云原生环境和边缘端的需求。MoonBit 则通过采用高度并行化的架构和对分离编译的原生支持,使得云 IDE 可以直接在边缘端运行。这在现今大多数语言的云 IDE 中是首次。
除了传统 IDE 的功能以外,MoonBit AI 助手现已内置于 MoonBit IDE,并实现了自动化测试生成、文档生成,以及代码解释功能,为应用的开发、测试和文档编写提供了全方位的支持,使得开发者能够更加专注于业务逻辑的实现,而不必担心底层的复杂性和维护工作。
开箱即用的调试支持
MoonBit 在初始阶段已经提供其他语言通常在成熟阶段才拥有的调试工具。MoonBit 目前已提供 sourcemap 支持,支持源码映射、基于源码设置断点、输出 sourcemap 等,可以在浏览器中进行源码调试。这项功能的推出不仅减轻了开发者在代码调试方面的负担,还显著提升了开发和调试的流畅性。
对于 JavaScript 后端,用户仅需在 JavaScript Debug Terminal 上执行 moon run –target js –debug,即可立刻进入调试。MoonBit 的 sourcemap 和调试支持显著优化开发者的调试体验,确保 JavaScript 代码的生成尽可能贴近源码,变量名和字段名保持一致,便于使用浏览器的 DevTools 进行源码检查和调试。
包管理
MoonBit 作为一门从 0 到 1 的编程语言,对于生态建设尤为重视,其中一个关键在于构建高效且功能丰富的包管理系统。我们搭建了一个中心化的 MoonBit 包管理平台 mooncakes.io,提升包的获取速度和编译效率,从而为开发者提供一个高效的工作环境。
此外,我们注重文档的管理和维护。为了让第三方包更加易于开发者理解和使用,我们提供了文档生成工具 moondoc,并在 mooncakes.io 集成了每个包的文档,以帮助开发者编写和分发包的文档、帮助包的使用者创造高质量的应用。
AI 时代下的编程语言
这个世界是否还需要一门新的编程语言?答案是,是。
编程语言的发展经历了 60 年代时,结构化编程的兴起。到 70 年代,则是面向对象编程与 C 语言。90 年代,是脚本语言与互联网 。而 00 年代,是语言的统一与多样性。到了 10 年代,是现代语言与大数据。编程语言在不断进步,同时也有大量的编程语言渐渐销声匿迹。
大模型时代浩浩荡荡的浪潮卷席了万事万物。编程语言作为计算机核心组件、且是软件开发者创造技术世界最重要的工具,自然被顶上风口浪尖。整个技术行业都对编程语言提出了更高的要求。
在大模型时代,工具重塑了开发者的工作方式,同时也降低了学习新语言的门槛。开发者将更专注于创意和设计,代码的实现和优化则由编程工具完成。这一转变推动编程工具从简单的代码生成器进化为复杂问题解决平台。
MoonBit AI 云原生开发者平台——MoonBit 编程语言及工具链,就在这个机遇与挑战并存的时代应运而生。MoonBit 的目标,是重塑软件开发生态。
MoonBit 的未来路线
MoonBit AI 云原生开发者平台是一个“道阻且长,行则将至”的系统工程。MoonBit 正在马不停蹄地扩大 MoonBit 的社区力量、培养社区人才。2 年的时间里 ,MoonBit 工具链已有几百名社区贡献者和近万人的全球的用户,增长速度遥遥领先。
目前,MoonBit 已支持 Wasm 与 JS 后端。未来,MoonBit 计划支持 native 后端。这意味着无论是 UI、客户端、边缘计算还是系统编程,用户都能在 MoonBit 平台上找到适合自己的使用场景,从而使生态能够覆盖所有可能的应用场景。
MoonBit beta 预览版比大部分主流语言更早推出现代化泛型、精准错误处理和高效迭代器等重要特性,在云计算、边缘计算、人工智能和教育等领域快速实现落地应用。Beta 预览版标志着 MoonBit 生态进入全新阶段,为用户提供更稳定、流畅的创新操作体验。
MoonBit 自去年发布 alpha 版后,反响热烈。经过一年的高速迭代,MoonBit 到达了 beta 预览版的里程碑:在核心语言特性上,MoonBit 媲美、甚至超越了大部分主流语言的 1.0 版本;语言特性的开发稳定,开发者可以更广泛地参与到生态建设中来。这里列举几个 MoonBit 的核心特性:
现代语言复杂性的很大一部分在于类型系统的设计,很多主流工业语言,比如 Java,Go 在 1.0 版本推出很多年以后才会渐渐完善泛型的支持,但是这会对生态造成撕裂。MoonBit 在 beta 预览版本已经完成了泛型和 ad-hoc polymoprhism,而且 MoonBit 在保持极快的编译速度的同时,提供了零开销的泛型支持。
错误处理是现代语言设计中的重要组成部分,大部分编程语言在静态分析中,彻底放弃错误处理的支持,这意味着任何函数都可以抛出异常,很难写出高可靠性的代码。MoonBit 通过准确的控制流分析,可以完全在编译时期跟踪函数的错误。这一过程几乎完全由编译器自行推导,且不像 Java checked exception 那样过于繁琐,降低用户的心智负担。
传统的编程语言的迭代器会产生频繁的装箱操作,导致其性能比普通的循环要糟糕很多。MoonBit 创新地使用了零开销的迭代器设计,可以让用户写出优雅代码的同时保持程序的性能。
MoonBit 是一个全场景覆盖的开发者平台,紧跟科技前沿和行业趋势,侧重于云计算、边缘计算、人工智能以及教学领域的发展,并在每个领域做到极致,确保在性能上领先其他语言至少一个数量级。
云计算
在云计算领域,MoonBit 近期已支持 Wasm 组件模型,并有海外用户实现了与 Spin 框架集成的 MoonBit SDK。
通过将应用程序拆分成独立的、可重用的组件,MoonBit 可以在云计算开发中更好地利用模块化开发、灵活的部署和更新、资源优化、防止单点故障提高安全性、易于扩展和集成等特性,实现云计算应用场景中的突出优势,提高系统的灵活性和安全性,简化扩展和集成过程,从而显著提高云计算开发效率并降低运营成本。
边缘计算
在边缘计算领域,目前已有 MoonBit PDK 插件,并被 Extism 收入官方 PDK 库。
通过 PDK 的支持,MoonBit 能够在边缘计算应用中更高效地利用硬件资源,实现分布式计算和本地处理,提升性能和响应速度,同时确保设备兼容性和数据安全性,从而大大提升开发和部署效率,满足低延迟和高效能的需求。
教育
在 MoonBit 的应用生态发展中,注重为学生群体以及编程语言初学者提供简单易学的入门环境,并以游戏的形式打造轻松愉悦的学习体验。
MoonBit 现已支持使用 WebAssembly 开发小型复古游戏的 WASM-4 框架。凭借 MoonBit 的高效工具链和简洁设计,入门级开发者可以在官方教程的指导下轻松创作属于自己的第一款游戏。
同时,框架内置的多玩家支持功能能够让至多四名玩家共同体验游戏的乐趣。无论是创作过程还是开发体验,MoonBit 都能让初学者体验前所未有的简单与高效。
不仅如此,由于 MoonBit 支持实时可视化开发,同时编译速度极快,开发者还能够实时更改代码来灵活调整游戏参数。
MoonBit 团队正在开发 MiniMoonBit 编译器教学项目。学生可以用 MoonBit 实现 MoonBit 语言的一个子集。由于 MoonBit 强大的表达力,相较传统的用 C/C++ 实现的编译器项目,学生可以更轻松地上手实现。同时,MiniMoonBit 项目采用了模块化的设计,多层 IR 都有对应的 JSON 文本表示,学生不再需要从头实现编译器的每个环节,而是可以选择感兴趣的模块来学习。
快、小、安全、
最佳数据处理体验
MoonBit 于 2022 年启动开发计划,凭借团队在 ReScript、OCaml、Flow 等工业编程语言研发中的十多年经验,迅速在两年内完成了整套工具链的开发,致力于成为第一个走向国际的中国编程语言。
2023 年 8 月 18 日,MoonBit 首次在海外发布后,迅速引起了国际技术社区的广泛关注,并登上了 HackerNews 的头条。HackerNews 作为硅谷最具影响力的科技社区之一,对 MoonBit 的每一次重大特性更新都给予了高度关注。
此外,MoonBit 还在全球 DevOps 领域权威媒体平台 The News Stack、日本顶尖科技社区 Zenn 等知科技媒体上频频出现,进一步巩固了其全球影响力。
同时,MoonBit 在工业应用方面进展迅速,包括多家海外创业公司的应用、在国内拥有数据库领域的商业合作伙伴等。这一过程中,MoonBit 一直致力于发挥其在语言速度、代码精简和数据处理等方面的卓越优势。
快
MoonBit 致力于实现全栈性能的卓越表现,包括编译性能和运行时性能。
通过专为多级中间表示(IR)定制的全局优化,不仅改善了内存布局,减少了缓存未命中率,还为数据和控制流分析提供了一个优越的环境,从而确保了编译和运行时的高性能。从编译速度来看,MoonBit 编译 626 个包(package)只需 1.06 秒,比 Rust 快了近 9 倍,运行时间仅为 Go 的 35 分之一。
小
MoonBit 在输出 Wasm 代码体积上相较于传统语言有显著优势。MoonBit 通过 WebAssembly(Wasm)组件模型,在生成代码时实现了显著的体积优化。相比其他编程语言,MoonBit 编写的 Wasm 组件代码体积大幅减少。
例如,在编译一个简单的“Hello World” HTTP 服务器时,MoonBit 的输出文件大小仅为 27KB,而 WasmCloud 提供的 http-hello-world 模板中 Rust 的输出为 100KB,TypeScript 为 8.7MB,Python 更是高达 17MB。
安全
借助前文提到的创新错误处理机制,MoonBit 有效解决了传统编译技术在错误处理机制转换中遇到的适用范围有限和内存开销大的问题。通过静态分析源程序中的错误处理代码,并根据目标编程语言的特性进行转换,MoonBit 扩大了适用语言范围,减少了内存开销,同时提升了代码的安全性和稳定性。健壮的类型系统是 MoonBit 保障其安全的重要设计之一。MoonBit 采用了强大的类型系统,并内置静态检测工具,在编译期检查类型错误,从而提高代码的正确性和可靠性。
MoonBit 的安全保障得益于其对 WebAssembly 的原生支持,这一特性使得 MoonBit 能够深度挖掘 Wasm 在沙箱环境、内存隔离以及默认的无权限机制(deny-by-default)等方面的安全架构优势。通过这些先进的安全特性,释放其在云计算和边缘计算安全问题上的潜力。同时结合语言自身类型系统安全,删减无用代码(DCE)、编译为经过验证的 Wasm 指令等三层保障,确保代码可信与数据隐私安全。
专注数据处理
MoonBit 作为一门多范式编程语言,在保持语言简单性的同时,也侧重于提供数据处理的最佳体验。MoonBit 通过原生支持 JSON 处理、Iter 类型和模式匹配实现高效数据处理,在语法设计上兼具动态语言的灵活性和静态语言的安全高效,直观而简洁地进行对数据的解析和转换。
MoonBit 在数据处理上的语法设计旨在优化常见的数据处理场景,解决传统方法中由于生成多个中间数组而导致的性能问题。在 Iter 性能对比中,MoonBit 的数据处理速度达到了 JavaScript 的 25 倍之多。
一站式解决方案
相较于传统的编程语言设计路线,MoonBit 从一开始就提供全套开发、调试、部署的一站式解决方案。MoonBit 不仅提供多后端支持、通用程序语言设计,还涵盖了编译器、构建系统、集成开发环境(IDE)、调试器,部署工具等。
这个全面的设计使得 MoonBit 能够实现高度垂直整合,而且可以同时在云端和边缘端执行,更好地与各种资源进行交互,从而为用户提供极致的开发体验和性能。
内置 AI 助手的云 IDE
与其他云 IDE 不同,MoonBit 对 IDE 的支持不仅包含了现代 IDE 的所有功能,且 MoonBit 无需依赖容器。快速语义分析技术可处理大量的代码库,并且在更大规模的代码库中也能在百毫秒级别完成 IDE 响应。现今大多数编程语言的 IDE 是为桌面操作系统设计的,未能很好地适应云原生环境和边缘端的需求。MoonBit 则通过采用高度并行化的架构和对分离编译的原生支持,使得云 IDE 可以直接在边缘端运行。这在现今大多数语言的云 IDE 中是首次。
除了传统 IDE 的功能以外,MoonBit AI 助手现已内置于 MoonBit IDE,并实现了自动化测试生成、文档生成,以及代码解释功能,为应用的开发、测试和文档编写提供了全方位的支持,使得开发者能够更加专注于业务逻辑的实现,而不必担心底层的复杂性和维护工作。
开箱即用的调试支持
MoonBit 在初始阶段已经提供其他语言通常在成熟阶段才拥有的调试工具。MoonBit 目前已提供 sourcemap 支持,支持源码映射、基于源码设置断点、输出 sourcemap 等,可以在浏览器中进行源码调试。这项功能的推出不仅减轻了开发者在代码调试方面的负担,还显著提升了开发和调试的流畅性。
对于 JavaScript 后端,用户仅需在 JavaScript Debug Terminal 上执行 moon run –target js –debug,即可立刻进入调试。MoonBit 的 sourcemap 和调试支持显著优化开发者的调试体验,确保 JavaScript 代码的生成尽可能贴近源码,变量名和字段名保持一致,便于使用浏览器的 DevTools 进行源码检查和调试。
包管理
MoonBit 作为一门从 0 到 1 的编程语言,对于生态建设尤为重视,其中一个关键在于构建高效且功能丰富的包管理系统。我们搭建了一个中心化的 MoonBit 包管理平台 mooncakes.io,提升包的获取速度和编译效率,从而为开发者提供一个高效的工作环境。
此外,我们注重文档的管理和维护。为了让第三方包更加易于开发者理解和使用,我们提供了文档生成工具 moondoc,并在 mooncakes.io 集成了每个包的文档,以帮助开发者编写和分发包的文档、帮助包的使用者创造高质量的应用。
AI 时代下的编程语言
这个世界是否还需要一门新的编程语言?答案是,是。
编程语言的发展经历了 60 年代时,结构化编程的兴起。到 70 年代,则是面向对象编程与 C 语言。90 年代,是脚本语言与互联网 。而 00 年代,是语言的统一与多样性。到了 10 年代,是现代语言与大数据。编程语言在不断进步,同时也有大量的编程语言渐渐销声匿迹。
大模型时代浩浩荡荡的浪潮卷席了万事万物。编程语言作为计算机核心组件、且是软件开发者创造技术世界最重要的工具,自然被顶上风口浪尖。整个技术行业都对编程语言提出了更高的要求。
在大模型时代,工具重塑了开发者的工作方式,同时也降低了学习新语言的门槛。开发者将更专注于创意和设计,代码的实现和优化则由编程工具完成。这一转变推动编程工具从简单的代码生成器进化为复杂问题解决平台。
MoonBit AI 云原生开发者平台——MoonBit 编程语言及工具链,就在这个机遇与挑战并存的时代应运而生。MoonBit 的目标,是重塑软件开发生态。
MoonBit 的未来路线
MoonBit AI 云原生开发者平台是一个“道阻且长,行则将至”的系统工程。MoonBit 正在马不停蹄地扩大 MoonBit 的社区力量、培养社区人才。2 年的时间里 ,MoonBit 工具链已有几百名社区贡献者和近万人的全球的用户,增长速度遥遥领先。
目前,MoonBit 已支持 Wasm 与 JS 后端。未来,MoonBit 计划支持 native 后端。这意味着无论是 UI、客户端、边缘计算还是系统编程,用户都能在 MoonBit 平台上找到适合自己的使用场景,从而使生态能够覆盖所有可能的应用场景。