news 2026/4/25 10:45:37

为什么说MoonBit是AI时代的编程语言

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
为什么说MoonBit是AI时代的编程语言

MoonBit是2022年推出的全新的国产编程语言,而AI的能力被大众熟知,热度逐渐高涨,大概是从2023年开始的。

作为一个迎着AI发展而来的编程语言,MoonBit的设计者,创造者张宏波老师敏锐地捕捉到了AI时代即将到来的变革,决定从编程语言的底层设计架构上面,天然地与AI亲和,让我们在开发,使用,体验上面,有着与其他语言完全不同的感觉。

相信进行AI编程的小伙伴们应该深有同感,AI写的代码,一般需要反复沟通,反复确认,反复重构才能变成我们需要的样子,也就是说,AI编程在确定性和稳定性上面,有时候跟抽盲盒一样的感觉。

如果作为娱乐也就罢了,但写代码是工作,是生产力,这种不确定性持续上演,每天都在抽盲盒,整个人尤其心累。这也是我前两天发布了一篇文章,说AI写代码太累的原因。

MoonBit把写代码就像抽盲盒这个事情在语言设计,在底层架构,在开发体验上面就做了考虑和优化,进一步让我们与AI肩并肩,手牵手,写出更准确,更可靠,质量更高的代码。

接下来我们来看看,MoonBit哪些设计和特性,是AI友好的。

备注:以下仅为个人理解,如有错误,烦请指正。

顶层的“显式类型”约束

// 顶层函数:参数和返回值需要显式类型标注 fn add3(x : Int, y : Int, z : Int) -> Int { x + y + z } // 顶层绑定:通常需要显式类型标注(某些字面量可省略) let answer : Int = add3(10, 20, 12)

当然,这是很多静态语言都具备的类型标注能力,但MoonBit是必填的。

当然,这个类型必填也不是MoonBit独有的,但从跟AI亲和来说,确定性永远比模糊性更友好。

很多时候我都觉得AI在看代码,你明确标注了类型,那么它就很难看错,如果你不明确标注,虽然语言有推导,但AI看错,推导错误的可能性会更大。

丰富的测试功能

AI之前,我从来不写测试,也不了解测试,从业10年都没写过一个测试用例。

深度使用AI之后,测试用例写得比代码还多。

如全球装机量最多的Sqlite数据库的核心代码是15万行左右,测试代码足足有9000多万行,足以证明测试的重要性。

MoonBit提供了丰富的内联测试,外部独立文件测试,断言测试,快照测试,白盒测试(开发者角度),黑盒测试(使用者角度),让测试这个事情,不仅变得能用,而且还好用,实用。

fn fib(n : Int) -> Int { match n { 0 => 0 1 => 1 _ => fib(n - 1) + fib(n - 2) } } test { // 第一次可以不写 content,让工具跑出 diff;确认无误后用 -u 自动更新 inspect(fib(10)) }

举个例子,上面这个是快照测试,按照我的理解来说就是,一个东西,它长得像鸭子,叫声是鸭子,那它就是鸭子。

运行moon testinspect(fib(10))会在终端显示测试失败的diff信息,打印fib(10)的实际值是50

test { inspect(fib(10), content="55") }

如果你确认fib(10)的值是50,那么我们再次运行moonbit test --update,就会自动生成完整的快照测试断言,不用我们去先计算结果再来写预期的content值。

这是非常人性化的体验,那么内联测试,如上案例,代码和测试在一个文件中,还有_wbtest.mbt文件叫做白盒测试_test.mbt叫做黑盒测试。

总而言之,MoonBit把代码测试这个问题,做到了极致,不仅人更好写,AI也更好读,更好理解,这是真正的从底层的语言设计和架构上面就为AI提供了方便。

文档即代码

众所周知,Markdown是AI时代的语言,也是人与AI对话最简单,最方便的一种格式,MoonBit做到了代码即文档,文档即代码。

如上,是一个xxx.mbt.md文件,写法与普通的mrkdown没有任何差别,唯一不同的是,扩展名必须是.mbt.md

虽然只是文件名扩展名增加了一个mbt,但能力却大大增强了,可以直接在markdown文件中点击运行该测试,也可以在终端执行moon testmoon test xxx.mbt.md对文档中的MoonBit代码进行测试,十分方便且人性化。

与AI生态高度融合

在AI发展的过程中,不管是promptagents还是skill,甚至是专属的moon pilot副驾驶,亦或是moon ide,MoonBit都做到了与时俱进,与AI高度融合。

这是一个罕见的,在除了语言本身就足够优秀之外,在各种周边生态,开发的基础设施,都做到了足够先进,足够人性化的编程语言。

虽然我用了一段时间的AI写MoonBit,但我最近已经决定从0开始去学习,了解和使用这门编程语言,去感受这个足够现代化,足够先进的编程语言带来的编程快感。

MoonBit插件的力量

最后呢,MoonBit的VSCode插件也强大无比,实时的编译检测,代码提示,跟踪调试,AI注释,AI修复等等。

让MoonBit编程如虎添翼。


后续我将会分享MoonBit小案例和详解,来进一步了解MoonBit带来的编程上的纯粹快乐。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/22 9:39:01

ZUI15 平板充电样式怎么改?个性化设置教程来了!

对于使用联想 ZUI15 系统平板的用户来说,细节处的个性化定制总能让设备更具专属感。充电时的显示样式看似是小细节,却能在日常使用中带来不一样的仪式感 —— 单调的默认样式看久了难免乏味,不少小伙伴都在寻找更改充电样式的方法&#xff0c…

作者头像 李华
网站建设 2026/4/20 8:08:16

计算机毕设Java基于微信小程序的社区志愿者服务管理系统 基于微信小程序的社区志愿服务管理平台的Java开发实践 微信小程序环境下Java实现的社区志愿者服务管理系统设计

计算机毕设Java基于微信小程序的社区志愿者服务管理系统76x8l9(配套有源码 程序 mysql数据库 论文) 本套源码可以在文本联xi,先看具体系统功能演示视频领取,可分享源码参考。 随着社会的快速发展,社区志愿服务在促进社区和谐与提…

作者头像 李华
网站建设 2026/4/23 17:36:54

通达信【支撑压力突破】主图指标公式CJM99源码分享

通达信【支撑压力突破】主图指标公式CJM99源码分享CJM1:HHV(MA(SMA(SMA(SMA(MA(C,1),2,1),2,1),2,1),1),13),COLOR00AAFF,LINETHICK4;CJM2:EMA(((SLOPE(CLOSE,21) * 20) CLOSE),42)COLORCC60FF,LINETHICK3;DRAWKLINE(H,O,L,C);CJM3:(MA(CLOSE,3)MA(CLOSE,6)MA(CLOSE,12)MA(CLO…

作者头像 李华
网站建设 2026/4/17 18:16:45

零代码玩转AI金融:股票分析报告生成全攻略

零代码玩转AI金融:股票分析报告生成全攻略 一、你真的需要“专业分析师”吗?——一个被低估的日常痛点 场景切入:每天打开财经APP的你,其实在重复做同一件事 早上九点,你习惯性点开股票软件,输入“AAPL”…

作者头像 李华
网站建设 2026/4/22 10:26:41

用 Dify 工作流 + Coze 插件 Doubao-Seedream-4.0 做一个完整的工作流

摘要 本文介绍了一个基于Coze平台的完整工作流程,包含四个关键节点:1)通过触发器启动流程;2)使用Doubao-Seedream-4.0进行数据处理;3)利用LLM将结果转换为Markdown格式;4)最终输出结果。工作流支持图片/文本输入&…

作者头像 李华
网站建设 2026/4/20 5:56:28

误差反向传播法的实现:像搭乐高一样构建神经网络

误差反向传播法的实现:像搭乐高一样构建神经网络 在深度学习中,实现一个神经网络可以像组装乐高积木一样简单——通过组合已经实现好的各种层,我们可以构建出功能强大的模型。今天,我们将深入探讨如何通过这种方法实现神经网络&a…

作者头像 李华