导读:本文为大家介绍一款新的国产编程语言MooBit,月兔语言。它的作者准备在语言的关键字上加上中文的支持。
历史以来并不乏中文语言编程。在二十年前,有大连吴涛的“易语言”,还有很类似的中文语言推出,有针对于少儿编程,也有的专注于特定行业,有的尚还存在,有的已经泯灭在代码丛中。
而MoonBit(月兔)语言目前并非中文式编程,它是中国开发者团队创建的英文编程语言,是由粤港澳大湾区数字经济研究院(IDEA 研究院)基础软件中心负责人张宏波领导团队开发。
值得一提的是,作者张宏波本人不仅为多种编程语言做出了贡献,包括 OCaml、ReScript(原 ReasonML/BuckleScript)和 Flow,还曾是 Rescript 语言工具链几乎所有关键组件的作者,包括高速编译器、标准库以及构建系统等。
此编程语言一经推出,曾在HackNews上一度登上了头条。
MoonBit不仅包括了通用程序语言设计,还涵盖了编译器、构建系统、集成开发环境(IDE)、部署工具等各个方面。
以下是它的官网部分截图。
从团队介绍上看,这个设计较全面的语言能够实现高度垂直整合,从而为用户提供了更出色的开发体验和性能,致力打造未来世界级的基础软件生态。
MoonBit 语言优势
-
生成与现有解决方案相比显著更小的 WASM 文件
-
更高的运行时性能
-
先进的编译时性能
-
简单但实用的数据导向语言设计
相比于主流编程语言,Moonbit 具备后发优势,如基于 Webassembly 设计同时支持多后端,生成代码的性能高、体积小。Moonbit 还具备高效的增量式代码解析和类型检查;多范式编程,函数式内核 + OOP 风格;多层次的中间代码优化;低延迟的智能化 IDE 等特性。
下一步,Moonbit 计划新增 Trait system,高效稳健的内存管理和垃圾回收机制等机制,完善标准库 + 生态,提供更好的 FFI 调用机制,结合 AIGC 技术等。
语言开发团队表示,Moonbit现在已经累计5000次提交语言特性MVP版本的已经基本完成(范型+ad-hoc的范型,高阶函数,类型推倒,模式匹配)。Moonbit的目标是尽可能多的工业用户(云计算/边缘计算),在语言特性上尽量对标主流工业语言。团队希望在代码安全,编译性能,运行性能,工具链,跨平台性上实现突破,实现后发优势。
友情提示,Moonbit 文档地址在https://github.com/moonbitlang/moonbit-docs。
下面是用 MoonBit 语言实现 fib 函数的示例代码:
/// Calculate the nth Fibonacci number using recursion and pattern matching.
fn fib(n : Int) -> Int {
match n {
0 => 0
1 => 1
_ => fib(n - 1) + fib(n - 2)
}
}
/// Calculate the nth Fibonacci number using **loop** and pattern matching.
fn fib2(num : Int) -> Int {
// Moonbit will convert recursion to loop automatically
fn aux(n, acc1, acc2) {
match n {
0 => acc1
1 => acc2
_ => aux(n - 1, acc2, acc1 + acc2)
}
}
aux(num, 0, 1)
}
fn init {
println(fib(3))
println(fib2(46))
}
需要增加中文关键字支持吗?
近日,作者张宏波在知乎上发表提问:《MoonBit 国产编程语言提供中文关键字的可能性?》,希望收集一些关于为 MoonBit 提供中文关键字支持的反馈,主要是有两方面考虑:一是支持中文关键字从社区来说会带来什么潜在的负面作用?另外就是了解下真实的中文编程用户有多少。
张宏波如此提问道:
对于专业人士来说,中文确实不是学习编程的主要难点,但是从讨论热烈的程度来说,好像对一部分人来说或多或少是个门槛。从技术实现来讲,可能就是一个上午就能大概支持了。
我提这个问题是想从两方面收集一些反馈:一方面是支持中文关键字从社区来说会带来什么潜在的负面作用?另一方面是了解下真实的中文编程用户有多少,你会因问 MoonBit 支持中文关键字而更多地使用或者推荐给其他人吗?
谢谢您的反馈!
针对于他的提问,人们似乎对中文关键字持怀疑态度,还有一部分编程语言是支持中文,至少是支持变量名,也会出现诸如半全角的问题,还有拼写的便利性等考量。
一位叫韩朴宇的网友回答:
我建议不要单纯做中文编程, 而是直接面向i18n编程。比如支持unicode标识符,这个大部分编程语言都支持, moonbit也支持。
为文档注释提供i18n功能。比如最基础的, 提供多种语言的文档注释, 在用户使用时只显示用户的语言。
吴烜:
从描述来看,似乎当下的月兔用户群体并未表现出用非英文母语编程的强烈需求。从保障基本盘的角度看,在短期内进行的完善也许效费比更大。常用API和语言的反馈信息和使用文档的术语、风格一致化等改进可以用英文实现,并不需立刻进行本地化。
另一位网友瞎想符式回答:
潜在的负面作用:中文编程这个词的名声已经彻底毁掉了,现在在知乎上提个中文编程的问题,能先看一眼题主所说的是哪种中文编程并心平气和以较为积极的态度参与讨论的人(不管是支持还是反对)已经不多了。在路过的不明就里的程序员眼里,一门国产的编程语言提供中文关键字几乎就是这门语言只会搞营销没真东西的代言词。
这门可爱语言的面世到现在已经有一段时间,我们期待它有一个更好的发展和生态,让使用它的开发者能够赚得到钱。
对于月兔语言的发展和中文化,大家怎么看?可以在文底留言。
知乎相关问答地址:
https://www.zhihu.com/question/632589892