写点什么

迅速登顶 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
    • 3.0x
    • 2.5x
    • 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
      • 3.0x
      • 2.5x
      • 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
        • 3.0x
        • 2.5x
        • 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:4510186
        用户头像
        赵钰莹 极客邦科技 总编辑

        发布了 884 篇内容, 共 652.3 次阅读, 收获喜欢 2680 次。

        关注

        评论 2 条评论

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

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

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

        Eclipse快捷键大全

        lnngle

        Java eclipse 快捷键

        Elasticsearch 组合查询

        escray

        elastic 七日更 28天写作 死磕Elasticsearch 60天通过Elastic认证考试 2月春节不断更

        程序员心中的一道坎:主存的编址与计算和串并联系统!

        冰河

        程序员 操作系统 计算 编址 串并联系统

        week13作业

        zbest

        梦境交互:做个现代灵媒,考虑一下?

        脑极体

        遇见ZooKeeper:初识

        Jackey

        zookeeper

        python爬虫-学习urllib和requests使用,模拟请求

        大佬sam

        二月春节不断更

        产品训练营第四章作业(二)

        Arnold

        Selenium 八大定位,滚雪球学 Python 番外系列

        梦想橡皮擦

        Python 28天写作 2月春节不断更

        如何监控Nginx的upstream后端server

        运维研习社

        nginx 负载均衡 zabbi

        MYSQL 索引篇(上)

        new life

        MySQL性能优化 执行计划 MySQL使用 索引性能

        三、创建、更新和删除文档

        Kylin

        读书笔记 七日更 分布式数据库mongodb 二月春节不断更

        LeetCode 采坑两次后,我终于学会了 BFS

        与你一起学算法

        Python BFS 数据结构与算法

        Impala 3.4在网易的最新实践

        DataFunTalk

        MYSQL 索引篇(下)

        new life

        MySQL MySQL性能优化 多字段联合验证 索引性能

        面试系列一:精选大数据面试真题10道(混合型)-附答案详细解析

        五分钟学大数据

        大数据 面试 28天写作

        New转乾坤——云网融合真正的打开方式!

        脑极体

        28天瞎写的第二百四十一天:正念是不是迷信、玄学、神棍?

        树上

        冥想 28天写作 正念 迷信

        Mybatis【19】-- Mybatis自关联多对多查询

        秦怀杂货店

        压力太大的话,就放点气儿吧

        道伟

        28天写作

        ConcurrentBag 听过没?好家伙高并发知识点十分密集!一种并发优化思路!

        yes

        Java 面试 并发

        【管理笔记11】优秀人才的十二个特质

        L3C老司机

        28天写作

        Mybatis【20】-- Mybatis延迟加载怎么处理?

        秦怀杂货店

        数据库 缓存 mybatis 加载

        如何在2021金三银四拿到35K,我肝了这份10W字Java面试手册送给大家

        程序员 架构 面试

        产品经理是吃青春饭的吗?

        涛哥 数字产品和业务架构

        产品经理

        聊聊如何做好计划

        数列科技杨德华

        28天写作

        第5周作业_贷款申请流程图

        园子

        互联网金融

        lua 对象编程解读

        程序员与厨子

        lua 学习 编程

        (28DW-S8-Day3) 比特币、 区块链是什么?

        mtfelix

        比特币 区块链 28天写作

        真正的勇士,敢于重新开始,敢于再次开始😂

        Nydia

        我的配置中心知识整理

        老白鹿

        微服务 技术选型 配置中心 配置管理

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