写点什么

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

        发布了 886 篇内容, 共 657.0 次阅读, 收获喜欢 2681 次。

        关注

        评论 2 条评论

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

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

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

        【SimpleFunction系列二.2】SpringBoot注解整合Redisson分布式锁

        莫逸风

        分布式锁 redisson 分布式锁 企业级应用

        【计算讲谈社】第八讲:AI 技术的“纺织业”是什么?

        大咖说

        人工智能 商业化

        秒杀架构分析与实践

        Bruce Duan

        签约计划第三季

        终、《图解HTTP》读书笔记 - 汇总篇(总结)

        懒时小窝

        读书笔记 读书 HTTP 图解https #读书

        三、《图解HTTP》- 报文内的 HTTP信息

        懒时小窝

        HTTP 图解https

        五、《图解HTTP》- RSS和网络攻击

        懒时小窝

        HTTP 图解https

        二、《图解HTTP》- HTTP协议历史发展(重点)

        懒时小窝

        HTTP 图解https

        开源一夏 | 使用 JavaScript 的响应式计数器动画

        海拥(haiyong.site)

        开源 8月月更

        注册配置、微服务治理、云原生网关三箭齐发,阿里云 MSE 持续升级

        阿里巴巴云原生

        阿里云 微服务 云原生 网关

        不要让CMDB沦为数据孤岛!运维高质量CMDB“修炼”之道

        嘉为蓝鲸

        运维 数据 配置 CMDB 配置管理

        Spring Cache设计之美,你品,你细品...

        华为云开发者联盟

        后端 开发

        涛思数据加入龙蜥社区,携手共建时序数据库生态

        OpenAnolis小助手

        数据库 涛思数据 开源 龙蜥社区 CLA

        干货合集 | 关于制品库,你了解多少?

        嘉为蓝鲸

        DevOps 研发 制品库

        Python图像处理丨带你掌握图像几何变换

        华为云开发者联盟

        Python 人工智能

        Java将PDF拆分为多个 PDF 文件

        在下毛毛雨

        Java PDF 拆分PDF

        Neo4j导入思知OwnThink开源的知识图谱

        Joshua

        nlp neo4j 知识图谱

        语音直播app——满足不同行业的业务需求

        开源直播系统源码

        软件开发 直播系统源码 语音直播系统 语音直播app

        首发!清华大佬耗时几个月总结的这份Spring生态全家桶核心知识宝典助你剑指大厂offer

        了不起的程序猿

        Java spring 后端 java程序员 java面试

        四、《图解HTTP》- 状态码

        懒时小窝

        HTTP 状态码 图解https

        七、《图解HTTP》- HTTP首部和HTTP协作服务器

        懒时小窝

        HTTP 图解https

        共建共享数字世界的根:阿里云打造全面的云原生开源生态

        阿里巴巴云原生

        阿里云 开源 容器 RocketMQ 云原生

        场景品牌易观千帆,助力数智化需求持续升级

        易观分析

        数字经济 数智化

        历时4个月,4大板块,328页52188字,SpringMVC源码解析文档

        冉然学Java

        Java spring Spring MVC 构架 Spring Web MVC、

        软件交付周期缩短!且看精益思想如何加速全局价值流动

        嘉为蓝鲸

        DevOps 敏捷 精益

        分布式系统大势所趋,银行运维如何与时俱进?

        嘉为蓝鲸

        架构 分布式 运维 金融 银行

        巨细靡遗流程控制,Go lang1.18入门精炼教程,由白丁入鸿儒,Go lang流程结构详解EP09

        刘悦的技术博客

        Go 教程 Go web go语言 Go 语言

        N、《图解HTTP》读书笔记 - 附录

        懒时小窝

        资料 图解https 参考数据

        六、《图解HTTP》- 用户身份认证

        懒时小窝

        HTTP 图解https

        新零售标杆 SKG 全面拥抱 Serverless,实现敏捷交付

        阿里巴巴云原生

        阿里云 Serverless 云原生 合作案例

        室内led大屏幕可以用在室外吗?​

        Dylan

        LED显示屏 户外LED显示屏 户内led显示屏

        C#/VB.NET:在不同Excel工作簿之间复制单元格区域和工作表

        Geek_249eec

        C# Excel VB.NET 单元格区域 工作表

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