丁香五月天婷婷久久婷婷色综合91|国产传媒自偷自拍|久久影院亚洲精品|国产欧美VA天堂国产美女自慰视屏|免费黄色av网站|婷婷丁香五月激情四射|日韩AV一区二区中文字幕在线观看|亚洲欧美日本性爱|日日噜噜噜夜夜噜噜噜|中文Av日韩一区二区

您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號(hào)安全和更好的產(chǎn)品體驗(yàn),強(qiáng)烈建議使用更快更安全的瀏覽器
此為臨時(shí)鏈接,僅用于文章預(yù)覽,將在時(shí)失效
業(yè)界 正文
發(fā)私信給梁丙鑒
發(fā)送

0

對(duì)話 MoonBit 張宏波:為 AI 重構(gòu)編程語(yǔ)言

本文作者: 梁丙鑒   2025-10-31 15:51
導(dǎo)語(yǔ):AI Coding 最激進(jìn)的擁躉,已經(jīng)對(duì)編程語(yǔ)言下手了。

雷峰網(wǎng)(公眾號(hào):雷峰網(wǎng))訊 “重構(gòu)”是伴隨大模型的熱詞之一。無(wú)數(shù)人喊出這個(gè)口號(hào),朝著軟件、公司乃至一個(gè)行業(yè)的既有模式摩拳擦掌。然而即使是這樣的壯志也仍然沒(méi)有觸及變革的最底層,在應(yīng)用層之前,張宏波認(rèn)為,大模型首先應(yīng)該要重塑的是編程語(yǔ)言本身。

作為構(gòu)建軟件的基石和核心工具,編程語(yǔ)言的發(fā)展周期無(wú)比漫長(zhǎng),是“十年聽(tīng)個(gè)響”——也就是說(shuō),一門全新的編程語(yǔ)言,從開(kāi)發(fā)者寫(xiě)下第一行代碼開(kāi)始,直到十年之后才偶爾會(huì)有人聽(tīng)說(shuō)它。相較之下,自 2022年 ChatGPT 發(fā)布以后就日益為公眾所熟知的大模型,則是徹頭徹尾的新生事物。

張宏波關(guān)注到二者之間的反差并不令人意外,他是國(guó)內(nèi)最早從事編程語(yǔ)言研究的人之一。2023 年,OCaml 語(yǔ)言斬獲 SIGPLAN 軟件大獎(jiǎng),張宏波曾是其核心開(kāi)發(fā)人員之一。后來(lái)他主導(dǎo)開(kāi)發(fā)的 BuckleScript 更是得到了 Bloomberg、Meta 等企業(yè)的大規(guī)模商用,是首個(gè)由中國(guó)人主導(dǎo)的在國(guó)際范圍內(nèi)具有一定影響力的通用編程語(yǔ)言。

2022 年,ChatGPT 的發(fā)布讓“大模型”三個(gè)字真正破圈而出,很多人從此意識(shí)到時(shí)代變了,從事基礎(chǔ)軟件研究的張宏波亦在其列。

彼時(shí)他剛剛離開(kāi)自己供職了五年的 Facebook,加入 IDEA 研究院基礎(chǔ)軟件中心,打算再次從零開(kāi)始開(kāi)發(fā)一門親自主導(dǎo)的編程語(yǔ)言 MoonBit。當(dāng)他把僅開(kāi)發(fā)了一個(gè)月時(shí)間的語(yǔ)法說(shuō)明文檔送進(jìn) ChatGPT 時(shí),結(jié)果令他“非常震驚”:“它能把 MoonBit 代碼生成出來(lái),而且還有模有樣的?!睆埡瓴ɑ貞?,“ChatGPT 讓我們看到 AI Coding 這個(gè)領(lǐng)域取得了很大的突破?!?/p>

在震驚的同時(shí),一個(gè)問(wèn)題也躍上張宏波心頭:當(dāng)模型的代碼生產(chǎn)力超過(guò)人類程序員,那么 AI 時(shí)代需要什么樣的編程語(yǔ)言?

“Python 在 90 年代就開(kāi)始開(kāi)發(fā)了,Rust 語(yǔ)言也是將近 20 年前的事情,它們優(yōu)化的點(diǎn)和 AI 時(shí)代需要的完全不一樣。”張宏波稱。已經(jīng)成型的編程語(yǔ)言存在著對(duì) AI 并不友好的設(shè)計(jì),且難以改變,而自己手中剛剛起步的 MoonBit 則有機(jī)會(huì)成為第一門支持 AI 原生的編程語(yǔ)言。

這不僅意味著在性能、安全性上貼合 AI Coding 的語(yǔ)言特性選擇,更是在編譯器、IDE、調(diào)試器、包管理系統(tǒng)等工具層面彌補(bǔ)模型的短板。不同于 AI Coding 賽道上的同行們,張宏波選擇從最底層的編程語(yǔ)言開(kāi)始重塑整個(gè)工具鏈,最終交出一款名為 MoonBit Pilot 的端到端軟件 deliver。

“這一整套技術(shù)可以快速把想法變成軟件?!彼f(shuō),“Devin 沒(méi)有做起來(lái),但我們大概率可以,因?yàn)槲覀儗?duì)工具鏈的掌控能力更強(qiáng)?!?/p>

今年 9 月 19 日是 MoonBit 正式立項(xiàng)的三周年,但 Moonbit 的用戶規(guī)模已近十萬(wàn)。在和張宏波的對(duì)談中,他告訴我們,編程語(yǔ)言的開(kāi)發(fā)已進(jìn)入收官階段,未來(lái)將正式開(kāi)啟商業(yè)化。

張宏波表示,開(kāi)發(fā) MoonBit 最初的動(dòng)因是遺憾。他曾經(jīng)開(kāi)發(fā)了一門語(yǔ)言叫 BuckleScript(OCaml 的 JavaScript 編譯器,通過(guò)靜態(tài)類型與編譯時(shí)優(yōu)化,可以把 ML 系語(yǔ)法轉(zhuǎn)成可讀 JS 代碼,支持熱重載與 Node 生態(tài),是 ReScript 編程語(yǔ)言的前身),盡管 BuckleScript 有著和 Dart 語(yǔ)言不相上下的技術(shù)含量,卻沒(méi)有得到應(yīng)得的知名度。此番再次得到機(jī)會(huì)主導(dǎo)開(kāi)發(fā)一門全新的編程語(yǔ)言,他從一開(kāi)始就希望 MoonBit 超越單純的學(xué)術(shù)語(yǔ)言,成為一樁健康、可持續(xù)的事業(yè)。

“如果不能商業(yè)化或者商業(yè)化不成功,那 MoonBit 就是一錘子買賣,事情到這就結(jié)束了。相反如果商業(yè)化成功了,我們把 MoonBit 做成了一家很好的公司,那么同行很容易識(shí)別出同行,那些同樣有很強(qiáng)技術(shù)背景出身的人也能看到我們,這樣 MoonBit 才會(huì)進(jìn)入健康可持續(xù)的狀態(tài)。”這是張宏波目前最大的心愿。

以下是 AI 科技評(píng)論與張宏波的對(duì)話全文,為方便閱讀,進(jìn)行了不改變?cè)獾奈淖终{(diào)整。

原生 AI 支持,大模型時(shí)代的編程語(yǔ)言

AI 科技評(píng)論:可否介紹一下您的學(xué)術(shù)經(jīng)歷,是如何開(kāi)始編程語(yǔ)言方向研究的?

張宏波:我有一定學(xué)術(shù)背景,還是工程師出身,做編程語(yǔ)言工具鏈已經(jīng)小 20 年了。2008 年,我在清華的本科畢業(yè)設(shè)計(jì)就是一門動(dòng)畫(huà)編程語(yǔ)言。當(dāng)時(shí)我是在清華電子工程系和微軟亞洲研究院聯(lián)合培養(yǎng),原計(jì)劃是繼續(xù)去讀機(jī)器學(xué)習(xí)的博士。但是因?yàn)槲冶救藢?duì)編程語(yǔ)言比較感興趣,沈向洋老師,也就是我現(xiàn)在的老板,就把我送到了賓大做編程語(yǔ)言相關(guān)的研究。

在賓大讀博期間,我成為了另外一門編程語(yǔ)言 OCaml 的核心開(kāi)發(fā)人員。它有一個(gè)很復(fù)雜的組件需要人維護(hù),當(dāng)時(shí)主要是法國(guó)的科研機(jī)構(gòu) INRIA 在做這件事,后來(lái)破格邀請(qǐng)我作為學(xué)生參加。后來(lái) Bloomberg(彭博)用 Ocaml 寫(xiě)了一個(gè)金融衍生品定價(jià)軟件,需要找用這門編程語(yǔ)言的維護(hù)人員。因?yàn)檫@不是一個(gè)標(biāo)準(zhǔn)的編譯器,懂的人比較少,所以給了我一個(gè)不錯(cuò)的 offer,我就去紐約工作了。

Bloomberg 這家公司是賣金融終端的,雖然用 OCaml 編譯器比較多,但前端渲染用的是 JavaScript。我用一個(gè)周末寫(xiě)了一個(gè)編譯器,把 OCaml 編譯器編到 JavaScript,這樣就可以實(shí)現(xiàn)一些代碼重用。我的老板很喜歡這項(xiàng)工作,它就從我的 hobby project 發(fā)展成了公司贊助的項(xiàng)目。我們公司當(dāng)時(shí)有三四千軟件開(kāi)發(fā)人員,這個(gè)項(xiàng)目,也成了公司當(dāng)年最受歡迎的開(kāi)源項(xiàng)目,叫 BuckleScript。

2017 年我從紐約回國(guó),按常規(guī)來(lái)講可能會(huì)去大廠工作。但當(dāng)時(shí) Facebook 找到了我,說(shuō)他們把 BuckleScript 用在了 Facebook Messenger 和 Facebook Chat 上,希望我能繼續(xù)維護(hù),我就在 Facebook 待了五年時(shí)間。五年后沈老師從微軟退休,到深圳辦了 IDEA 研究院。剛好我也想做點(diǎn)更有意思的事情,就來(lái)到了 IDEA 基礎(chǔ)軟件中心,又開(kāi)始專門做編程語(yǔ)言。

AI 科技評(píng)論:開(kāi)發(fā)一門新的編程語(yǔ)言,一般是出于什么目的?

張宏波:分為兩種場(chǎng)景。公司級(jí)的編程語(yǔ)言是為自己服務(wù),比如蘋(píng)果要開(kāi)發(fā)自己的 IOS,他們會(huì)希望用一種自己可以隨時(shí)隨便修改的編程語(yǔ)言;’微軟有 Windows 平臺(tái),他們也需要提供一整套開(kāi)發(fā)工具。第二類是個(gè)人開(kāi)發(fā)的編程語(yǔ)言,這種是因?yàn)殚_(kāi)發(fā)者看到了一些他們覺(jué)得應(yīng)該解決的問(wèn)題,這兩類語(yǔ)言的發(fā)展路徑是不一樣的。

谷歌有兩種比較有名的編程語(yǔ)言,Go 語(yǔ)言和 Dart 語(yǔ)言。其中 Dart 語(yǔ)言完全由公司需求驅(qū)動(dòng),就是一種公司戰(zhàn)略語(yǔ)言。而 Go 語(yǔ)言雖然也是由谷歌開(kāi)發(fā),但主要是為了解決異步高并發(fā)問(wèn)題,整個(gè)發(fā)展趨勢(shì)就更像是在個(gè)人主導(dǎo)下解決某些特定領(lǐng)域問(wèn)題。

AI 科技評(píng)論:那么 MoonBit  語(yǔ)言希望解決的特定領(lǐng)域問(wèn)題是什么?

張宏波:現(xiàn)在大部分的 AI Coding 都是基于現(xiàn)有的編程語(yǔ)言,依托它們那些很成熟的生態(tài)和工具鏈去做解決方案。這種方案的做法就是把某種編程語(yǔ)言的代碼收集起來(lái),然后把數(shù)據(jù)喂給 AI,再讓它吐出來(lái),但這樣的生成結(jié)果沒(méi)什么保證。因?yàn)槭紫?AI 生成的東西可能有些非常低級(jí)的語(yǔ)法結(jié)構(gòu)錯(cuò)誤,另外大模型在訓(xùn)練的時(shí)候吃了整個(gè)互聯(lián)網(wǎng)上的數(shù)據(jù),這部分?jǐn)?shù)據(jù)里還有很多別的編程語(yǔ)言。不同編程語(yǔ)言之間有相似性,直接讓 AI 生成代碼很有可能產(chǎn)生幻覺(jué),最后會(huì)給你很多似是而非的代碼,這個(gè)體驗(yàn)感就不太好。

大模型其實(shí)是很新的東西,但編程語(yǔ)言的發(fā)展周期很漫長(zhǎng),沒(méi)有 AI 的時(shí)候,可能十年才能聽(tīng)個(gè)響,也就是一門編程語(yǔ)言從寫(xiě)第一行代碼開(kāi)始,直到十年之后才偶爾有人聽(tīng)說(shuō)它。所以現(xiàn)在已經(jīng)功成名就的編程語(yǔ)言,都是很早之前上市的。Python 在 90 年代就開(kāi)始開(kāi)發(fā)了,Rust 語(yǔ)言也是將近 20 年前的事情,它們優(yōu)化的點(diǎn)和 AI 時(shí)代需要的完全不一樣。這就是 MoonBit 要解決的問(wèn)題,我們有原生的 AI 支持。我們做的也不僅僅是一門編程語(yǔ)言,還有基于這個(gè)語(yǔ)言的 Coding Agent,我們叫 MoonBit Pilot。

AI 科技評(píng)論:對(duì)于一門編程語(yǔ)言來(lái)說(shuō),“原生的 AI 支持”要如何理解?

張宏波:以前我們?cè)O(shè)計(jì)編程語(yǔ)言的時(shí)候會(huì)考慮人機(jī)交互,因?yàn)檫@個(gè)時(shí)候是人的生產(chǎn)力更高。那有了大模型以后,不一樣的點(diǎn)在哪?

首先是 AI 生成代碼。AI 的出碼速度其實(shí)和人差不多,當(dāng) AI 能生成一萬(wàn)行代碼以后,寫(xiě)代碼已經(jīng)不是瓶頸了,代碼審核才是重點(diǎn),你會(huì)希望 AI Coding 的可靠性可以更高。如果 AI 給我生成了十萬(wàn)行 JavaScript 源代碼,我是不敢維護(hù)不敢接手的,因?yàn)?AI 很可能只是快速給了我一個(gè)原型,可能可以跑起來(lái),但如果以后我要擴(kuò)展,繼續(xù)增加特定功能,那我肯定會(huì)很痛苦。這里面還有安全性問(wèn)題,AI 生成的一萬(wàn)行代碼如果存在安全漏洞,用戶的損失也是很大的。所以我說(shuō),AI 時(shí)代對(duì)代碼可靠性的要求會(huì)非常高。

另外就是更加強(qiáng)調(diào)編程語(yǔ)言的性能。為什么這么說(shuō)呢?Python 為了人機(jī)交互方便、開(kāi)發(fā)效率高犧牲了性能,但如果用 AI 來(lái)做代碼生成,就可以幾乎零成本地獲得代碼,這時(shí)候?qū)幊陶Z(yǔ)言的性能要求就會(huì)更高。如果在同樣的生成速度下,MoonBit 可以比 Python 快 10 到 100 倍,那沒(méi)有道理用 AI 來(lái)生成 Python 而不是 MoonBit。

AI 科技評(píng)論:針對(duì) AI Coding 的這些特點(diǎn),MoonBit 做了哪些設(shè)計(jì)?

張宏波:我舉個(gè)例子,Java 運(yùn)行的時(shí)候可能會(huì)拋空指針異常(null point exception),而 MoonBit 可以在編譯層面就杜絕這種運(yùn)行錯(cuò)誤。更極端地,寫(xiě)好的 MoonBit 代碼可以通過(guò)數(shù)據(jù)做形式化驗(yàn)證,保證輸出代碼是完全符合規(guī)范的。我自己就是 AI 的高度使用者,接手 AI 生成的代碼其實(shí)是非常難的一件事。AI 一開(kāi)始給了你一個(gè)可以工作的版本,但你還需要讓 AI 能自動(dòng)重構(gòu),讓代碼變得更整潔,讓接口變得更低耦合、高內(nèi)聚。我們有很多設(shè)計(jì)都在往這個(gè)方面靠,就是通過(guò)在編譯的時(shí)候做豐富的靜態(tài)分析,保證代碼的可靠性。

其實(shí)這也是有傳承的。我學(xué)生時(shí)代做 OCaml 語(yǔ)言,用它用得最多的是紐約最大的金融機(jī)構(gòu)之一 Jane Street,他們對(duì)軟件可靠性的要求很高。因?yàn)橐坏┏隽?bug,就會(huì)有很大的經(jīng)濟(jì)損失,所以這些設(shè)計(jì)思路都是一脈相承的。

另外編程語(yǔ)言本質(zhì)上是一個(gè)給程序員提供各種各樣抽象的機(jī)制。函數(shù)是一種最基本的抽象,很自然地你會(huì)希望這個(gè)函數(shù)可以通用,可以有泛型(Generics)。泛型就需要組建的數(shù)據(jù)有結(jié)構(gòu)體,每種數(shù)據(jù)有不同的分支,你可能需要一個(gè) enum 枚舉類型(在 MoonBit 語(yǔ)法中,enum 枚舉類型是一種把有限多種彼此排斥的函數(shù)打包成同一類型的機(jī)制,支持用戶簡(jiǎn)潔地處理同一抽象但不同形狀的數(shù)據(jù),是寫(xiě)泛型、處理分支邏輯的核心工具)。MoonBit 有個(gè)很大的特點(diǎn)在于,它是一種對(duì)數(shù)據(jù)處理非常友好的編程語(yǔ)言。

比如你拿 JSON 過(guò)來(lái),我們有原生的 JSON 處理可以直接做模式匹配,而且是純靜態(tài)的。如果你給我字符串,我可以原生地用正則表達(dá)式進(jìn)行匹配,而且效率很高,不存在安全漏洞。如果你給我原生的 XML 字節(jié)流,我可以對(duì)它用比特位來(lái)進(jìn)行匹配。MoonBit 最大的語(yǔ)言特性就是對(duì)數(shù)據(jù)處理非常友好,這也是根據(jù)我多年經(jīng)驗(yàn)的設(shè)計(jì)。當(dāng)你寫(xiě)了很多業(yè)務(wù) APP,你會(huì)發(fā)現(xiàn)干得最多的事就是把數(shù)據(jù)從某種格式轉(zhuǎn)換成另外一種格式,所以我們針對(duì)這點(diǎn)做了很多強(qiáng)化工作。

AI 科技評(píng)論:對(duì) Moonbit 的這些強(qiáng)化是否基于一種全新的語(yǔ)言邏輯,還是主要在工具鏈層面實(shí)現(xiàn)?

張宏波:在用戶看來(lái)語(yǔ)言邏輯是一樣的,但是我們的運(yùn)行系統(tǒng)會(huì)更豐富。比如代碼拋異常的問(wèn)題,絕大部分語(yǔ)言不會(huì)要求編譯器跟蹤代碼,看哪段可能拋哪段可能不拋,但 MoonBit 的編譯器會(huì)。在代碼還沒(méi)有跑起來(lái)的時(shí)候,它就會(huì)告訴你這段代碼有沒(méi)有可能拋異常。相當(dāng)于我們做的是一整套開(kāi)發(fā)者工具,包括編譯器、IDE、調(diào)試器、包管理系統(tǒng)、測(cè)試覆蓋率工具,還有我們自帶的 Agent MoonBit Pilot,這是一整個(gè)全家桶。

這樣做的工程量非常浩大,需要的時(shí)間也很長(zhǎng),一般只有公司級(jí)的編程語(yǔ)言才會(huì)傾向于做全家桶。Python、Rust 這種個(gè)人開(kāi)發(fā)的語(yǔ)言一開(kāi)始往往只是寫(xiě)了幾個(gè)編譯器,后來(lái)的人慢慢貢獻(xiàn)了各種各樣的工具。但這就不是一種全局的視角,開(kāi)發(fā)的時(shí)候不考慮這個(gè)問(wèn)題,后面的 IDE 會(huì)特別難做。MoonBit 從一開(kāi)始就考慮了一整套工具鏈,所以我們做的不是一個(gè)編譯器或者一種語(yǔ)言規(guī)范,而是一個(gè)編程平臺(tái)。MoonBit 有自己的工具系統(tǒng),這是我們和其它編程語(yǔ)言的一個(gè)很大不同。

專屬語(yǔ)言工具,“把 AI 當(dāng)成用戶看待”

AI 科技評(píng)論:從 2022 年團(tuán)隊(duì)成立到今天,MoonBit 的開(kāi)發(fā)已經(jīng)過(guò)去三年時(shí)間,這中間經(jīng)過(guò)了哪些發(fā)展階段?

張宏波:2022 年 9 月 16 號(hào),我們部門成立開(kāi)始招人,一直到 2023 年 8 月 18 號(hào)我們發(fā)布了 MoonBit 的 Alpha 版本,這是第一個(gè)階段。Alpha 版本發(fā)布當(dāng)天,我們就上了 HackerNews 頭版頭條。外界反響比較好,這對(duì)我們的激勵(lì)還是很大的。

下一個(gè)節(jié)點(diǎn)是 Native 后端。其實(shí)我們一開(kāi)始定的 scope 沒(méi)那么大,當(dāng)時(shí)只準(zhǔn)備做 WebAssembly,因?yàn)樵谶@樣的平臺(tái)上生成代碼會(huì)很高效。但是在做了大概兩年之后,我們開(kāi)始支持用戶編譯到 X86 匯編、ARM 匯編,這樣我們就不再只是聚焦于一個(gè)小場(chǎng)景的編程語(yǔ)言,而是徹徹底底的通用編程語(yǔ)言。

第三個(gè)節(jié)點(diǎn)就是這個(gè)月月底了,我們會(huì)發(fā)布一個(gè)異步網(wǎng)絡(luò)框架。今年 6 月我們發(fā)布了 Beta 版本,和 Alpha 版本比起來(lái),這次更新之后 MoonBit 的語(yǔ)言特性已經(jīng)基本穩(wěn)定,還有了相對(duì)比較完善的包管理。其實(shí)到此為止 MoonBit 已經(jīng)跑通了所有環(huán)節(jié),可以做端到端應(yīng)用開(kāi)發(fā),基本上到收官階段了。

現(xiàn)在 MoonBit 語(yǔ)言特性是非常豐富的,我個(gè)人感覺(jué)即使和 Go 語(yǔ)言的最新版本比也是相當(dāng)?shù)?,甚至可以媲美Swift、Kotlin 這些主流編程語(yǔ)言。另外我們?cè)阱e(cuò)誤處理方面,也可以和最新的 SOTA 相媲美。和 1.0 版本比起來(lái),Beta 版本就差在月底發(fā)布的異步功能。我們的第一個(gè)開(kāi)源項(xiàng)目就是用 MoonBit 寫(xiě)智能體,因?yàn)檫@項(xiàng)任務(wù)會(huì)涉及到很多異步的網(wǎng)絡(luò)通信。

AI 科技評(píng)論:為什么選擇 WebAssembly 作為 MoonBit 支持的第一個(gè)后端?后來(lái)添加原生后端又是出于什么考慮?

張宏波:作為一門編程語(yǔ)言,早期想獲得核心客戶是很難的。因?yàn)橐婚_(kāi)始什么都缺,工具也經(jīng)常出 bug,所以我們就瞄準(zhǔn)了 WebAssembly。這是一個(gè) 2017 年出的標(biāo)準(zhǔn)指令集,對(duì) MoonBit 這樣的新編程語(yǔ)言來(lái)說(shuō),去做新編的標(biāo)準(zhǔn)指令集是有優(yōu)勢(shì)的。我們是后發(fā)者,可以為它的特性專門做一些設(shè)計(jì)。MoonBit 在 WebAssembly 平臺(tái)上輸入的代碼體積很小,性能很好,這也是為什么我們?cè)诘诙昃陀辛说谝粋€(gè)付費(fèi)客戶。但這也只是 MoonBit 的第一個(gè)落地場(chǎng)景,我們的最終目標(biāo)還是覆蓋全場(chǎng)景,做一門通用編程語(yǔ)言。Native 后端的應(yīng)用場(chǎng)景更多,所以對(duì)我們非常重要。

一開(kāi)始做架構(gòu)設(shè)計(jì)的時(shí)候,我們就用了分很多層的 IR,這樣添加新后端的工作量就不是那么大。現(xiàn)在 MoonBit 有四個(gè)后端:編譯到 WebAssembly,包括有 GC 和沒(méi) GC(垃圾回收)的兩個(gè)版本;編譯到原生后端,也就是機(jī)器碼,也有編譯到 C 語(yǔ)言和通過(guò) LLVM 直接輸出機(jī)器碼兩種選擇。我們還有一個(gè)后端是 JavaScript,這個(gè)用來(lái)做前端 UI 開(kāi)發(fā),將來(lái)我們會(huì)實(shí)現(xiàn)全棧開(kāi)發(fā)。

AI 科技評(píng)論:Python、Rust 這些個(gè)人開(kāi)發(fā)的編程語(yǔ)言最終在全球范圍內(nèi)都非常流行,您認(rèn)為對(duì) MoonBit 來(lái)說(shuō)有什么啟示?

張宏波:一種編程語(yǔ)言能不能成為現(xiàn)象級(jí)的編程語(yǔ)言,方方面面的因素都有。有可能它本身設(shè)計(jì)得就比較好,比如 Rust 確實(shí)解決了一些問(wèn)題,但同時(shí)還有其它非必然因素。比如 Python,2010 年前后它的用戶量已經(jīng)在 Node.js 的影響下開(kāi)始有了下降的勢(shì)頭,但后來(lái)又被 AI 給帶火了。其實(shí)一種編程語(yǔ)言能流行起來(lái),還是有很多偶然因素的。

2022 年國(guó)慶節(jié)前,我加入了 IDEA,剛好一個(gè)月之后 ChatGPT 發(fā)出來(lái),我們就注意到 AI 用在代碼生成上非??孔V。我在賓大讀博的時(shí)候,最后一個(gè)項(xiàng)目叫 program synthesis(合成代碼),所以我對(duì)合成代碼這個(gè)領(lǐng)域還比較了解。我們把 MoonBit 的語(yǔ)法,當(dāng)時(shí)還是開(kāi)發(fā)語(yǔ)法的說(shuō)明文檔送進(jìn) ChatGPT,它就能把 MoonBit 代碼生成得有模有樣的,我們非常震驚。ChatGPT 讓我們看到 AI Coding 這個(gè)領(lǐng)域取得了很大的突破,所以后來(lái)整個(gè)語(yǔ)言設(shè)計(jì)才考慮了很多 AI 的因素。

AI 科技評(píng)論:和現(xiàn)有的 AI Coding 產(chǎn)品相比,MoonBit Pilot 在工程上做了哪些創(chuàng)新?

張宏波:目前最重要的是理解 AI 有哪些局限,然后提供一些專屬于 MoonBit 的語(yǔ)言工具來(lái)克服。

比如修改函數(shù),第一件事是去找相應(yīng)的代碼在哪。如果你像 OpenAI 的 Codex 或者 Anthropic 的 Claude Code 那樣 grok 整個(gè)文件,效率是很低的。而我們 MoonBit Pilot 通過(guò)內(nèi)部構(gòu)建的語(yǔ)義分析工具,一下就可以找到。

我們比 Claude 更懂 MoonBit 編程語(yǔ)言,所以可以提供很多內(nèi)置的原生的工具,而且我們也更懂編程語(yǔ)言的應(yīng)用場(chǎng)景。比如在做代碼重構(gòu)的時(shí)候,經(jīng)常會(huì)一下出現(xiàn)幾千個(gè) warning。如果你讓 Claude 一個(gè)一個(gè)地修,那很容易就把 context 給用完了。但是因?yàn)槲覀冎滥男?warning 是相對(duì)獨(dú)立的,所以就可以把它作為一個(gè)并發(fā)的,跟上游無(wú)關(guān)的問(wèn)題來(lái)進(jìn)行修復(fù),這樣做效果會(huì)好很多。

傳統(tǒng)來(lái)講你會(huì)給 VSCode 開(kāi)發(fā)一個(gè) IDE 插件,我們同樣可以給大模型開(kāi)發(fā)一個(gè)基于文本的工具。我們現(xiàn)在就在開(kāi)發(fā)兩套 IDE,一套給用戶,另外一套就是給大模型用的,這樣 MoonBit Pilot 就可以自動(dòng)通過(guò) IDE 去重命名、查找代碼、查找文檔。這也算是 MoonBit 跟其它編程語(yǔ)言一個(gè)比較大的區(qū)別,我們把 AI 當(dāng)成用戶看待。

AI 科技評(píng)論:那在模型層面,MoonBit Pilot 專門做了 post training(后訓(xùn)練)嗎?

張宏波:我們將來(lái)會(huì)做 post training,但現(xiàn)在還沒(méi)有。預(yù)計(jì)到今年年底,在我們的包管理上會(huì)有一千萬(wàn)行代碼,到明年年底會(huì)有一億行比較高質(zhì)量的 MoonBit 代碼。等我們達(dá)到一億行以上的數(shù)量級(jí)之后,就會(huì)做自己的 post training,在達(dá)到這個(gè)數(shù)量級(jí)之前去做意義是不大的。

其實(shí)我們比較驚喜地關(guān)注到,Claude 4.0 已經(jīng)非常懂 MoonBit 了,我們的很多庫(kù)已經(jīng)可以用 Claude 4.0 生成。它相比 Claude 3.7 有了巨大的躍遷,但并不是智能水平本身提高了,而是因?yàn)?4.0 的訓(xùn)練截止日期是 2025 年 3 月份。它讀了相當(dāng)多的 MoonBit 語(yǔ)料,這方面能力就變得很強(qiáng)。

智能還會(huì)不會(huì)有大的躍升,這是最大的不確定性。我目前觀察到的趨勢(shì)是智能已經(jīng)到頂了,這當(dāng)然是個(gè)變數(shù),但在這個(gè)假設(shè)成立的前提下,新的大模型在預(yù)訓(xùn)練中還會(huì)有更多新知識(shí)喂進(jìn)去,未來(lái)的新模型對(duì) MoonBit Pilot 會(huì)有極大的推動(dòng)作用。OpenAI 基模預(yù)訓(xùn)練數(shù)據(jù)的截止日期都在一年之前,但他們終究還是要更新上來(lái)的。

AI 科技評(píng)論:過(guò)去 LLVM(一套模塊化、可重用的編譯器基礎(chǔ)設(shè)施)與 WASM(即 WebAssembly) 可以提供共享的中間表示或字節(jié)碼,但沒(méi)有直接在源代碼層面實(shí)現(xiàn)互譯?,F(xiàn)在 AI Coding 在代碼補(bǔ)全、跨語(yǔ)言片段翻譯上已經(jīng)表現(xiàn)出實(shí)用價(jià)值,這種能力未來(lái)能否擴(kuò)展到大規(guī)模的編程語(yǔ)言互譯上?

張宏波:我們現(xiàn)在已經(jīng)在做這件事情。MoonBit Pilot 會(huì)給用戶一個(gè) GitHub 地址,可以把別的編程語(yǔ)言代碼翻譯成 MoonBit 的代碼。我們的生態(tài)之所以能加速,也有這部分原因。但目前來(lái)看,在不同編程語(yǔ)言之間進(jìn)行翻譯,最后還是要人工審核過(guò)濾一下,因?yàn)椴煌幊陶Z(yǔ)言之間有很多語(yǔ)義本身就是不匹配的。

舉個(gè)簡(jiǎn)單的例子,Python 的整數(shù)可以無(wú)窮大,但有的語(yǔ)言出于性能考慮,可能只有 32 位或者 64 位。所以在這些語(yǔ)言之間,如果要在沒(méi)有人工干預(yù)的情況下實(shí)現(xiàn) 100% 轉(zhuǎn)換,是不太現(xiàn)實(shí)的。只是兩種語(yǔ)言的特性越接近,工作量就越小。

AI 科技評(píng)論:在 MoonBit 之前你已經(jīng)開(kāi)發(fā)了不少編程語(yǔ)言,相比之下這次的開(kāi)發(fā)經(jīng)歷有什么不同?

張宏波:MoonBit 這次不一樣在哪呢?之前做 BuckleScript 還有 Ocaml 的時(shí)候,剛開(kāi)始都是一兩個(gè)人在做,scope比較小?,F(xiàn)在在 IDEA 這邊,團(tuán)隊(duì)的人數(shù)雖然不是很多,但我們一開(kāi)始就是有一個(gè)團(tuán)隊(duì)在做這件事,所以節(jié)奏就很快。這個(gè)月底我們把異步框架發(fā)布出來(lái)以后,就可以用 MoonBit 寫(xiě)一些很復(fù)雜的應(yīng)用了。從 2022年 9 月 19 號(hào)到現(xiàn)在,算起來(lái)剛好三年。

MoonBit 的進(jìn)度能比較快,還有兩方面原因。一是我本人已經(jīng)做了很久的編程語(yǔ)言,語(yǔ)言設(shè)計(jì)的每個(gè)環(huán)節(jié)我都摸過(guò)一遍了。我在 Facebook 的最后一年基本都在休假,就自己寫(xiě)了很多小語(yǔ)言,把每個(gè) pipeline(流水線)都寫(xiě)了一遍,所以這次起步才能非???。

另外這里也有人口紅利的因素。我們是國(guó)內(nèi)最早做編程語(yǔ)言的團(tuán)隊(duì),所以能招到那些很有能力的人。編程語(yǔ)言和一般的軟件開(kāi)發(fā)不一樣,最核心的設(shè)計(jì)不是靠人多堆出來(lái)的,可能幾個(gè)人就夠了。語(yǔ)言設(shè)計(jì)是一門藝術(shù),不存在哪種語(yǔ)言絕對(duì)更好。語(yǔ)言的核心設(shè)計(jì),比如類型系統(tǒng)長(zhǎng)什么樣、選哪些語(yǔ)言特性、語(yǔ)法,這些東西都沒(méi)有標(biāo)準(zhǔn)答案,完全依靠設(shè)計(jì)者的品味來(lái)決定,可以說(shuō) everything is about taste。

AI 科技評(píng)論:可以評(píng)價(jià)一下自己的品味嗎?

張宏波:在語(yǔ)言設(shè)計(jì)方面,我覺(jué)得我還是很有品味的。主要是見(jiàn)過(guò)的太多,你就知道每一門語(yǔ)言的抽象都有代價(jià)。實(shí)現(xiàn)某個(gè)特性需要付出相應(yīng)的 budget,你需要在這里做出取舍,所以怎么實(shí)現(xiàn),以及代價(jià)是不是值得,這兩方面都要懂。

持續(xù)商業(yè)化,MoonBit 不做一錘子買賣

AI 科技評(píng)論:MoonBit 的團(tuán)隊(duì)規(guī)模目前多大了?

張宏波:我覺(jué)得我們團(tuán)隊(duì)非常出色。我們有十幾位技術(shù)員工,兩位負(fù)責(zé)運(yùn)營(yíng)的同事,還有一些實(shí)習(xí)生。很小的規(guī)模,但是很年輕,90% 的成員都是第一次參加工作,大家都是本科畢業(yè)或者研究生畢業(yè)直接加入團(tuán)隊(duì)的。我們的管理成本也很低,因?yàn)榇蠹易约憾己芟矚g做這件事情。我們從來(lái)沒(méi)有要求過(guò)周末加班干活,但有一次我周末去公司,一打開(kāi)門發(fā)現(xiàn)大家都在那寫(xiě)代碼,就是喜歡干。

我們團(tuán)隊(duì)的主力是 97 到 01 年的,最小的員工是 02 年的,年紀(jì)越小反而越能打。國(guó)內(nèi)年紀(jì)大一點(diǎn)的人才里,專門做編程的比較少。要想在編程領(lǐng)域做出一番成績(jī),還是需要長(zhǎng)時(shí)間的耕耘,但國(guó)內(nèi)以前沒(méi)有過(guò)跟我們類似的工作機(jī)會(huì)。做編譯器的人國(guó)內(nèi)不少,但要說(shuō)做語(yǔ)言設(shè)計(jì),整個(gè)供應(yīng)鏈?zhǔn)菦](méi)有的。不過(guò)中國(guó)的人才基數(shù)大,在小朋友里能找到很多怪才。

AI 科技評(píng)論:從 2022 年到現(xiàn)在,團(tuán)隊(duì)遇到的最大困難是什么?

張宏波:最困難的就是前 8 個(gè)月。從 2022 年 9 月 19 號(hào)到 2023 年 8 月 18號(hào),當(dāng)時(shí)沒(méi)有人覺(jué)得我們可以做成,大家都覺(jué)得 MoonBit 就是在搞一個(gè)學(xué)術(shù)語(yǔ)言。直到我們發(fā)布了第一個(gè)版本,人家才看到你好像真的可以。當(dāng)時(shí)國(guó)內(nèi)除了我們也只有一家公司在做這件事,所以那之后招人也越來(lái)越順利。

現(xiàn)在 MoonBit 已經(jīng)基本要做成了,但這也只是我們的第一個(gè) milestone,未來(lái)我們還想把它做成一件可持續(xù)、可商業(yè)化的事情。我覺(jué)得商業(yè)化的成功是非常有意義的,我不是很在意錢,我愿意降很多薪水來(lái)組個(gè)團(tuán)隊(duì)把事情做成,但如果不能商業(yè)化或者商業(yè)化不成功,那 MoonBit 就是一錘子買賣,事情到這就結(jié)束了。相反如果商業(yè)化成功了,我們把 MoonBit 做成了一家很好的公司,那么同行很容易識(shí)別出同行,那些同樣有很強(qiáng)技術(shù)背景出身的人也能看到我們,這樣 MoonBit 才會(huì)進(jìn)入健康可持續(xù)的狀態(tài)。這是我最大的心愿,我希望 MoonBit 就是我的最后一份工作了,而 AI 剛好給了我們這樣一個(gè)商業(yè)化的機(jī)會(huì)。

AI 科技評(píng)論:你對(duì) MoonBit 的商業(yè)化有什么設(shè)想?

張宏波:剛剛開(kāi)始做 MoonBit 的時(shí)候,還沒(méi)有 AI Coding 這樣一種商業(yè)化變現(xiàn)的方式。當(dāng)時(shí)我覺(jué)得我們的上限就是 Matlab、Mathematica 這種公司,就是有些人在用,但不會(huì)做得很大。AI Coding 出來(lái)以后,我是比較樂(lè)觀的,因?yàn)檫@個(gè)市場(chǎng)足夠大了。以前的開(kāi)發(fā)者工具是生產(chǎn)力工具,你的服務(wù)對(duì)象是程序員,但是能通過(guò) AI 生成代碼以后,我們就可以更進(jìn)一步,可以直接賣軟件賣服務(wù)了。未來(lái)我們的商業(yè)化不再會(huì)是賣 IDE 的思路,用戶不需要知道產(chǎn)品是基于 MoonBit 語(yǔ)言的,這只是我們一項(xiàng)冰山下的技術(shù)。

未來(lái)我們想做成一個(gè)端到端的軟件 deliver(交付),有點(diǎn)像之前很火的創(chuàng)業(yè)公司 Devin,這一整套技術(shù)可以快速把想法變成軟件。他們沒(méi)有做起來(lái),但我覺(jué)得 MoonBit Pilot 大概率可以,因?yàn)槲覀儗?duì)整個(gè)工具鏈的掌控能力更強(qiáng)。一種現(xiàn)成的語(yǔ)言可能設(shè)計(jì)成了對(duì) AI 不友好的樣子,如果你不主導(dǎo)這個(gè)語(yǔ)言,那很難去改動(dòng)那些已經(jīng)定型的設(shè)計(jì)。

未來(lái) MoonBit Pilot 一定會(huì)是個(gè)非常大的市場(chǎng)。軟件的構(gòu)造成本可能在未來(lái)三到五年內(nèi)降到以前的十分之一甚至百分之一,很多軟件都要準(zhǔn)備重寫(xiě)。即使一款軟件已經(jīng)在工作了,如果能夠通過(guò) AI 無(wú)痛地轉(zhuǎn)移,同時(shí)效率提高 10 到 100 倍,你會(huì)不會(huì)干?你肯定有動(dòng)力干,而且很多長(zhǎng)尾需求也會(huì)被激發(fā)出來(lái)。

AI 科技評(píng)論:從把 MoonBit 做出來(lái)到做成一個(gè)健康可持續(xù)的商業(yè)案例,這中間還有哪些困難?

張宏波:MoonBit 在國(guó)內(nèi)基本可以說(shuō)是獨(dú)苗,我們現(xiàn)在已經(jīng)有很多用戶,將來(lái)的商業(yè)化是順其自然的事情。我自己很有信心,但很多時(shí)候需要資金扶持,說(shuō)服投資人相信這件事是比較難的。

如果是不太了解編程語(yǔ)言的投資人,可能都沒(méi)有聽(tīng)說(shuō)過(guò)有哪些中國(guó)團(tuán)隊(duì)做過(guò)這樣的事情。和在硅谷創(chuàng)業(yè)比起來(lái),這也是在國(guó)內(nèi)創(chuàng)業(yè)比較有挑戰(zhàn)的地方。比如 GitHub 的 CEO 就是投資人,你跟他講 MoonBit 他肯定能聽(tīng)懂。還有我的前老板扎克伯格,他對(duì) AI 產(chǎn)生興趣之后自己閉關(guān)寫(xiě)了兩周代碼,他自己就是個(gè)非常 technical 的人。但是在國(guó)內(nèi),很多投資人就沒(méi)有編程背景。

國(guó)內(nèi)的投資人主要是靠生意模式,而沒(méi)有靠一家非常 hardcore 的軟件公司賺到過(guò)錢,所以 MoonBit 沒(méi)有先例。但我們的用戶在持續(xù)增長(zhǎng),我們會(huì)有很好的數(shù)據(jù)支撐,通過(guò)實(shí)際的 datapoint(數(shù)據(jù)點(diǎn))來(lái)證明這件事情。

AI 科技評(píng)論:MoonBit Pilot 的主要受眾會(huì)是哪些群體?

張宏波:我們現(xiàn)階段主打 ToC,大概有 10 萬(wàn)用戶,主要分兩類。一類是國(guó)內(nèi)搞信息學(xué)競(jìng)賽的選手,他們對(duì)這種東西很感興趣。另一類是國(guó)外用 WebAssembly 做商業(yè)化開(kāi)發(fā)的人。我們的策略是先 ToC 再 ToB。就是希望 MoonBit 在開(kāi)發(fā)者中間先有比較好的口碑,然后倒逼管理層采納我們,所以會(huì)盡量讓更多開(kāi)發(fā)者用上我們的編程語(yǔ)言。

程序員能提供的市場(chǎng)是很有限的,一種模式是智能體輔助程序員寫(xiě)代碼,因?yàn)樾枰獙?shí)時(shí)交互,提高的生產(chǎn)力可能只有百分之三四十。我們未來(lái)想做的是同時(shí)有十幾個(gè)甚至幾百個(gè) Agent 給你寫(xiě)代碼,人就相當(dāng)于一個(gè)監(jiān)工。到時(shí)候更多的是異步 AI 編程,人不需要坐在電腦前面實(shí)時(shí)看著代碼,只要等結(jié)果就可以了,這樣提高生產(chǎn)力才是最有效的。

AI 科技評(píng)論:你從本科就開(kāi)始做編程語(yǔ)言,最初是怎么對(duì)這個(gè)方向產(chǎn)生興趣的?

張宏波:編程語(yǔ)言本身就有自己的魅力。大三那年我在微軟實(shí)習(xí),他們搞了一門函數(shù)式編程語(yǔ)言,叫 F#。其實(shí)在那之前我對(duì)編程都沒(méi)那么感興趣,但后來(lái)我發(fā)現(xiàn)寫(xiě)這門編程語(yǔ)言的程序員很少出 bug,代碼也很短,看上去就像數(shù)學(xué)公式一樣優(yōu)雅。更早之前我寫(xiě)的是 C 語(yǔ)言,那個(gè)時(shí)候可能花一個(gè)小時(shí)寫(xiě)的代碼,后面要花三個(gè)小時(shí) debug才能讓代碼跑通,獲得感不是很強(qiáng)。后來(lái)我用 F#,代碼寫(xiě)出來(lái)基本就是正確的,就可以跑通。這件事確實(shí)改變了我對(duì)編程的看法,讓我覺(jué)得編程可以是很有趣的,那之后我就入坑了。

AI 科技評(píng)論:最開(kāi)始決定開(kāi)發(fā) MoonBit 的時(shí)候,是出于什么契機(jī)?

張宏波:2022 年我答應(yīng)沈老師來(lái)基礎(chǔ)軟件中心做編程語(yǔ)言,想做這件事,是因?yàn)槲矣X(jué)得有點(diǎn)遺憾。之前提到的 BuckleScript 雖然有一定知名度,但沒(méi)有達(dá)到它應(yīng)有的程度,我個(gè)人覺(jué)得它的技術(shù)含量和谷歌的 Dart 語(yǔ)言可以說(shuō)不相上下。因?yàn)檫z憾,所以想再做一門編程語(yǔ)言。而且這次完全是我自己主導(dǎo),可控性會(huì)更強(qiáng)。

雷峰網(wǎng)文章

雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見(jiàn)轉(zhuǎn)載須知。

分享:
相關(guān)文章
最新文章
請(qǐng)?zhí)顚?xiě)申請(qǐng)人資料
姓名
電話
郵箱
微信號(hào)
作品鏈接
個(gè)人簡(jiǎn)介
為了您的賬戶安全,請(qǐng)驗(yàn)證郵箱
您的郵箱還未驗(yàn)證,完成可獲20積分喲!
請(qǐng)驗(yàn)證您的郵箱
立即驗(yàn)證
完善賬號(hào)信息
您的賬號(hào)已經(jīng)綁定,現(xiàn)在您可以設(shè)置密碼以方便用郵箱登錄
立即設(shè)置 以后再說(shuō)