核心内容摘要
北京BBBBBBNBBBM报名全攻略:让你轻松掌握所需,一站式搞定!
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,
当然这是很多静态语言都具备的类型标注能力但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 -
fib(n -
} } test { // 第一次可以不写 content让工具跑出 diff确认无误后用 -u 自动更新 inspect(fib(
) }举个例子上面这个是快照测试按照我的理解来说就是一个东西它长得像鸭子叫声是鸭子那它就是鸭子。
运行moon testinspect(fib(
)会在终端显示测试失败的diff信息打印fib(
的实际值是50。
test { inspect(fib(
, content
}如果你确认fib(
的值是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 test或moon test xxx.mbt.md对文档中的MoonBit代码进行测试十分方便且人性化。
与AI生态高度融合在AI发展的过程中不管是promptagents还是skill甚至是专属的moon pilot副驾驶亦或是moon ideMoonBit都做到了与时俱进与AI高度融合。
这是一个罕见的在除了语言本身就足够优秀之外在各种周边生态开发的基础设施都做到了足够先进足够人性化的编程语言。
虽然我用了一段时间的AI写MoonBit但我最近已经决定从0开始去学习了解和使用这门编程语言去感受这个足够现代化足够先进的编程语言带来的编程快感。
MoonBit插件的力量最后呢MoonBit的VSCode插件也强大无比实时的编译检测代码提示跟踪调试AI注释AI修复等等。
让MoonBit编程如虎添翼。
后续我将会分享MoonBit小案例和详解来进一步了解MoonBit带来的编程上的纯粹快乐。