Weekly [weekly]
Weekly [weekly]
这里是 2025/3/24 ~ 2025/4/6 的社区周报,为双周周报。 在过去的两周中,MoonBit 官方在深圳举办了 OJ 编程大赛和 2025 年第一次 Meetup 活动。社区贡献数量显著增长,有很多质量较高、来自社区的包涌现,基本着眼于基础设施方面。同时,Community-Blog 正式建立,发出第一次 Weekly 周报。(每个 title 下都有大量内容,点击标题即可展开) Meetup 3 月 30 日,MoonBit 举办了 2025 年首期技术以AI 时代下的基础软件为主题的 Meetup,吸引了 40 余位场开发者和近 300 名线上观众参与。 活动中,四位 MoonBit 核心工程师带来了精彩技术分享: 此外,特邀嘉宾 ShowmeBug & Clacky CEO 李亚飞则带来了 LL3 AI Coding 发展趋势的前沿洞察和实战案例。 本次活动不仅展示了 MoonBit 的最新技术进展,也为社区员提供了深入交流的平台,
现场观众提出的精准问题引发了广泛讨论,促进了开发者社区的活跃互动与技术共享。 OJ 竞赛 3 月 30 日,在技术分享的热烈讨论之后,迎来了 MoonBit OJ 编程竞技赛决赛颁奖典礼新年首场 Meetup 暨 OJ 编程竞技赛颁奖典礼。 MoonBit OJ 编程竞技赛自启动以来,吸引了众多开发者的积极参与,共有 300 多名开发者报名,经过激烈的初赛和选拔赛,最终有 200 名选手脱颖而出,9 位顶尖选手在决赛中进行了巅峰对决。 在决赛中,选手们在 3 小时内完成了 8 道高难度的编程题目,展现了他们在算法设计、逻辑推理和代码实现方面的卓越能力。经过紧张而激烈的角逐,最终确定了冠亚季军。 以下是本次比赛的获奖名单 MoonBit OJ 编程竞技赛不仅展示了开发者们的技术实力,也激发了他们对国产基础软件的热情。MoonBit 将继续为开发者们提供高质量的交流和竞技平台,推动技术生态的持续发展。
我们期待在下一次的社区活动中,看到更多开发者的精彩表现,共同见证 MoonBit 生态的不断进步和发展。 最佳硬科技前沿创新奖 3 月 29 日,第十二届开源操作系统年度技术大会(OS2ATC)在北京航空航天大学成功举办。OS2ATC 汇聚了来自清华大学、北京大学、蚂蚁集团、腾讯云、国家智能网联汽车创新中心、中移物联等一线高校、企业和科研机构的顶尖专家学者和行业领军人物。 MoonBit 以硬核技术突破重塑编程语言生态: 通过技术实践验证了硬科技“从学术走到产业”的标杆价值,为云原生与智能计算时代打造核心基石,荣获最佳硬科技前沿创新奖! WASM I/O 2025 本周,MoonBit 亮相巴塞罗那 WASM I/O 大会,并进行技术分享。本次为中国开发者平台首次登上这一国际技术峰会,展示了本土开源力量在 WASM 生态的创新成果。活动中,MoonBit 负责人张宏波 发表了主题演讲 《MoonBit & WebAssembly》。社区对 MoonBit 的表现给予了高度评价:Kotlin/Wasm 作者 Zalim 在社交媒体上表示:“MoonBit 在 WebAssembly 平台实现了精彩的成果”,对 MoonBit 在 WASM 方向的技术成果给予认可。ZivergeTech & Golem Cloud 公司 CEO John A De Goes 也表示:“与张宏波在 WASM I/O 见面后,我对 MoonBit 未来更加充满期待!” Mooncakes 开源 由 MoonBit 官方的 Yoorkin 领头,Lampese 东灯 参与建设新版 mooncakes.io 网站已经开源在 moonbitlang 组织内。该网站采用纯 MoonBit 基于 rabbit-tea 框架与 Tailwind CSS 构建,是采用 MoonBit 开发多网页应用的一个优秀示例。而且官方的 mooncakes.io 已经更换了这一版的实现。 值得注意的是这次的新版 mooncakes.io 采用了来自社区的两个仓库 fuzz-match 与 lazy,分别用于搜索和惰性求值。 1. Weekly1 社区周报 2025/3/24 ~ 2025/4/6 [weekly/weekly1]
1.1. 本周官方重要动态 [weekly/weekly1/official]
参赛者名称 正确题数 总用时 (分钟) Dawn Magnet 8 960 Hao Zhang 6 514 Luyao LYU 5 310 xunyoyo 5 415 refinedheart 5 470 wangnianyi 4 369 liuly 3 70 zhristophe 3 301 Zhehao 0xFF 1 27
1.2. 本周社区新增优质项目 [weekly/weekly1/projects]
1.3. 本周社区新增优质包 [weekly/weekly1/packages]
1.4. 本周社区项目维护动态(只会写相对重要的内容) [weekly/weekly1/community]
这里是 2025/4/7 ~ 2025/4/13 的社区周报,为单周周报。 本周社区的贡献相对平淡,但可以肯定的是生态在逐渐稳固,并且应用层的项目越来越多。(每个 title 下都有大量内容,点击标题即可展开) 本周 illusory0x0 猗露 在 Community-Blog 编写了 MoonBit 实现树的先序遍历,MoonBit 实现外部迭代器和 MoonBit 实现内部迭代器三篇文章。第一篇文章作为前置,后两篇文章作为正文,从头开始介绍迭代器并且阐述了两种迭代器的区别,还分别用 MoonBit 实现了算法和两种迭代器。 本周 CAIMEOX 在 Community-Blog 编写了一篇文章 Derive Iteration from Recursion,从例子入手详细探讨了 defunctionalize 的概念及其在 MoonBit 的实现。 2. Weekly2 社区周报 2025/4/7 ~ 2025/4/13 [weekly/weekly2]
2.1. 本周官方重要动态 [weekly/weekly2/official]
2.2. 本周社区新增优质项目 [weekly/weekly2/projects]
2.3. 本周社区新增优质包 [weekly/weekly2/packages]
2.4. 本周社区动态 [weekly/weekly2/community]
这里是 2025/4/14 ~ 2025/4/27 的社区周报,为双周周报。 过去的两周之内社区涌现了大量的项目和包,基础设施建设趋近完善。 Meetup 成都站 4 月 26 日,MoonBit 成功在四川成都集火实验室举办 Meetup!本次活动聚焦AI 时代下的基础软件,邀请了多位行业专家,共同探讨前沿技术与发展趋势。 活动议程精彩纷呈,四位专家带来了精彩的技术分享: 本次活动不仅展示了 MoonBit 的最新技术进展,也为社区成员提供了深入交流的平台,现场观众提出的精准问题引发了广泛讨论,促进了开发者社区的活跃互动与技术共享。 MoonBit 官方在 4.21 发布了一次官方周报,主要聚焦在语言更新方面: 在前端开发领域,MoonBit 语言正掀起一股革新浪潮。受 Elm 纯函数式架构启发,MoonBit 打造出 Rabbit-TEA 前端框架,凭借单向数据流与强类型检查,彻底告别运行时异常,让 Web 应用开发既简洁又健壮。 MoonBit 凭借模式匹配、不可变变量等特性,大幅优化编码体验。与 JavaScript 对比,MoonBit 代码精简且逻辑清晰,尤其在复杂业务处理时优势尽显。其编译器支持多后端输出,涵盖 JavaScript、WebAssembly 及 native,应用前景广阔。 Rabbit-TEA 采用经典 TEA 架构(Model、View、Update),通过消息驱动应用状态更新。开发计数器应用只需定义状态模型、消息类型和更新逻辑,框架自动处理视图更新,开发效率成倍提升。其 HTML EDSL 通过类型提示避免字符串滥用,减少潜在错误。 在副作用管理上,Rabbit-TEA 借鉴 Elm 的 Cmd 类型封装外部交互操作,确保运行时状态一致性。无论是 HTTP 请求还是浏览器 API 调用,都能通过 Cmd 安全管理。 得益于 MoonBit 的全局 DCE 优化,Rabbit-TEA 应用体积极小,计数器应用仅 33KB,性能优于主流框架。MoonBit 团队已用其重写包管理网站 mooncakes.io,并持续探索更多前沿特性,如服务端渲染与时间旅行调试。 Web 开发新时代已至,MoonBit 与 Rabbit-TEA 为前端开发注入全新活力! 3. Weekly3 社区周报 2025/4/14 ~ 2025/4/27 [weekly/weekly3]
3.1. 本周官方重要动态 [weekly/weekly3/official]
async
函数采用新语法 f!(..)
,原 f!!(..)
将触发警告。trait
,旧方法仍可用但会收到编译器警告,迁移仅需将 op_xxx
改为对应 trait
的 impl
。trait
方法默认实现:新增 = _
标记,提升源码可读性。String
类型转换:现支持隐式转为 @string.View
,并恢复 [:]
取完整 view。Core API
改动:@string
包参数类型迁至 @string.View
,返回值类型相应调整。.mbt.md
文件 debug 断点设置,moon.mod.json
新增构建脚本字段。 3.2. 本周社区新增优质项目 [weekly/weekly3/projects]
3.3. 本周社区新增优质包 [weekly/weekly3/packages]
3.4. 本周社区动态 [weekly/weekly3/community]
这里是 2025/4/28 ~ 2025/5/11 的社区周报,为双周周报。 4. Weekly4 社区周报 2025/4/28 ~ 2025/5/11 [weekly/weekly4]
4.1. 本周官方重要动态 [weekly/weekly4/official]
Trait
的实现方式将只支持通过 impl T for A ...
对类型 A
显式实现 trait T
;_
作为待定参数占位符以简化匿名函数的创建;fnalias
支持给类型和 trait
的方法创建别名;#internal
attribute,用于为 public API 的外部用户提供警告;loop
中可能产生歧义的 loop argument 的使用方式新增了警告;Array
到 ArrayView
类型、Bytes
到 @bytes.View
类型的隐式类型转换;moon
支持 bench
子命令,用于执行基准性能测试。
4.2. 本周社区新增优质项目 [weekly/weekly4/projects]
4.3. 本周社区新增优质包 [weekly/weekly4/packages]
4.4. 本周社区动态 [weekly/weekly4/community]
这里是 2025/5/12 ~ 2025/6/15 的社区周报,为四周周报。 Moonbit 官方在 5 月 19 号发布了一次官方周报,主要进行了语法更新和工具链更新: MoonBit 插件双更新!
MoonBit 编程语言实现重大突破,现已全面支持 JetBrains 开发环境与 LeetCode 答题平台,打通了从工程实战到算法训练的学习与实用闭环。 MoonBit 推出虚拟包特性,开发灵活性大幅提升!
MoonBit 编程语言又添新特性 —— virtual package!通过将包声明为虚拟包,用户可选择具体实现,若不指定则使用默认实现,极大地分离了接口与实现,开发灵活性直线上升。 MoonBit 官方开启了新活动 Pearls 征稿活动,具体可以查看活动链接。而且已经发出了第一篇 Pearls 文章 使用 MoonBit 编写 Pratt 解析器。文章内容在 Github 仓库 moonBit-pearls 中同样可以查看。 MoonBit 亮相美国,发表主旨演讲!🌍
2025 年 6 月 13 号,Moonbit 在国际顶级编程大会 LambdaConf 发表了关于异步编程的主旨演讲,更将与 Jai 编程语言创始人、独立游戏大师 Jonathon Blow 等技术大咖同台交流。 特别值得一提的是:GolemCloud 创始人 John A De Goes 在 WASM I/O 上盛赞 MoonBit,并表示将在即将到来的 LambdaConf 黑客松中亲自使用 MoonBit! MoonBit 创始人张宏波老师在 Github 开源了演讲的相关内容 moonbit-lambdaconf 仓库中。 5. Weekly5 社区周报 2025/5/12 ~ 2025/6/15 [weekly/weekly5]
5.1. 本周官方重要动态 [weekly/weekly5/official]
..
调用链末尾自动丢弃值语义变更:在 .
/..
调用链末尾的最后一个 ..
以后会自动丢弃它的值,但这也意味着直接使用 x..f()
的值的用法将会被废弃,需要显式保存 x
。@bytes.View
和 @string.View
在 C 和 wasm1 后端现在会被编译成值类型,减少内存分配,性能有较大提升。
5.2. 本周社区新增优质项目 [weekly/weekly5/projects]
5.3. 本周社区新增优质包 [weekly/weekly5/packages]
str.format
的设计。 5.4. 本周社区动态 [weekly/weekly5/community]
这里是 2025/6/16 ~ 2025/6/22 的社区周报,为一周周报。在本周中 MoonBit 语言正式进入了 Beta 版本,是一个巨大的里程碑。 Moonbit 官方在 6 月 16 号发布了一次官方周报,本次是 beta 版本之前的最后修改,意味着语法即将进入稳定阶段。更新内容有: 用于表示错误的 定义错误类型的语法 对于函数, typealias/traitalias 语法更新:改用 废弃多参数 显式实现特征(Trait)新规:即使有默认方法也需 废弃外部类型 虚拟包支持抽象类型:接口声明,多实现可自定义类型。 新增保留字警告:未来可能成为关键字。 新增了箭头函数语法 矩阵函数功能被废弃,以精简语法。形如 之前,可以使用 对于一些比较模糊/不够广为人知的运算符优先级组合,例如 新引入了 等号右手侧只能是函数形式的值,比如匿名函数或者箭头函数,之前使用 利用新的错误多态功能,标准库中的许多高阶函数如 MoonBit 在 2025 年 6 月 13 日至 15 日,分别先后亮相两大重量级科技盛会:香港科技大学(广州)主办的第三届 INNOTECH 创科嘉年华,以及 msup(麦思博)主办的第十二届 GIAC 全球互联网架构大会。在 GIAC 大会上,IDEA 研究院基础软件中心首席科学家、MoonBit 平台负责人张宏波在本次大会中带来了《AI 编程在 MoonBit 上的垂直整合》主题演讲。 2025 年 6 月 18 日,CSDN 官方公众号发表了一篇题为《20 年磨一剑,国内首个工业级编程语言进入 Beta 版本》的文章,介绍了 MoonBit 的最新进展。同时也标志着 MoonBit 正式进入 Beta 版本。 MoonBit 官方的 Pearls 系列文章更新了第二篇文章 《MoonBit Pearls Vol.02:MoonBit 中的面向对象编程》,由 MoonBit 官方同学刘子悦执笔,通过一个生动的 RPG 游戏开发的例子,带领读者探索了 MoonBit 中的面向对象编程。 6. Weekly6 社区周报 2025/6/16 ~ 2025/6/22 [weekly/weekly6]
6.1. 本周官方重要动态 [weekly/weekly6/official]
!
语法被替换为关键字 raise
,用于表示错误。type! T ..
改为 suberror T ..
,通过格式化工具可以自动完成迁移。f!(..)/f?(..)
的语法即将被废弃,函数的类型参数语法也从 fn f[..](..)
改为 fn[..] f(..)
。as
替代 =
,这一改动也可以通过格式化工具自动完成迁移。loop
,改用元组参数以保持与 match
一致。类似多参数的 loop
需求应该替换为元组,该改动保证了模式匹配的一致性。impl
。如果没有需要提供自定义实现的方法,可以用 impl Trait for Type 来表示 “给 Type 实现 Trait,但所有方法都用默认实现”。impl
的点调用,改用本地方法扩展。该改动比较复杂,我们引用周报原文:
之前,给外部类型的 impl
可以在当前包内用 .
调用。但这一功能是不重构安全的:上游新增方法会改变下游代码的行为。因此,我们决定废弃这一行为。作为替代,MoonBit 支持了局部地给外部类型定义新方法的功能,语法和普通的方法定义一样。这些给外部类型定义的方法有如下特点:
pub
的。这是为了保证跨包协作时不会产生冲突。x.f(..)
的解析规则变为(优先级从高到低):x
的类型所在的包的方法x
的类型所在的包的 impl
Json
字面量自动调用 ToJson::to_json
,编写更便捷。let x = 42
// 之前
let _ : Json = { "x": x.to_json() }
// 现在
let _ : Json = { "x": x }
(..) => expr
,能极大简化简单匿名函数:test {
let arr = [ 1, 2, 3 ]
arr
.map(x => x + 1) // 只有一个参数时可以省略括号
.iter2()
.each((i, x) => println("\{i}: \{x}"))
}
fn { .. => expr }
的矩阵函数可以改为箭头函数,其他矩阵函数应改为显式的 fn
和 match
。xx._
语法来将 new type 转化为其实际表示。但这一语法和 partial application 语法(_.f(..)
)过于相似,有视觉歧义。因此,xx._
语法被废弃,相应的,编译器会给每个 new type 自动生成一个 .inner()
方法,代替原本的 ._
。这一改动可以通过格式化代码自动完成迁移。<<
和 +
,MoonBit 现在会产生警告。手动或者通过格式化代码加上括号来明确计算顺序即可消除警告。letrec
和 and
关键字用于声明 local 互递归函数,比如:fn main {
letrec even = fn (x: Int) { ... } // anonymous function
and odd = x => ... // arrow function
}
fn
声明的隐式互递归写法会被 deprecated,不过自递归函数依然可以用 fn
进行声明。fnalias
不再能用于创建非函数值的别名。对于非函数类型的值,可以用 let 来创建别名。Array::each
现在可以接受带错误的回调函数了。main
包测试支持:moon test
运行测试,moon run
执行主程序(此前 main
包中禁止编写测试)。IDE codelens
支持运行文档中的测试。moon test
和 moon check
现在默认会包含文档中的测试。 6.2. 本周社区新增优质项目 [weekly/weekly6/projects]
6.3. 本周社区新增优质包 [weekly/weekly6/packages]
6.4. 本周社区动态 [weekly/weekly6/community]
这里是 2025/6/23 ~ 2025/6/29 的社区周报,为一周周报。 MoonBit 官方开源了官网 moonbitlang.cn 的源代码 website,未来社区成员可以参与 MoonBit 官网的建设了。 MoonBit 官方创建了一个新仓库 moonbit-evolution,后续 MoonBit 所有用户可见的改动,都会在仓库中说吗,使得 MoonBit 的发展更加透明,用户可追踪。用户也可以在仓库中讨论和提出提案,象征着 MoonBit 的社区写作文进入新阶段。 MoonBit 官方在 6.24 发布对 MoonBit 编程语言创始人张宏波的访谈,围绕 MoonBit 的设计理念、发展历程、核心特点及行业思考展开,核心内容如下: MoonBit 简介 “AI 原生”的体现及设计决策 与 AI Coding 工具的对比及团队 AI 使用情况 MoonBit Beta 版及生态策略 生态冷启动策略:通过支持编译到 C 代码,实现与 Python 生态的复用,可直接调用 Python 成熟库,提供渐进式迁移路径。 创始人张宏波的技术历程 对行业的思考与建议 7. Weekly7 社区周报 2025/6/23 ~ 2025/6/29 [weekly/weekly7]
7.1. 本周官方重要动态 [weekly/weekly7/official]
let x = 3
而非类似 Go 语言的x := 3
,let
关键字为 AI 提供明确的“新变量声明”信号,减少歧义。
7.2. 本周社区新增优质项目 [weekly/weekly7/projects]
7.3. 本周社区新增优质包 [weekly/weekly7/packages]
7.4. 本周社区动态 [weekly/weekly7/community]
这里是 2025/6/30 ~ 2025/7/6 的社区周报,为一周周报。 8. Weekly8 社区周报 2025/6/30 ~ 2025/7/6 [weekly/weekly8]
8.1. 本周官方重要动态 [weekly/weekly8/official]
8.2. 本周社区新增优质项目 [weekly/weekly8/projects]
8.3. 本周社区新增优质包 [weekly/weekly8/packages]
8.4. 本周社区动态 [weekly/weekly8/community]