大家好,我是 MoonBit 使用者,也是 MoonBit 布道师,这是我的 《改变世界的编程语言MoonBit》
系列文章,将自己学习和理解 MoonBit 的过程分享给同样在了解,学习和使用 MoonBit 的你,希望能给大家带来参考和帮助。
全部文章可以前往 MoonBit 开发网 https://moonbit.edgeone.app
或 https://moonbit.pages.dev
查看,我坚信,MoonBit 将会改变世界。
MoonBit 是什么?
- 官网地址 :
https://www.moonbitlang.cn
- 文档地址 :
https://docs.moonbitlang.cn
- 开源地址 :
https://github.com/moonbitlang

MoonBit 是2022年10月份推出的编程语言,包括了完整的工具链,编译器,构建系统,IDE,包管理中心,测试系统,甚至还自带专属 AI。
MoonBit 有着 Rust 一样强大的功能,却有着比 Golang 还快的编译速度,如果我没料错,以后很多项目,工具,模块等都会用 MoonBit 重写并 兔
化。
谁创造了 MoonBit?
- 知乎 :
https://www.zhihu.com/people/hongbo_zhang
- X 平台 :
https://x.com/bobzhang1988


MoonBit 项目和平台负责人 张宏波
现任 IDEA基础软件中心
首席科学家。
是通用程序语言 ReScript 的作者,程序语言 OCaml 前核心开发人员。
本科毕业于清华大学电子系,在美国宾夕法尼亚大学读博期间受 Bloomberg 邀请,从事函数式语言编译器的开发工作。
作者更多信息可以查看文章 👉 不到 11 个月成型,100%完全自研,他立志:要把这门编程语言打造成 "世界级"!
主要参考了哪些语言?
MoonBit 主要参考了 Rust 的强大语法,参考了 Go 语言的架构设计。
同时,这个在 AI 时代诞生的语言,更加适合 AI 时代的土壤,在语法,架构等方面的设计与 AI 更加契合。
也就是说,使用 MoonBit+AI,可以写成质量更高,幻觉更少的代码。
与 go 的对比和区别
方面 | Go | MoonBit |
---|---|---|
范式 | 命令式,带有一些函数式特性 | 函数式和命令式兼备 |
内存管理 | 垃圾回收 | 引用计数/垃圾回收(取决于后端) |
错误处理 | 多返回值 | 带检查的抛出错误的函数 |
泛型 | 接口和类型参数 | 完整的泛型系统,支持特征(类似于Rust) |
模式匹配 | 有限(switch语句) | 全面的模式匹配 |
目标平台 | 原生二进制文件 | WebAssembly、JavaScript、原生二进制文件(C或LLVM) |
也就是说,MoonBit 不仅能自己跑,还能编译成其他语言运行。
要不要用这个语言?
这个取决于自己的需要,我目前主要用 MoonBit 来补充 JavaScript 的短板,如 性能提升
与 核心加密
这两大部分。
如何来补充短板呢?那就是用 WebAssembly(WASM) 来补,而 MoonBit 生成 WASM 的体积,质量,速度上面都是遥遥领先的。
在 MoonBit 的加持下,我可以将我的产品性能进一步提升,把商业敏感的部分用 WASM 重写并产生加密效果,一举两得。
除此之外,MoonBit 编译到 JavaScript、C、LLVM 的代码质量都是极高的,在编译等层面做了极致的优化,也适合基于 MoonBit 语法来写生成支持的转译语言。
安装和下载
Linux 与 MacOS
curl -fsSL https://cli.moonbitlang.cn/install/unix.sh | bash
Windows
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser; irm https://cli.moonbitlang.cn/install/powershell.ps1 | iex
提示:按如下方式安装 VSCode 扩展也会自动安装 MoonBit。
如何上手开发?
使用 VSCode 扩展
地址:https://aka.moonbitlang.com/csy

安装 MoonBit 的 VSCode 扩展后,学习 MoonBit 语法开发即可。
在线体验
地址:https://try.moonbitlang.cn

无需配置任何环境,打开网址即可开始 MoonBit 开发体验。
MoonBit 专属 AI

安装 MoonBit 后,执行 moon pilot
,开始让 AI 为你写代码。
如何发布模块?
地址:https://mooncakes.io

使用 moon register
注册,或 moon login
登录到包管理中心。
使用 moon publish
发布包到 月饼中心(mooncakes)
。
有哪些优势?
快
MoonBit 为多级中间表示 (IR) 上的全局优化而设计,这种方法改善了内存布局,最小化缓存未命中率,并提供了优越的数据和控制流分析环境。
从编译速度来看,MoonBit 编译 626 个包 (package) 只需 1.06 秒,比 Rust 快了近 9 倍,运行时间仅为 Go 的 1/6。
小
相比其他编程语言,MoonBit 编写的 Wasm 组件代码体积大幅减少。
在编译一个简单的 Hello World
HTTP 服务器时,MoonBit 的输出文件大小仅为 27KB,而 WasmCloud 提供的 http-hello-world 模板中 Rust 的输出为 100KB,TypeScript 为 8.7MB,Python 更是高达 17MB。
安全
MoonBit 采用了强大的类型系统,并内置静态检测工具,在编译期检查类型错误,从而提高代码的正确性和可靠性。
数据处理

MoonBit 通过原生支持 Json 处理、Iter 类型和模式匹配实现高效数据处理,在语法设计上兼具动态语言的灵活性和静态语言的安全高效,直观而简洁地进行对数据的解析和转换。
MoonBit 在数据处理上的语法设计旨在优化常见的数据处理场景,解决传统方法中由于生成多个中间数组而导致的性能问题,在 Iter 性能对比中,MoonBit 的数据处理速度达到了 JavaScript 的 25 倍之多。
未来路线如何?


目前 MoonBit 正在发展的前期,随着进一步发展,后续将会创造巨大的行业巨浪和机会,早点学习和使用,快人一步,抢占先机。
如何开发游戏?
地址:https://www.moonbitlang.cn/blog/wasm4

使用 WASM-4
框架,提供了 60x160 像素的显示屏,64 KB 的线性内存,支持键盘、鼠标、触摸屏,以及最多 4 个游戏手柄作为输入设备,音频输出,1KB 的存储空间。
WASM-4
支持 web 环境和本地 (native
) 环境,也就是可以使用它来写网页游戏和单片机游戏。
有哪些行业成果?


- 海外云服务厂商 GolemCloud 已通过构建完整的 MoonBit WebAssembly SDK 并投入实际运行。
- 北京大学研究生院
《编程语言的设计原理》
课程大纲正式发布,创新性的将 MoonBit 纳入课程,取代 OCaml 成为课程推荐的实践工具。 - MoonBit 在2023年8月18日首发后,在国内外社区引发了热烈的讨论,并在发布不到一天的时间内登顶硅谷知名科技社区 HackerNews 头版头条。
- 开发者社区 zenn.dev 上关于 MoonBit 的详细介绍文章引发热议并迅速攀升至热门榜首。
- 被
前端之虎陈随易
青睐,列入到除 JavaScript 之外的第二门作为日常熟练使用的编程语言 (哈哈,开个玩笑,非常看好MoonBit的前景
)。
样例一览
俄罗斯方块
地址:https://www.moonbitlang.cn/gallery/tetris

马里奥
地址:https://www.moonbitlang.cn/gallery/mario

数独
地址:https://www.moonbitlang.cn/gallery/sudoku

贪吃蛇
地址:https://www.moonbitlang.cn/gallery/snake
