改变世界的编程语言MoonBit:背景知识速览

大家好,我是 MoonBit 使用者,也是 MoonBit 布道师,这是我的 《改变世界的编程语言MoonBit》 系列文章,将自己学习和理解 MoonBit 的过程分享给同样在了解,学习和使用 MoonBit 的你,希望能给大家带来参考和帮助。

全部文章可以前往 MoonBit 开发网 https://moonbit.edgeone.apphttps://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

相关推荐
Mintopia3 分钟前
🌌 Next.js 服务端组件(Server Components)与客户端组件(`"use client"`)
前端·javascript·next.js
Mintopia5 分钟前
⚔️ WebAI 推理效率优化:边缘计算 vs 云端部署的技术博弈
前端·javascript·aigc
爱喝奶茶的企鹅30 分钟前
Ethan独立开发新品速递 | 2025-08-30
人工智能·程序员
自由的疯1 小时前
Java RuoYi整合Magic-Api详解
java·后端·架构
自由的疯1 小时前
Java 实现TXT文件上传并解析的Spring Boot应用
后端·架构
爱学大树锯1 小时前
【Ruoyi 解密 - 09. 前端探秘2】------ 接口路径及联调实战指南
前端
老华带你飞1 小时前
校园二手书交易|基于SprinBoot+vue的校园二手书交易管理系统(源码+数据库+文档)
java·前端·数据库·vue.js·小程序·毕设·校园二手书交易管理系统
萌程序.1 小时前
创建Vue项目
前端·javascript·vue.js
VT.馒头2 小时前
【力扣】2704. 相等还是不相等
前端·javascript·算法·leetcode·udp
linweidong2 小时前
Vue前端国际化完全教程(企业内部实践教程)
前端·javascript·vue.js·多语言·vue-i18n·动态翻译·vue面经