開源程式語言MoonBit2024年度技術盤點

OSCHINA
↑點選藍字 關注我們
日月其邁,時盛歲新!
2024年對 MoonBit 來說是一個非凡的里程碑年。在 AI 浪潮澎湃的一年裡,使用者數量呈現指數級增長,新功能陸續釋出,會議演講創下新紀錄,社群也形成生態規模。隨著年終將至,回顧這一年,MoonBit 在技術創新和社群建設方面取得的成就不容忽視。
全國頂尖高校、知名海外雲服務提供商、亞洲與太平洋地區資訊學奧林匹克競賽以及創新資料庫廠商紛紛在實際場景中應用 MoonBit,並取得了顯著的成效。本文將回顧 MoonBit 月兔過去一年的技術進展與應用成效,並對未來的發展潛力進行展望。
相比於其他主流程式語言,MoonBit 語言具有先天優勢:
1. 專注於新一代標準指令集 Wasm,形成後發優勢:
MoonBit 透過其獨特的編譯器技術,將程式語言的特性高效編譯成可在 Wasm 環境中執行的實際程式碼。基於此,開發者可以利用其選擇的程式語言的特性,來建立在不同平臺上執行的 Web 應用。目前 Wasm 後端的執行效能和程式碼生成體積均優於 Rust 和 Go 等主流程式語言。例如,透過最佳化 Wasm 元件模型,MoonBit 可將一個「http-hello-world」示例的程式碼體積壓縮至 27KB,顯著小於許多其他語言,這使得 MoonBit 在效能和跨平臺應用上展現出強大的優勢。
2. 誕生於AI浪潮,輕裝上陣
MoonBit 誕生於 ChatGPT 的釋出之後,恰逢 AI 技術的迅猛發展。這為MoonBit 團隊提供了重構程式語言工具鏈的機會,可以從零開始設計,專注於如何與 AI 高效協作,而無需受傳統程式語言歷史包袱的限制。
3. 經驗豐富,底層設計無縫對接:
MoonBit 的開發團隊擁有十多年的經驗,使得語言從一開始便採用自底向上的設計方式,確保語言本身與開發工具(如 IDE、偵錯程式等)無縫銜接,優化了開發者的使用體驗。
MoonBit 標誌性進展
1. 語言生態
2024年8月18日,beta 預覽版釋出,核心語言特性超越大部分主流語言 1.0 版本,其中包括:
  • 精準的錯誤處理:透過控制流分析,在編譯時自動追蹤函式錯誤,幾乎無需使用者干預,顯著減輕認知負擔。
  • 創新的泛型系統:實現了零開銷的泛型支援,且保持快速編譯速度。相比主流語言多年後才完善的泛型,MoonBit 在預覽版就已實現,提升了型別系統對生態健康發展的支援。
  • 高效迭代器設計:採用零開銷迭代器,使得程式碼既簡潔又高效。
2. 多後端支援
早在 2023 年,MoonBit 已支援 Wasm 後端,今年 MoonBit 完成了補全多後端的設想:
  • WebAssembly 元件模型(component model):今年在實現對組建模型的支援後,迅速引發 Wasm 社群的熱烈反響,並得到了 WasmCloud、Extism、Golem Cloud 等海外知名雲服務平臺的官方支援,MoonBit 在微服務架構和雲原生應用中的獨特優勢已被廣泛認可。
  • JavaScript 後端:2024年4月新增對 JavaScript 支援,基準測試顯示生成的程式碼執行速度超出原生效能8倍以上。
  • Native 後端:2024年10月新增對 Native 後端支援,數值計算領域快 Java 一個數量級、內容管理效能方面領先於傳統程式語言 Java 以及 Swift。Native 後端不僅能生成原生二進位制,還支援交叉編譯到所有 C 語言支援的平臺,擁抱了嵌入式和物聯網(IoT)生態。
現在 MoonBit 能夠覆蓋 UI 開發、客戶端應用、邊緣計算和系統程式設計等多個領域。MoonBit 在新的後端效能上依舊保持顯著的提升和超越。
3. 工具鏈體驗極佳
  • 完善的除錯支援,支援開箱即用

去年,MoonBit 推出了偵錯程式(Debugger)功能,這是相對於其他語言通常在成熟階段才擁有的功能。目前,該功能已支援原始碼對映、基於原始碼設定斷點、輸出 sourcemap 等,在瀏覽器中進行原始碼除錯。

2024年12月,除錯功能新增內置於 MoonBit 線上 IDE,實現開箱即用,開發者不再需要複雜的手動設定即可一鍵除錯,顯著提升了開發和除錯的流暢性。

  • test codelens

2024年4月,MoonBit IDE 支援本地環境的 test codelens, expect test 的自動更新。相較於此前需要使用者需要手動編寫命令列的版本,現在只需要點選「Run Test | Update Test」的 button 即可完成毫秒級的編譯,幾乎無需等待響應,大幅提升了測試的效率。以下是該功能的具體效果展示:

  • 2024年12月,在最新的 MoonBit IDE 中,Outline 功能已最佳化為支援分層顯示 document symbol,開發者能夠迅速定位單個 symbol,這使得程式碼結構更清晰,開發者更容易理解和操作複雜專案。

  • 2024年12月,MoonBit Language Tour 正式上線,涵蓋 MoonBit 主要語言特性,支援語法案例即時編譯,並實現 IDE Trace 功能內建,執行過程中自動展示中間變數的值。無需伺服器或容器,在瀏覽器內即可完成編譯執行。
4. AI自動程式設計開發平臺:自底向上的協同設計
在 AI 時代,程式語言需要滿足三個關鍵需求:安全性互動性精確上下文摘要。MoonBit 透過靜態分析確保程式碼安全性,加速開發流程;它還考慮到未來人、AI 大模型與程式語言的協同工作,優化了三者之間的互動方式;同時, MoonBit 透過提供精準的上下文資訊,幫助大模型更好地理解和生成程式碼,MoonBit IDE 內建 AI 助手,為應用的開發、測試和文件編寫提供了全方位的支援,使得開發者能夠更加專注於業務邏輯的實現,而不必擔心底層的複雜性和維護工作。
一個更加完善的AI程式設計場景出現:
  • 透過思考語言設計和工具鏈適配,IDE 和工具鏈能夠非常靈活地在當前的倉庫檢查、執行並更新 AI 大模型生成的程式碼塊。
  • IDE 內建的測試功能除了為程式設計師提供一種方便測試的機制以外,能夠很好地在程式碼上下文中作為相關程式碼的示例,從而大大提高程式碼生成及相關下游任務的正確性。
  • 除了在 IDE 中向用戶提供常規的 AI 生成測試、撰寫文件、修復錯誤等功能外,還能夠提供完全後臺執行的自動化智慧體,透過讀取編譯器的各項反饋來完成各種相對複雜、長時間的下游任務,例如提升測試覆蓋率、從自然語言提示生成完整程式碼元件或者專案等。
5. 使用者數量迅猛增長
MoonBit 和 Grain 近一年使用者數增長對比圖
MoonBit 的核心使用者在迅速增長,以 VScode 外掛使用者數為統計指標,23年11月份MoonBit 程式語言下載量約為 500 左右,24年5月份達到 3000 — 4000 這個範圍區間。
最近使用者數目前已經突破 3.6 萬(資料統計來源綜合Visual Studio Marketplace 和 Open VSX Registry),實現1200%的使用者增長。
值得注意的是幾乎絕大多數程式語言在其誕生前 5 年都處於默默無聞的狀態,比如 Python 、Rust 等一眾現在熱度很高的程式語言都經歷過這個時期。Rust 誕生於 2006 年,但直到三年後的2009年,Mozilla 團隊才意識到它的價值,換句話說 Rust 才真正意義上有使用者使用,隨後又經歷了 6 年的時間,到 2015年 Rust  才積累了2萬左右的使用者。
快速增長的使用者意味著 MoonBit 的生態潛力巨大,未來可期!
MoonBit 開源
MoonBit 積極擁抱開源,我們相信開源的力量會大幅度推進技術發展與進步,並造福開發者甚至整個社會。
1. 核心標準庫
2024年3月8日,MoonBit 開源了核心標準庫,已有1700+個commits,貢獻者50+。社群的貢獻異常熱烈,短短幾個月就收穫數萬行社群貢獻程式碼,標準庫範圍涵蓋廣泛,包括高質量的資料結構、雜湊演算法、數學庫、測試框架等等。
開源地址:https://github.com/moonbitlang/core
開源協議:Apache License 2.0
2. 構建系統
2024年7月23日,MoonBit 開源構建系統 moon ,為 MoonBit 專案提供編譯構建,自動化測試工具(整合 expect test),覆蓋率測試、包管理器等功能,此外,moon 作為 MoonBit 語言編譯工具鏈的重要元件,與 IDE 緊密結合,為 IDE 分析程式碼提供了詳盡的專案結構和依賴等資訊。
moon 用 Rust 開發,得益於 Rust 語言的記憶體安全、高效能和併發處理能力、跨平臺等特性,確保構建過程的穩定性和速度。moon 的並行與增量構建功能得益於 n2 專案,(n2 與 ninja 都是由 Evan Martin 建立,n2 相比 ninja 更加輕量,並且在增量構建方面更出色)。
開源地址:https://github.com/moonbitlang/moon
開源協議:AGPL-3.0
3. 編譯器

2024年12月18日,MoonBit 正式開源其核心的編譯器 WebAssembly(簡稱“Wasm”) 後端。開發者現在可以利用 MoonBit 的能力做效能最佳化,且直接參與 MoonBit 的技術迭代和生態創新。
作為工具鏈中的核心板塊,Wasm 編譯器將程式語言的特性編譯成可以在 WebAssembly 環境中執行的實際程式碼。基於此,開發者可以利用其選擇的程式語言的特性,建立在不同平臺上執行的 Web 應用。
同時,Wasm 後端也是 MoonBit 當前最成熟的技術模組,執行效能和程式碼生成體積均優於 Rust 和 Go。
GitHub程式碼:https://github.com/moonbitlang/moonbit-compiler
Gitee程式碼:https://gitee.com/moonbitlang/moonbit-compiler
開源協議:MoonBit Public License
4. 後續開源計劃

MoonBit 堅持以開放、開源為核心策略,並認為,開發者需要的是透明和可靠的工具,而不是功能受限的“開源核心”(Open-Core)模式。因此,MoonBit 對於使用者,將始終保持免費開放,讓全球開發者無論何時,均能享受優質穩定和可信賴的開發體驗。
收穫海內外認可
1. 全球軟體領域頂尖專家與權威機構背書
2024年9月,MoonBit 發起了全球首創的語言+遊戲雙賽道程式設計挑戰賽,吸引了1888支隊伍報名。賽事走進了全國30餘所高校,並得到了包括北京大學、清華大學、中山大學和香港科技大學(廣州)等多所頂尖高校的合作與支援。

同時,賽事還得到了沈向洋院士、林惠民院士、倪明選院士以及中國科學院軟體研究所趙琛所長的高度肯定與寄語。賽後,中國科學院軟體研究所「甲辰計劃」對參賽選手的表現給予高度認可,開通實習綠卡,並計劃於2025年提供不低於110個實習崗位,旨在培養程式設計領域人才進一步探索 MoonBit 語言的潛力。
2. 社群生態活躍
社群生態在2024年蓬勃發展,我們成功舉辦了多場線上線下 Meetup 和直播活動,推出了豐富的社群課程,吸引了廣泛參與,推動了 MoonBit 語言的學習和應用。
3. 海外獲得前所未有的關注
MoonBit 今年在海外引發了前所未有的關注,關鍵性進展和知名技術大咖的評價包括:
  • 全球最大程式碼託管平臺 GitHub 官方正式收錄。
  • 編譯器開源後在 Hackernews 再度登頂。這是繼去年首發登頂 HN 後第二次登上頭版頭條。
  • 全球頂級開發者科技媒體《The New Stack》對 MoonBit 進行了3次專題報道,並登上全站熱門文章榜首。
  • 日本最大的開發者論壇之一 zenn.dev 上掀起了對語言熱議,吸引了海外平臺十萬級閱讀量。日本程式圈粉絲數最大的博主之一 mizchi 三次發表平臺技術相關部落格,日本社群已不定期自發組織 Youtube 影片和開發者見面會。
  • 社群成員自發編寫的 MoonBit-Extism 外掛,已被 Extism 納入官方 PDK庫,成為海外社群支援下的首個實用案例。
  • 雲服務廠商 Golem Cloud 使用 MoonBit 編寫應用程式。
  • 義大利科技媒體 Redhotcyber 評價 MoonBit:近年來,中國的科技領域創新不斷,但很少有像 MoonBit 一樣可以引起全球關注的,這種程式語言迅速登上了人們的興趣排行榜。MoonBit 徹底改變 WebAssembly。
  • 海外首場 Meetup 在新加坡國立大學(NUS)及 CBD 圓滿舉行,社群聯合 Vue.js 和 Vite 的作者尤雨溪、耶魯大學及新加坡國立大學的計算機科學教授奧利維爾·丹維主講。MoonBit 開始邁向國際化,並計劃在2025年開展更多的線下活動。

未來計劃 & 總結
MoonBit 團隊在2025年將繼續推動程式語言的創新,尤其在以下幾個重要領域取得新的突破:
1. 非同步支援:
非同步程式設計是現代程式語言不可或缺的重要功能。在 2025 年,我們將為 MoonBit 新增非同步程式設計的支援,讓使用者能以同步的形式編寫非同步程式碼。在功能設計上,我們希望 MoonBit 的非同步程式設計支援能夠在易於使用、具有較高可讀性的同時,對錯誤傳播、任務管理等問題給出更好的解決方案。在非同步程式設計生態上,我們計劃提供一套後端、平臺無關的抽象層,在網頁前端、不同的 Wasm 執行時、不同的硬體及作業系統上都提供良好的非同步程式設計體驗。
目前,MoonBit 已經提供了實驗性的非同步程式設計底層支援。在 2025 年,我們將持續改進相關設計、完善非同步相關的語言功能與生態建設。透過非同步程式設計支援,我們希望在網頁前端開發、雲服務開發、AI agent 開發、嵌入式開發等領域進一步改善使用者的程式設計體驗,幫助開發者更加高效、安全地開發各種非同步程式。
2. 軟硬體結合 MCU:

在過去的一年,我們探索了使用 MoonBit Wasm 後端進行嵌入式開發,併成功將 Wasm-4 遊戲機專案移植到了 ESP32 環境中。並且能夠執行大多數MoonBit 全球程式設計創新挑戰賽遊戲賽道使用者提交的遊戲。後續我們會進一步提高系統的相容性與穩定性。
我們也啟動了 MoonBit Arduino Binding 專案,探索使用 Moonbit native 後端在資源非常受限的嵌入式環境中進行開發,我們希望 MoonBit Arduino Binding 專案可以在教育領域發揮價值。
未來,我們計劃探索 MoonBit 非同步與 FreeRTOS 的結合。我們希望能夠透過 async/await 機制以及 FreeRTOS 的即時排程能力,簡化多工管理、最佳化任務切換和事件響應效率,幫助開發者更加高效地應對多工管理的挑戰。
3. 結束語
這一年的成就,不過是 MoonBit 技術長征路上的片刻閃光,每一位 MoonBit 社群成員都將繼續在技術的征途上奮勇前行,讓千行萬業因我們而煥發新生。感謝每一位社群夥伴的支援與信任鑄就了 MoonBit 成長的基石,見證了平臺快速成長!
新的一年,我們將秉持初心:致力於成為一門擁有千萬級別使用者數量的開發者平臺,深遠的影響基礎軟體領域的格局與發展,助力基礎軟體的持續創新與前沿探索,為全球開發者生態注入源源不斷的動力與創造力。
關於 MoonBit 
MoonBit(https://www.moonbitlang.cn/)是國內首個工業級程式語言及其配套工具鏈,由粵港澳大灣區數字經濟研究院(簡稱“IDEA 研究院”)基礎軟體中心打造的 AI 原生的程式語言以及開發者平臺。透過創新框架在程式語言界形成後發優勢,在編譯速度、執行速度、體積大小上已成功領先傳統語言。
↓推薦關注↓

相關文章