這門(mén)國(guó)產(chǎn)編程語(yǔ)言的出現(xiàn),將會(huì)給 Python 帶來(lái)強(qiáng)烈的危機(jī)感!
Python在各大編程語(yǔ)言排行榜上常年霸榜,但是在AI時(shí)代,它的動(dòng)態(tài)類(lèi)型和性能問(wèn)題,讓它在越來(lái)越大的AI項(xiàng)目中開(kāi)始暴露不少短板,就在大家都在找新出路的時(shí)候,國(guó)產(chǎn)編程語(yǔ)言 MoonBit 用一套顛覆性的思路,給出了不一樣的解決方式。
一、Python 的現(xiàn)狀
Python,過(guò)去二十年當(dāng)之無(wú)愧的編程巨星。憑借簡(jiǎn)潔的語(yǔ)法、龐大的生態(tài)、極低的學(xué)習(xí)門(mén)檻,Python 從 Web 開(kāi)發(fā)到數(shù)據(jù)分析,從科學(xué)計(jì)算到人工智能,幾乎無(wú)所不在。
圖片
但是進(jìn)入大模型時(shí)代,Python 的短板變得更加明顯:
- 動(dòng)態(tài)類(lèi)型 ,在大型項(xiàng)目中維護(hù)成本高
- 運(yùn)行速度慢
- AI編程不友好
- ....
很多優(yōu)秀的語(yǔ)言如 C++,Rust,Ocaml、Haskell等編程語(yǔ)言都嘗試過(guò),想把Python豐富的生態(tài)庫(kù)給“拿”過(guò)來(lái),為己所用,具體的辦法就是通過(guò) CPython 的 API 調(diào)用 Python 生態(tài)。
但是,這種方式會(huì)讓調(diào)用代碼變得非常復(fù)雜,比如C++用pybind11去調(diào)用Python,用戶(hù)需要include pybind11,然后import,get attr,寫(xiě)起來(lái)非常麻煩。
圖片
更麻煩的是,還需要處理“包沒(méi)找到怎么辦?”,“虛擬環(huán)境怎么配置?”,“conda怎么配置”,“CMake要怎么寫(xiě)”等等一大堆復(fù)雜的問(wèn)題。
用戶(hù)最需要的是避開(kāi)這些復(fù)雜的配置問(wèn)題,直接導(dǎo)入python庫(kù),用簡(jiǎn)潔清晰的方式直接使用。
圖片
更進(jìn)一步, 如何在保留 Python 龐大生態(tài)的同時(shí),享受更強(qiáng)大的類(lèi)型系統(tǒng)、更嚴(yán)格的靜態(tài)分析和更現(xiàn)代的編程體驗(yàn)?
二、MoonBit 無(wú)縫融合Python生態(tài)
我在之前的文章中介紹過(guò)MoonBit,這是一個(gè)國(guó)產(chǎn)的、由前ReScript 作者張宏波團(tuán)隊(duì)打造的高性能開(kāi)源語(yǔ)言,它面向云計(jì)算、邊緣計(jì)算及 AI ,聚焦WebAssembly(WASM)和原生編譯場(chǎng)景。
圖片
MoonBit是靜態(tài)類(lèi)型,支持函數(shù)式和面向?qū)ο?,它有幾個(gè)讓人印象極其深刻的核心優(yōu)勢(shì):閃電般的編譯速度,極小的代碼體積,運(yùn)行起來(lái)飛快。
目前MoonBit已應(yīng)用于清華、北大等高校課程,獲海外云服務(wù)商采用,核心戶(hù)超 6萬(wàn),計(jì)劃三年內(nèi)構(gòu)建百萬(wàn)級(jí)開(kāi)發(fā)生態(tài),加速云原生與AI領(lǐng)域落地。
那么MoonBit如何利用Python生態(tài)呢?
首先,MoonBit延續(xù)了Rust、C++ 等語(yǔ)言對(duì) CPython 的使用思路和研究成果,然后又在此基礎(chǔ)上利用自研的 「moon-agent」 智能體框架,利用AI 驅(qū)動(dòng)大規(guī)模、自動(dòng)生成對(duì) Python 庫(kù)的封裝。
圖片
一旦封裝完成,MoonBit + 自有構(gòu)建系統(tǒng)的結(jié)合,能在許多場(chǎng)景中直接替代原生 Python,不僅復(fù)用其生態(tài),還提供比 Python 更友好的 IDE 提示、更強(qiáng)大的類(lèi)型推導(dǎo)與靜態(tài)分析、更精準(zhǔn)的 AI 代碼生成支持。
備注:「moon-agent」 智能體框架即將公開(kāi)上線
1.更清晰的報(bào)錯(cuò)提示
相比 Python 那些長(zhǎng)得像謎語(yǔ)人的報(bào)錯(cuò)信息,MoonBit 的錯(cuò)誤提示直接指向問(wèn)題核心,適合人類(lèi)理解,也適合 AI 工具輔助改正。
編譯器不僅告訴你“錯(cuò)了”,還告訴你“錯(cuò)在哪里”和“可能怎么改”。
左moonbit右python
2. 更友好的IDE體驗(yàn)
在 Python 中,如果顏色參數(shù)寫(xiě)錯(cuò),比如打成 'oragne',不僅 IDE 無(wú)法發(fā)現(xiàn),運(yùn)行時(shí)也不會(huì)警告你。這種動(dòng)態(tài)語(yǔ)言的“自由”有時(shí)也意味著“隱患”。
而在 MoonBit 中,顏色可能定義成枚舉類(lèi)型{Orange, Blue},IDE 可自動(dòng)補(bǔ)全,編譯器在你按下回車(chē)之前就能阻止錯(cuò)誤,真正實(shí)現(xiàn)“寫(xiě)錯(cuò)都難”。
圖片
三、案例展示
案例-1 雙擺模擬
MoonBit直接調(diào)用封裝好的Python庫(kù)。
調(diào)用 Python turtle 庫(kù)進(jìn)行物理系統(tǒng)模擬,底層調(diào)用 Python turtle
MoonBit 封裝了 Python 的 turtle 繪圖庫(kù),實(shí)現(xiàn)了一個(gè)模擬雙擺系統(tǒng)的繪圖程序。編寫(xiě)過(guò)程完全在 MoonBit 中完成,開(kāi)發(fā)者無(wú)需了解 turtle 的任何底層細(xì)節(jié)。
這不是調(diào)用,而是“無(wú)感使用”:就像調(diào)用 MoonBit 原生模塊一樣調(diào)用 Python 的強(qiáng)大能力。
案例-2 小游戲開(kāi)發(fā)(直接調(diào)用)
例如,調(diào)用 Python 中的 pygame 外星人小游戲:
圖片
使用 MoonBit 調(diào)用 Python 的 pygame 庫(kù),運(yùn)行一個(gè)小型的外星人射擊游戲。
不需要配置復(fù)雜的頭文件,不必面對(duì)令人頭禿的鏈接器錯(cuò)誤。只需一行 pyimport,就能立即使用 pygame。相比傳統(tǒng)的 C 語(yǔ)言綁定方式,這種體驗(yàn)堪稱(chēng)“極簡(jiǎn)開(kāi)發(fā)”。
四、為什么MoonBit能做到?
首先 MoonBit 代碼生成的優(yōu)勢(shì)明顯:MoonBit 在設(shè)計(jì)之初就考慮到與AI融合,它的類(lèi)型系統(tǒng)語(yǔ)法高度適配AI編程需求。內(nèi)部真實(shí)場(chǎng)景測(cè)試,成功生成上千行代碼幾乎不用修改,便可一次跑通。
其次 MoonBit 擁有優(yōu)秀的工具鏈:MoonBit 語(yǔ)言類(lèi)型系統(tǒng)、文檔編程(在文檔里面檢查代碼)、IDE 等等。
而且相對(duì)于 Rust 、C等編程語(yǔ)言, MoonBit 的學(xué)習(xí)曲線更加平緩,替換成本低。
對(duì)不同層級(jí)用戶(hù)的使用體驗(yàn):
- 對(duì)初級(jí)用戶(hù)而言:MoonBit 提供完善的類(lèi)型系統(tǒng)、編譯器靜態(tài)分析、詳細(xì)的錯(cuò)誤提示,有助于一次性寫(xiě)出更健壯、穩(wěn)定的代碼。
- 對(duì)高級(jí)用戶(hù)、企業(yè)級(jí)用戶(hù)而言:MoonBit 讓團(tuán)隊(duì)可以直接在 MoonBit 中使用現(xiàn)有的 Python 資產(chǎn),無(wú)需重寫(xiě)或遷移,從而安全地構(gòu)建大型系統(tǒng)。
- 對(duì)生態(tài)貢獻(xiàn)者而言:綁定 Python 庫(kù)比綁定 C 庫(kù)要簡(jiǎn)單得多。只需要編寫(xiě) MoonBit 代碼和部分 Python 代碼,而無(wú)需處理 C 庫(kù)的鏈接器、頭文件位置、C Wrapper 等底層細(xì)節(jié)。
五、從中國(guó)出發(fā),走向世界
我了解到 MoonBit 不僅在國(guó)內(nèi)被稱(chēng)為「國(guó)產(chǎn)編程語(yǔ)言之光」,在海外也備受關(guān)注:
- 美國(guó) IT 權(quán)威媒體《InfoWorld》評(píng)價(jià): MoonBit 是"2025 年最值得學(xué)習(xí)的 11 大前沿編程語(yǔ)言"。
- 知名科技媒體《The New Stack》表示:MoonBit 生成的 Wasm 代碼體積小于 Rust 等主流語(yǔ)言,展現(xiàn)出在邊緣計(jì)算等領(lǐng)域的開(kāi)發(fā)潛力。
- Vue 作者尤雨溪:MoonBit 在JS 后端設(shè)計(jì)方式的好處是可以編寫(xiě)漂亮的功能代碼,以手動(dòng)優(yōu)化級(jí)別的性能對(duì)集合(映射、過(guò)濾器等)進(jìn)行迭代,我對(duì) MoonBit 編譯速度和開(kāi)發(fā)潛力表現(xiàn)出高度期待。
- Golemcloud 公司 CEO John :它是 WASM 原生的,通過(guò)對(duì)組件模型的支持可讓你快速輕松地構(gòu)建WASM 組件并部署在各類(lèi)云平臺(tái)上,并且你可以獲得終極安全性、邊緣部署、持久執(zhí)行、低延遲彈性等等優(yōu)勢(shì)。MoonBit 還是一種有趣的語(yǔ)言,在 Scala 和 Rust 之間達(dá)到了最佳平衡。
最近 MoonBit 也頻繁在國(guó)際技術(shù)大會(huì)上露臉,在 5 月13日 舉行 的 LambdaConf 2025 上,MoonBit 作者張宏波與 Jai 語(yǔ)言作者 Jonathon Blow、新加坡前總理李顯龍之子 Scala 核心貢獻(xiàn)者李浩毅等同臺(tái)交流。
會(huì)上 MoonBit 表示即將全面推出的異步編程模型:
在目前完成底層異步原語(yǔ)的實(shí)驗(yàn)性實(shí)現(xiàn)基礎(chǔ)上,MoonBit 正在構(gòu)建一套后端無(wú)關(guān)、平臺(tái)無(wú)關(guān)的異步抽象體系,使開(kāi)發(fā)者能以同步風(fēng)格書(shū)寫(xiě)高效異步代碼。這一模型適用于 Web 前端、Wasm 運(yùn)行時(shí)、云服務(wù)、嵌入式設(shè)備乃至 AI Agent 的開(kāi)發(fā)場(chǎng)景,目標(biāo)是在 2025 年為全球開(kāi)發(fā)者提供一致、安全、現(xiàn)代化的異步編程體驗(yàn)。
圖片
圖片
六、總結(jié)
MoonBit無(wú)縫融合Python生態(tài)的實(shí)踐其實(shí)給我們展示了一個(gè)新方向:在AI工具鏈的加持下,編程語(yǔ)言可以通過(guò)“生態(tài)繼承”而非“生態(tài)重建”實(shí)現(xiàn)迭代:
1.生態(tài)復(fù)用新玩法:借助 AI 把其他語(yǔ)言的庫(kù)打包好,想用就用,少造輪子,更新技術(shù)棧也更快。
2.靜態(tài)類(lèi)型大眾化:它把類(lèi)型系統(tǒng)和 AI代碼生成相結(jié)合,既保留了 Python 那種靈活感,又能規(guī)避動(dòng)態(tài)類(lèi)型的一堆坑,慢慢把大家?guī)胍环N更安全的開(kāi)發(fā)方式。
MoonBit 的崛起,標(biāo)志著國(guó)產(chǎn)編程語(yǔ)言從“技術(shù)追趕”轉(zhuǎn)向“場(chǎng)景創(chuàng)新”的關(guān)鍵轉(zhuǎn)折。
它不僅是 Python 生態(tài)的挑戰(zhàn)者,更是在為 AI 時(shí)代探索一套新的編程范式。如果它能持續(xù)在性能、生態(tài)和開(kāi)發(fā)體驗(yàn)上找到平衡點(diǎn),說(shuō)不定將來(lái)在云原生和邊緣計(jì)算這些核心場(chǎng)景里,它就會(huì)變成標(biāo)配。
當(dāng)然,這場(chǎng)變革能不能走通,還得看技術(shù)、社區(qū)和商業(yè)化三方面能不能一起發(fā)力,而答案或許將在未來(lái)三年初見(jiàn)分曉。
項(xiàng)目鏈接
python.mbt:
https://github.com/Kaida-Amethyst/python.mbt
matplotlib.mbt:
https://github.com/moonbit-community/matplotlib.mbt
參考資料
1.PyO3,Rust對(duì)CPython的binding:
https://github.com/PyO3/pyo3
2.PyBind11,C++對(duì)CPython的binding:
https://github.com/pybind/pybind11
3.Pyml,OCaml對(duì)CPython的binding:
https://github.com/ocamllibs/pyml
4.Haskell-CPython,Haskell對(duì)CPython的binding:
https://hackage.haskell.org/package/cpython
5.為什么那么多人說(shuō)Python是垃圾?:
https://www.zhihu.com/question/596428165/answer/18597063848