找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

4163

积分

0

好友

581

主题
发表于 19 小时前 | 查看: 3| 回复: 0

在编程语言的发展历程中,日本技术圈有其独特的轨迹。上世纪六七十年代,日本主要深耕于COBOL、PL/I等语言的深度本地化;之后在第五代计算机计划中,又主推了Prolog这类逻辑编程语言。

进入九十年代,日本的嵌入式开发蓬勃发展,C语言是主力,但也孕育出了像Ruby这样的互联网编程语言。随着Ruby on Rails框架的流行,Ruby一度风靡全球,成为亚洲唯一进入权威编程语言流行度排行榜前十的语言。

到了AI时代,日本程序员Takato Honda推出了一门名为“Sui”(粋)的编程语言,旨在解决大语言模型编写代码的准确性问题,号称能让LLM以100%的准确率生成代码,这也吸引了不少目光。

然而,一个颇有意思的现象是,在技术氛围浓厚的日本,一门来自中国的编程语言——MoonBit(月兔),正悄然走进日本开发者社区,并引发了持续而热烈的讨论。

描绘MoonBit进入日本技术圈的科技感插画

MoonBit 月兔如何闯入日本技术圈?

其实早在去年4月,MoonBit 就在日本技术圈掀起过一阵热潮。

当时,日本开发者大V @mizchi 在技术社区 Zenn 上发表了一篇题为《MoonBit 是 WebAssembly 时代的最佳编程语言》的文章,大力推介 MoonBit,该文当天就成了平台的热门话题。

大家讨论的焦点主要集中在它对 Wasm-GC 的深度优化支持,以及像“省略结构体字段间的逗号”这类既简约又实用的语法细节上。那段时间,日本开发者们在社交媒体上几乎都在谈论它。

更难得的是,一年多时间过去了,MoonBit 在日本社区并没有“昙花一现”,其热度至今依然保持着稳健且活跃的态势。

日本开发者社区关于MoonBit的讨论截图

让我们看看几位日本开发者的具体评价:

  • @matte:“在使用MoonBit时感受到了类似Rust的体验,同时还有GC支持。”
  • @maguro:“如果Go语言的语法能像MoonBit那样,我会觉得编写起来更加容易,因为MoonBit具有求和类型、模式匹配和默认不可变等特性。”
  • @mattn:“我很久没用过MoonBit了,但它似乎还不支持Wasi。如果支持的话,我觉得它可能会占据主导地位。”
  • @jnst:“MoonBit看起来不错。它的工具链和生态系统几乎不需要任何隐式领域知识,并且拥有大量的参考实现。如果它是一种为AI而生的编程语言,那么在未来的某个阶段,AI自动生成的代码总量很可能会超过人类。那些押注MoonBit的人或许正在展望一个它在3-5年内占据主导地位的世界。”
  • @t3tra#type:ignore:“MoonBit与我想要创建的语言非常接近,它是个强力的竞争对手。”

在日本的技术社区,甚至已经有人通过撰写关于MoonBit的付费技术文章或电子书来获得收益:

关于MoonBit的日本技术同人志销售信息截图

实战:用 MoonBit 实现高性能增量 Markdown 编译器

MoonBit 在日本的流行,不仅停留在口头讨论,更体现在大量的实践项目中。例如前面多次提到的开发者 mizchi,他就使用 MoonBit 打造了一款性能惊人的 Markdown 编辑器,能够流畅处理大量内容。

DEV社区上关于MoonBit增量Markdown编译器的文章截图

传统Markdown编辑器(以及多数文本编辑器)面临一个共同问题:每次用户输入后,都需要重新解析整个文档

为了保持60fps的流畅度,解析和渲染必须在16毫秒内完成;要达到120fps,则时间需缩短至8毫秒。这非常具有挑战性,尤其当文档体积增大时,性能损耗会线性上升。

而 mizchi 采用了“增量式”解析方法,使解析的复杂度接近O(1)。即使文档内容达到20,000个字符,也几乎不会出现显示延迟,帧率能够稳定维持在60fps。

这是一个纯 MoonBit 的实现,没有使用外部函数接口(FFI),因此可以作为库在任何环境中使用,包括 JavaScript、WebAssembly 或原生环境。

为了验证性能,作者将其与其他知名的 Markdown 解析器进行了对比。

1. 与不同解析库的基准测试

作者准备了小、中、大三种尺寸的文档,将他的实现(mizchi/markdown)与 MoonBit 官方实现的 cmark (rami3l/cmark) 以及 Rust 实现的 markdown-rs 进行比较。

不同Markdown解析器的性能对比表格

测试结果显示,它比 markdown-rs 快不少,但未能超越官方的 cmark 实现。

2. 增量解析性能测试

这是最核心的测试。测量在编辑器中键入一个字符时,不同解析器所需的处理时间(微秒级)。

增量解析与全量解析的性能对比表格

mizchi/markdown 的增量解析耗时仅约 10μs,且与文档大小无关

以一份100段的文档为例:

  • mizchi/markdown(增量):10 微秒
  • rami3l/cmark(全量):433 微秒 → 慢了43倍
  • markdown-rs(全量):3674 微秒 → 慢了367倍

对于一次性完整解析,cmark 速度最快;但对于编辑器实时预览这种场景,增量解析的优势是碾压性的。随着文档长度增加,这种优势会愈发明显,因为增量解析的计算复杂度接近常数级。

mizchi 表示,这是他人生中第五次实现 Markdown 编辑器,也是速度最快的一次。他认为,对于拥有 TypeScript 和 Rust 经验的开发者来说,MoonBit 是一个极佳的选择。

MoonBit 允许开发者自由选择运行平台(JS、Native、Wasm),这是使用 TypeScript 难以做到的。同时,它恰到好处的抽象层次,支持高级描述,既适用于系统编程,也适合应用层开发,这一点比 Rust 体验更好,因为 Rust 中生命周期和底层二进制操作等问题时常会暴露出来,增加心智负担。

项目试用与资源

  • 在线体验:https://markdown.mizchi.workers.dev/
  • GitHub 仓库:https://github.com/mizchi/markdown.mbt
  • npm 包:https://www.npmjs.com/package/@mizchi/markdown

探索前沿:用 MoonBit 构建高性能 Luna UI 框架

MoonBit 的优势不仅体现在解析器这类偏底层的算法上,在需要高实时性的交互式UI领域,它同样表现卓越。

Luna UI 是另一个使用 MoonBit 编写的项目,这是一个高速的响应式 UI 框架,特点是体积小巧,无需复杂的编译时优化。

作者 mizchi 因长期使用各种 UI 库却总觉不尽如人意,遂决定自己动手创造。Luna UI 具备以下特点:

  • 轻量级运行时,易于移植到不同平台。
  • 使用 Signal 机制实现细粒度响应。
  • 体积极小,无需编译时优化。
  • 支持 WebComponents、服务端渲染 (SSR) 和混合渲染 (Hydration)

为了测试 Luna 的性能,作者专门开发了一款射击游戏作为基准测试:

使用Luna UI框架开发的基准测试游戏界面

请注意:这并非基于 HTML Canvas,而是一个由 100x100 个 DOM 元素构成的界面,每一帧都会实时重写

使用浏览器开发者工具进行性能分析时,几乎看不到 JavaScript 负载,帧率稳定在 60 FPS,在智能手机上测试也同样流畅。

Luna游戏应用的性能分析时间轴截图

作为对比,当作者尝试使用 React 实现类似功能时,帧率仅能达到 12 FPS 左右,与 Luna 的表现相去甚远。

这款射击游戏的 Luna 源码大小仅在 6.4KB 左右,充分体现了 Luna 框架与 MoonBit 语言结合后的核心优势:体积小巧,性能强悍

项目传送门
https://github.com/mizchi/luna.mbt/tree/main/src/examples/game

总结与展望

MoonBit 在日本技术圈的持续走红,折射出一个更大的趋势:在编译器、运行时等底层技术领域,创新不再仅仅是美国或欧洲的专属,中国也开始涌现出具有全球竞争力的作品。

凭借其高性能的运行时、简洁现代的语法设计,以及对 AI 和 WebAssembly 场景的天然亲和力,MoonBit 让开发者能够在 WebAssembly、原生或跨平台环境中,更好地平衡性能与开发效率。这种“将复杂性封装于工具,将简洁留给开发者”的理念,恰好契合了当前开发工具链演进的主流方向。

可以预见,在未来三到五年内,MoonBit 以及类似的新生代底层语言和工具,将持续影响开发者对“如何高效编写代码”的认知。而 MoonBit 能够被以严谨著称的日本开发者社区反复讨论、认真验证并投入实践,这本身就表明,源自中国的底层技术创新正在变得越来越扎实和成熟。

至于 MoonBit 最终能否成为开发者心目中的“那个最佳选择”,时间会给出答案。但毫无疑问,它已经在全球技术版图上,尤其是在像云栈社区这样关注前沿实践的开发者社群中,划下了属于自己的一笔。




上一篇:AI编程如何化解本质与偶然复杂性?从软件工程经典《人月神话》谈起
下一篇:C++虚函数实现原理与演进历史:从C语言函数指针到vtable
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-3-6 22:13 , Processed in 0.404858 second(s), 42 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表