在编程语言领域,六七十年代日本主要是把COBOL,PL/I等编程语言做深度本地化;后来搞第五代计算机,主推Prolog(逻辑编程)。
到了九十年代,日本嵌入式开发很发达,主要用C语言,但是也诞生了像Ruby 这样的互联网编程语言,被Ruby on Rails带火后,流行一时,也是亚洲唯一一个进入到权威编程语言流行度排行前十的编程语言。
AI时代,日本程序员 Takato Honda 推出了一门叫做 “Sui”(粋)的编程语言,想解决大语言模型(LLM)编写代码的准确性问题,宣称能让 LLM 以100% 的准确率生成代码,引起了不少人的关注。
让人意外的是,在技术氛围浓厚的日本,来自中国的一门叫MoonBit(月兔)的编程语言,走进了日本开发者社区的大门,引发了一场热烈讨论。
![]()
0 1
MoonBit 月兔闯入日本技术圈
其实早在去年4月,MoonBit 就在日本技术圈“火”过一把。
当时大V @mizchi 在 日本开发者社区 Zenn 上发了一篇文章《MoonBit 是 WebAssembly 时代的最佳编程语言》,力挺 MoonBit,当天就成了平台的大热门。
大家讨论最深的是它对 Wasm-GC 的深度定制,以及像“省略结构体逗号”这种极简但好用的语法细节。那段时间,Twitter上的日本开发者几乎都在聊它。
更难得的是,一年多过去了,MoonBit 在日本社区不只是“出道即巅峰”,其热度至今依然非常稳健且活跃。
![]()
看看几位日本开发者的具体评价吧:
@matte:“在使用MoonBit时感受到了类似Rust的体验,同时还有GC支持。”
@maguro:“如果Go语言的语法能像MoonBit那样,我会觉得编写起来更加容易,因为MoonBit具有求和类型、模式匹配和默认不可变等特性。”
@ mattn:我很久没用过MoonBit了,但它似乎还不支持 Wasi。如果支持的话,我觉得它可能会占据主导地位。
@ jnst:MoonBit看起来不错。它的工具链和生态系统几乎不需要任何隐式领域知识,并且拥有大量的参考实现。如果它是一种原生人工智能编程语言,那么在未来的某个阶段,自主人工智能的开发总量很可能会超过人类的开发总量。那些押注 MoonBit 的人或许正在展望一个它在 3-5 年内占据主导地位的世界。
@ t3tra # type: ignore:MoonBit 与我想要创建的语言非常接近,它是强力的竞争对手
在日本的技术社区,也已经有人通过撰写 MoonBit的付费文章赚钱:
![]()
0 2
实现最强 Markdown 编辑器
MoonBit 在日本的爆火,不仅仅限于口头讨论热烈,还有不少人在用它进行实战,开发各种项目,比如前面提到的mizchi,他用MoonBit打造了一个Markdown编辑器,不但可以处理大量内容,运行速度还快得惊人。
![]()
传统Markdown编辑器(以及一般的文本编辑器)的一个问题是:每次用户输入内容后,都需要重新解析整个文本。
为了保持 60fps 的帧率,需要在 16 毫秒内解析并显示整个文本;而要达到 120fps,则需要在 8 毫秒内完成。这是一件不容易的事情,尤其是随着文本的逐渐增大,性能会线性下降。
而mizchi则采用了一种“增量式”的方法,让解析的复杂度接近O(1),即使文档内容达到20,000 个字符,也没有出现显示延迟,帧率始终保持在60fps。
这是一个纯粹的 MoonBit 实现,不使用 FFI,因此可以在任何环境中作为库使用,包括 js/wasm/native。
为了测试性能,作者拿它和其他知名的Markdown编辑器做了对比。
1、与不同库的比较
作者准备了小、中、大三种尺寸的文档,并将它们与MoonBit 官方实现的 cmark 和 Rust 实现的 markdown-rs 进行比较。
![]()
它比markdown-rs快不少,但可惜的是,没能超越 cmark(不得不说,官方的实现还是挺厉害啊)。
2、增量解析基准测试
这是最主要的测试。当你在编辑器中编辑一个字符时,测量每个解析器需要多少微秒。
![]()
mizchi/markdown 的增量解析大约只需 10μs 即可完成,与文档大小无关。
比较一份包含100段的文档:
mizchi/markdown(增量):10 微秒
rami3l/cmark(完整版):433 微秒 → 慢了 43 倍
markdown-rs(完整版):3674 微秒 → 慢 367 倍
对于完整解析,cmark 速度最快;但对于编辑器中的实时预览,增量解析则完胜。
随着文档长度的增加,这种优势会更加明显,而增量解析的计算复杂度接近 O(1)。
mizchi说这是他人生第5次实现Markdown编辑器,也是速度最快的一次,他认为对于有TypeScript和Rust使用经验的人来说,MoonBit是最佳的语言。
MoonBit允许你选择运行的平台(js,native,wasm),使用TypeScript很难做到,而MoonBit恰到好处的抽象,可以让你进行高级描述,不但适合系统编程,也适用应用层编程,这比Rust好很多,Rust经常出现生命周期和底层二进制操作被隐藏起来的情况。
试用一下:
https://markdown.mizchi.workers.dev/
GitHub:
https://github.com/mizchi/markdown.mbt
npm:
https://www.npmjs.com/package/@mizchi/markdown
0 3
Luna UI 框架
MoonBit 的优势,并不只是体现在“解析器”这种偏底层的算法问题上,在实时交互型UI上,也表现得异常稳定。
Luna UI 是另外一个用MoonBit写的项目,这是一个高速的响应式UI框架,体积小巧,无需编译时优化。
作者mizchi用过各种UI库,总是觉得无法完全满足自己的需求,决定创造属于自己的东西。
Luna UI有这样的特点:
轻量级运行时,方便移植
使用Signal进行精细化响应
体积小到无需编译时优化
支持 WebComponents SSR + Hydration
这是一个用于Luna性能测试的射击游戏:

注意:这不是 HTML Canvas,而是一个 100x100 的 DOM,它会在每一帧实时重写。
用开发者工具测试时,几乎没有 JS 加载,帧率保持在 60 FPS,在智能手机上测试时也很流畅。
![]()
当作者尝试使用 React 实现类似功能时,帧率只达到了12 FPS 左右,和Luna相差甚远。
射击游戏的Luna源码也仅仅有6.4K左右,充分体现了Luna和MoonBit的优势:体积小巧,性能强悍
传送门:
https://github.com/mizchi/luna.mbt/tree/main/src/examples/game
0 4
总结
MoonBit 在日本技术圈持续受到关注,其实也在映射一个更大的变化:底层技术,已经不再只是美国或欧洲的“专利”了,中国同样开始在这一层面上拿出有竞争力的创新。
凭借高性能运行时、简洁的语法设计,以及对 AI 场景的天然友好,MoonBit 让开发者可以在 WebAssembly、原生或跨平台环境中,兼顾性能与开发体验。这种“把复杂度留给工具,把简单留给人”的思路,正好踩在当下工具链演进的节奏点上。
可以预期,在未来三到五年里,MoonBit 以及一批类似的底层语言和工具,会持续影响开发者对“代码应该怎么写”的理解。而 MoonBit 能够被日本开发者社区反复讨论、认真验证,本身就说明中国的底层技术正在变得越来越成熟。
至于 MoonBit 会不会成为“最好的语言”,时间自会给出答案。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.