前端大咖mizchi不满Rust、TypeScript却爱上MoonBit

大家好,我是 MoonBit记者陈随易,今天给大家分享MoonBit生态贡献者 mizchi 和他的 js.mbt

mizchi 是一名日本前端运维雇佣兵,是 Node.js 和 React 方面的专家,同时也是一个自由职业者。

他主要做的事情就是帮助客户解决前端性能问题,解决前端运维方面的疑难杂症。

在不满Rust过于底层,也不满于TypeScript/JavaScript太动态,不稳定的前提下,MoonBit恰到好处地解决了他在编程语言口味和习惯上的一些要求,并由此创建了一个MoonBit到JS的绑定库js.mbt

下面就分享他对于编程语言的一些思考和抉择,以及js.mbt项目的作用和场景。

对于选择MoonBit,mizchi认为MoonBit解决了大部分他对于TypeScript的不满,在他看来,MoonBit有如下优势或特点:

  • Rust 风格的语法 静态类型 函数式语言
  • 模式匹配
  • 表达式导向 if match for-else 都是表达式
  • F# 风格的管道语法
  • 显式的副作用控制
  • 可作为代数数据类型使用的 enum
  • 通过 LSP 进行的补全与重构
  • 明确的异常处理
  • 异步处理(async)支持
  • 内置 JSON 类型 / JSON 模式匹配
  • 可选择 wasm/js/native/llvm 的后端
  • 内置测试运行器/快照
  • 生成代码体积小!

对于他来说,生成的代码体积小是最令人开心的事情,用 Moonbit 写 npm 库也变得现实。

在他看来,2025年的MoonBit与2024年的MoonBit相比,体感上面有了明显的进步:

  • 不再存在语言功能不足导致无论如何都写不出来的情况
  • LSP 工具链完善,拥有模式匹配和管道功能的语言都是顶尖的。
  • 尝试了 OCaml/Fsharp/Haskell,但只有 Moonbit 获得了与 TS(Node/Npm)/Rust(Cargo)同等级工具链的安心感

在AI大行其道的今天,MoonBit这种新兴语言,让他重新找回了编程的乐趣,也继续巩固了古法手工编程的硬实力,而不是被AI慢慢把编程实力瓦解。

js.mbt 就是他写的MoonBit到JavaScript/FFI的绑定,支持多种运行时和平台。

开源地址:https://github.com/mizchi/js.mbt

用法速览如下:

mbt 复制代码
// Create JavaScript objects
let obj = @js.from_entries([
  ("name", @js.any("Alice")),
  ("age", @js.any(30))
])

// Get property
let name = obj["name"]

// Set property
obj["age"] = @js.any(31)

// Call method
let result = obj._call("toString", [])

// Type casting
let age: Int = obj["age"].cast()

它在为 MoonBit 构建通往现实 JavaScript 世界的基础通道。

因为 JS 世界里大量能力都是对象式的、动态的、方法调用式的,如果没有这种桥接层,MoonBit 很难舒服地接入 JS 生态。

一门语言如果没有成熟的互操作层,就很难真的进入生产场景,而 js.mbt 在做的事情是:

  • 让 MoonBit 能调 JS
  • 让 MoonBit 能跑在主流 JS runtime 上
  • 让 MoonBit 能用 Web API / Node API
  • 让更高层 npm 绑定生态有基础可依赖

这类项目平时不一定最 显眼,但它往往是生态能不能长起来的关键零件。

它可以用来实现:

  • 用 MoonBit 写 Node.js 工具、CLI、脚本
  • 用 MoonBit 写浏览器端逻辑
  • 用 MoonBit 调用 Web 标准 API,做跨运行时开发
  • 作为更大 JS 生态绑定的基础层

从2022年到2026年,这是MoonBit发展的第4年,作为一门新兴的编程语言,其他语言4岁还在爬的时候,MoonBit已经实现了相当多的功能,包括了编译器、构建工具、包管理平台、异步编程、在线演练场、AI副驾驶、VSCode语言插件等等。

在官方和社区的推进下,相信今年在MoonBit生态方面,将会迎来井喷式的发展,并发挥出巨大的作用。

相关推荐
陈随易4 小时前
在Finch用了62亿词元,我认为这是新一代Agent工具之神
前端·人工智能·后端
水域安全老周4 小时前
水趣钓鱼救生衣专利拆解:两级锁紧如何解决落水人衣分离
java·前端·网络
计算机魔术师5 小时前
Anthropic CEO突然喊踩刹车,OpenAI罕见力挺:AI这辆车不能只踩油门了
前端
wing985 小时前
从codex转战workbuddy使用一周的感受
前端·人工智能·后端
EatFan5 小时前
Java接入支付宝 JSAPI 支付保姆教程(二):流程讲解与前后端代码讲解
前端·spring boot·后端·微信小程序·小程序·uni-app
梦想平凡6 小时前
百游棋牌源代码开发搭建教程(五):房间创建、座位分配与请求幂等实现
前端·javascript·数据库·源代码管理
步行cgn6 小时前
Spring 报错:No bean class specified on bean definition 的原因与解决
java·后端·spring
凤山老林6 小时前
Spring Boot 整合 Flowable 的企业级落地指南
数据库·spring boot·后端·flowable·工作流
苏三说技术6 小时前
Kafka已正式接入AI
后端
企业数字化笔记6 小时前
AI写的系统出现504怎么办?接口超时和数据库慢查询排查
数据库·后端