NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

迅速登顶 HackerNews!这款深圳团队开发的编程语言月兔(Moonbit)将重塑 WebAssembly 的未来生态?

  • 2023-08-25
    北京
  • 本文字数:3044 字

    阅读完需:约 10 分钟

迅速登顶HackerNews!这款深圳团队开发的编程语言月兔(Moonbit)将重塑WebAssembly的未来生态?

知乎上有一个热门问题是:为什么中国出了这么多厉害的互联网公司,但没有自己设计过编程语言?评论区的用户对此众说纷纭,大部分答主的回答并不乐观,对中国编程语言的未来并不看好。


然而近日,事情有了微妙的变化。一个中国团队开发的编程语言在Hacker News亮相。Hacker News,简称 HN,是由《黑客与画家》作者 Paul Graham 与 Y Combinator 联合创办的新闻社区,尽管其界面相对朴素,但社区的用户和评论质量很高。想要在首页上获得一席之地,需要通过社区的用户投票和联合讨论来决定,客观和真实的评价也使得很多知名项目在早期阶段都通过 HN 传播,例如 Dropbox,Rust,Airbnb 等,HN 在推广早期项目和讨论高质量内容方面具有重要地位。


不到一天时间,这款深圳团队开发的,名为“月兔(Moonbit)”(以下简称:Moonbit)的编程语言登上了Hacker News的头版头条,在 IT 工业界引发了热议。



国际知名的 Scala 和函数式编程专家 John A De Goes 在试用 Moonbit 后表示:Moonbit 看起来非常适合在 @GolemCloud(WasmCon 2023 的金牌赞助商、领先的 WebAssembly Paas 平台)上构建应用,并表示有兴趣尝试一下。

著名前端框架工具 Vue.js 作者尤雨溪、WebAssembly 生态知名公司 Wasmedge 在试用后在 Twitter(X)上转发了公告。

全球各大技术爱好者纷纷在评论区留言和评价,部分开发者在试用后对其编译速度之快感到难以置信。Moonbit 通过自动内存管理使编程更加简便,从而与 Rust 区分开来。“我已经可以想象下一个‘100 秒’视频了” ,“以这个速度,可能只需要 500 毫秒(就可以完成编译)”。

用于 Chrome 浏览器、LLVM 以及 Android 等大型项目的构建系统Ninja的作者 Evan Martin 在公告发布后也在评论区表示对 Moonbit 的期待:

同时,已经有技术用户和语言爱好者结合自己的已有项目,探索与 Moonbit 结合开发的可能。

围绕着项目本身,目前大家普遍对于月兔(Moonbit)标准库、构建系统的发展表示期待。

在了解 Moonbit 后,来自知名公司 GreenLabs 的工程师 Woonki 尝试使用 Moonbit 重新编写著名的生命游戏,Moonbit 出色的编译速度让他深感惊叹,因此他在 Twitter 上发表感想,表示对这门语言的未来充满了激动和期待。

00:00 / 00:00
    1.0x
    • 2.0x
    • 1.5x
    • 1.25x
    • 1.0x
    • 0.75x
    • 0.5x
    网页全屏
    全屏
    00:00


    那么,备受瞩目的 Moonbit 到底是什么?它为什么能在这么短的时间内获得大家的关注?接下来让我们一起深入了解这门语言的背景与特点。

    月兔(Moonbit) 到底是什么?

    Moonbit:编译速度快、Wasm 体积小、用户友好度高的 Webassembly 语言


    Moonbit是一套专为云计算和边缘计算设计的端到端解决方案。它不仅包括了通用程序语言设计,还涵盖了编译器、构建系统、集成开发环境(IDE)、部署工具等各个方面。这使得 Moonbit 能够实现高度垂直整合,从而为用户提供更出色的开发体验和性能。

     

    Moonbit 是由 IDEA 研究院基础软件中心负责人张宏波及其经验丰富的团队打造而成,仅用不到 11 个月的时间完成语言设计、IDE、编译器和构建系统。IDEA 研究院对于底层创新的重视与支持,帮助团队吸引了多位在语言设计和开发领域拥有超过十年专业经验的成员。值得一提的是,张宏波不仅为多种编程语言做出了贡献,包括 OCaml、ReScript(原 ReasonML/BuckleScript)和 Flow,还是 Rescript 语言工具链几乎所有关键组件的作者,包括高速编译器、标准库以及构建系统等。

     

    那么,Moonbit 究竟有哪些功能值得开发者关注呢?主要包括以下三个方面:

     

    首先是编译速度快,Moonbit 注重全局速度,采用多级中间表示(IR)的整体程序优化方法,优化内存布局以减少缓存失效,并为数据和控制流分析提供卓越的上下文。同时,Moonbit 在构建性能方面也表现出色,通过工具链的垂直整合,IDE 性能得到了极大的提升,这对于开发人员的体验至关重要。根据测试,Moonbit 在冷启动环境无缓存模式下只需要不到 7s 就能检测到 4000 个 package。

    00:00 / 00:00
      1.0x
      • 2.0x
      • 1.5x
      • 1.25x
      • 1.0x
      • 0.75x
      • 0.5x
      网页全屏
      全屏
      00:00


      第二是 Wasm 输出体积小,Moonbit 通过有效消除死代码,省略了妨碍此分析的语言特性,显著减小了最终代码的大小。据 GitHub 上可用的基准测试结果,Moonbit 输出的 Wasm 体积最小,仅约 253 字节。


      第三是用户友好度高,Moonbit 通过自动内存来简化编程、避开了指针或左值等危险元素。此外,Moonbit 还提供了广泛的工具集,包括管理器、编译器、集成开发环境(IDE)以及一个无需容器支持、具备离线功能的云 IDE。其中,云 IDE 采用了与传统的云 IDE 不同的架构,可在浏览器离线开发,用户输入能快速反馈,不再依赖网络宽带。

      00:00 / 00:00
        1.0x
        • 2.0x
        • 1.5x
        • 1.25x
        • 1.0x
        • 0.75x
        • 0.5x
        网页全屏
        全屏
        00:00


        这里放上 Moonbit 的试用地址,大家感兴趣的话可以玩一下。

         

        试用地址:https://try.moonbitlang.cn

        月兔(Moonbit):重塑 WebAssembly 的未来生态

         

        在 Hackernews 底部的论坛区,针对 Moonbit 的亮相,有人问起张宏波:「这是否意味着你今后不再主导 Rescript 的工作,渐而把全部重心放在 Moonbit 的建设上?」

         

        张宏波表示:除了 Moonbit 在设计上学习 Go 语言和 Rust 语言优点的后来者优势外,从设计之初就考虑 IDE,编译器和构建系统上的垂直整合,利于日后整个程序语言的生态发展和稳定,也从侧面回应了 Moonbit 的设计初心——在 Wasm 生态缺乏优质供给端的今天,如果能量身为用户和消费端打造一门与标准高度适配的语言,这在整个程序语言界可以形成后发优势。

        作为计算机系统软件运行和网络环境的基础,基础软件扮演着至关重要的角色。尽管过去几十年中计算机性能取得了巨大突破,但令人遗憾的是,软件体验并没有同步提升,软件性能的潜力仍然未能充分挖掘。在这个背景下,2017 年推出的新一代标准指令集 WebAssembly 因其高效、轻量、安全等特性,引起了广泛的关注。

         

        然而,目前在 WebAssembly 平台上,主流的开发语言仍然是一些对程序员门槛相对较高的底层编程语言,如 C++和 Rust。同时,一些应用层的语言,如 Go 语言,虽然在 WebAssembly 上运行,但其生成的代码体积巨大,无法充分发挥 WebAssembly 平台的优势。因此,在 WebAssembly 生态系统中,尽管已经有数十种开源的消费端运行时,但高质量供给端的匮乏是当前面临的最大挑战。


        为了填补这一生态缺失,Moonbit 团队专注于WebAssembly(简称Wasm),更好地支持这一技术,争取在这个领域取得后发优势。正如张宏波在回答知乎热门问题中所强调的,“做自己的语言是个很需要有情怀的事情,困难很多,但是长远意义上是一个国家在基础软件问题上的话语权的问题”。

         

        在这一愿景的推动下,Moonbit 诞生了,为编程软件的未来开辟新的道路。 

        月兔(Moonbit)的未来之路

         

        在 Moonbit 的未来之路上,有许多令人兴奋的计划和发展方向。

         

        据了解,除了给用户提供现有的在线 IDE 和 VS Code 扩展插件,Moonbit 正在利用 LLM 大语言模型开发 Moonbit GPT,以辅助程序员代码准确性与提高开发效率,Moonbit 将在 2024 年 Q2 达到 Beta 状态,在稳定的同时,具备与 Wasm 宿主进行交互的外部函数接口(FFI)。在未来的战略计划中,团队会考虑将 Wasm 2.0 的 Wasm GC 集成到 Moonbit 并且开发 Wasm 1.0 GC。

         

        关于未来的长期计划,张宏波也在 Hackernews 的讨论区做出了回答,Moonbit将会是他退休前的最后一个项目,Moonbit 团队有一个非常强烈的决心与长期愿景,将继续推动月兔(Moonbit)的发展。

        参考链接:

        [1]https://www.zhihu.com/question/359906573/answer/1709942996

        [2]Hacker News: https://news.ycombinator.com/item?id=37174619

        [3] Ninja:https://en.wikipedia.org/wiki/Ninja_(build_system)

        [4]月兔(Moonbit)平台背景 &应用场景介绍:https://mp.weixin.qq.com/s/HcpB0YiU64J2duPikrr-cw

        [5]月兔(Moonbit): the fast, compact & user friendly language for WebAssembly:https://zh.moonbitlang.com/blog/first-announce/

        [6]编程语言月兔(Moonbit)开放内测:https://mp.weixin.qq.com/s/6m7xd5pUR20bGmTCtcQEFw

         

        2023-08-25 09:459367
        用户头像
        赵钰莹 InfoQ 主编

        发布了 875 篇内容, 共 605.6 次阅读, 收获喜欢 2671 次。

        关注

        评论 2 条评论

        发布
        用户头像
        看了一下 github 仓库,伪装的,这是个大计划啊。
        2024-03-13 17:26 · 广东
        回复
        用户头像
        能举几个例子吗?什么场景可以用到

        Moonbit是一套专为云计算和边缘计算设计的端到端解决方案。

        2023-09-03 13:15 · 天津
        回复
        没有更多了
        发现更多内容

        重磅官宣:Nacos2.0发布,性能提升10倍

        xcbeyond

        Java 微服务 nacos 4月日更

        架构实战营——作业一:微信架构及学生管理架构

        开拓纪

        架构实战营 作业一

        架构实战营 - 模块 1- 作业

        请弄脏我的身体

        架构实战营

        什么是架构?怎么来理解?

        秋天

        架构 架构师

        架构实战营 模块一作业

        netspecial

        架构实战营

        「架构实战营」课堂作业-G20210698010384

        张亮

        区块链的环保实验,助全球提高垃圾回收

        CECBC

        环保

        踩坑 MySQL 索引,看看你真的会用么?

        架构精进之路

        MySQL 4月日更

        PCB如何拼版

        不脱发的程序猿

        嵌入式 电路设计 硬件设计 4月日更 PCB打样

        用 JavaScript 实现时间轴与动画 - 前端组件化

        三钻

        JavaScript 大前端 动画 组件化 时间轴

        Wireshark数据包分析学习笔记Day25

        穿过生命散发芬芳

        Wireshark 数据包分析 4月日更

        极客架构module 1 作业

        Geek_649372

        架构实战营

        C++ sort 排序及自定义排序

        玄兴梦影

        高承实:绘一幅区块链社会画像

        CECBC

        区块链

        面试题: 合并两个有序链表

        木子的昼夜

        一文读懂区块链领域最新发展方向 NFT经济将成未来发展方向

        CECBC

        艺术品

        机器学习(二):理解线性回归与梯度下降并做简单预测

        caiyongji

        机器学习

        架构实战营--模块一

        永佳

        架构实战营

        脑机接口简史——假如这篇推送是你靠意念打开的

        白洞计划

        面试题: String "123" 转 int类型

        木子的昼夜

        面试题 : 一个单调递增的数组 随机拿出一个数 你怎么找到这个数

        木子的昼夜

        为什么数据库字段要使用NOT NULL?

        艾小仙

        Java最强规则引擎-ice是如何炼成的?

        waitmoon

        规则引擎使用 规则引擎 流程引擎

        go每日一库 [go-rate] 速率限制器

        happlyfox

        学习 Go 语言 4月日更

        Linux grep 命令

        一个大红包

        4月日更

        机器学习和大数据的区别和联系

        大数据技术指南

        机器学习 大数据 4月日更

        怎么画出专业的架构图?

        秋天

        架构 架构师

        作业1--微信的业务架构及学生管理系统

        大可

        聪明人的训练(五)

        Changing Lin

        4月日更

        如何做Nginx安全日志分析可视化

        运维研习社

        nginx 4月日更 waf

        基于二叉树实现Map

        Silently9527

        Java 二叉树 数据结构与算法

        迅速登顶HackerNews!这款深圳团队开发的编程语言月兔(Moonbit)将重塑WebAssembly的未来生态?_编程语言_静纯_InfoQ精选文章