又又又給 AI 發明新語言了,卡內基梅隆大學讓計算機理解人的想法後自動coding,結果翻車了

編程語言圈子又出「新花樣」了!

如果開發者之間有一件事是共通的,那就是大家總愛創造新語言。這些語言往往被描述為「像 C 語言但更簡單」、「像 C 語言但更現代」或「像 C 語言但專為某些特定群體設計」。而這一次,我們迎來了一種專為 AI 設計的編程語言,可以稱之為「適用於 AI 的 C 語言」。

這次的新語言名為 Mirror,有一些獨到之處。它的基本語法由兩部分組成:定義的函數名稱,以及輸入輸出示例。

它還有點像測試驅動開發(TDD),但不同的是你無需編寫測試,而是直接提供黑盒版本。換句話說,這是一種 AI 驅動的函數式編程體驗,同時也意味著你可以省去手動寫代碼的麻煩。

將 AI 融入傳統編程語言

我們知道在 Excel 中,你可以通過提供一兩個示例來演示如何格式化一列,之後 Excel 會學習這些模式,並將其應用到其他部分。

這種通過示例來引導的方式,是否也能用於編程呢?

卡內基梅隆大學從事教學工作的 Austin Z. Henley 就提出了這樣的設想。想像一下,你不再需要一行一行地寫代碼,而是直接通過示例演示給計算機,讓它「學會」你的意圖。於是他和某創業公司 CTO Andrés Gottlieb 等人一起開發了一個名為 Mirror 的語言。

Austin 將此稱為「編程示例」技術,用戶提供想要的結果示例,系統生成可以執行該結果的代碼。

Mirror 設計得非常簡單直觀,用戶首先需要定義函數的簽名,包括函數名稱、輸入參數的類型以及輸出參數的類型。接下來,用戶需要提供一個或多個函數調用的示例,包括適當的輸入參數和對應的輸出結果。

讓我們從一個非常簡單的示例開始,看看這個語言的設計邏輯:

首先定義一個名為 is_even 的函數,然後給出幾個例子,比如 0 是偶數,返回 true,而 1 是奇數,則返回 false…… 這些例子為大語言模型(LLM)提供了訓練依據,用於生成符合規則的實際代碼。

最後用 is_even(12345) 來調用 is_even 函數,並傳入參數 12345,那麼它會判斷 12345 是否為偶數。

在後端,Mirror 使用傳統的遞歸下降解析器會處理這些示例,然後將它們發送到給大模型,大模型隨後生成符合這些示例約束的 JavaScript 代碼。生成的代碼會顯示給用戶,如果需要,用戶可以提供更多示例以進一步優化輸出結果。

基於 LLM 的示例編程編程語言基於 LLM 的示例編程編程語言

這是一門很有噱頭的「編程語言」

有意思的是 Mirror 在技術社區 Lobsters 上曝光後,居然還有一些開發者給予了極高評價:

「我一直以為會有人發明一種集成了 LLM 的編譯器,但從未真正思考過它可能會是什麼樣子。這是一個非常有趣的概念,就像一種偽代碼解釋器。我覺得這種方式可能有一天會成為主流的編程方法。」

「很棒!我之前用 neuro-lingo 做過類似的事情,只不過開發者需要為函數提供類型簽名和註釋,這主要是作為一種思想實驗。我一直認為下一步的迭代會類似於 Mirror,開發者的任務是編寫測試,而不是實現具體功能。我覺得在未來,這種方法很有可能變得合理:一種只使用英語作為編程語言(通過 AI)的語言,同時用傳統編程語言來編寫測試以確保正確性。」

「在看到當前 LLM 的能力後,我就想到這會使形式化規範和驗證的概念變得更加吸引人。」

自媒體博主 The Primagen 則花了 2 個小時探索 Mirror。

他一開始也被 Mirror 的願景吸引住了,認為這簡直是語言輪子界里的「適用於 AI 的 C 語言(be C but for AI)」。

還具備由人工智能驅動的函數式體驗,雖然避免了編寫代碼的繁瑣,但卻需要編寫測試用例,這就好像是一種「後期 TDD」。所以他認為,Mirror 的出現標誌著人工智能驅動的測試驅動開發進入了「後期階段」。

並且他調侃說,「只要風險投資人看到 Mirror 的介紹,那麼很可能會輕鬆獲得一輪千萬美元級別的融資」,因為「人工智能」這個詞對風投來說似乎具有莫大的吸引力。他還拿 Friend 舉例,這是一個人工智能社交網絡產品,僅跟 AI 沾個邊就籌集了約 250 萬美元(隨後,他們花了 180 萬用來購買 Friend.com 域名)。

接著他希望用 Mirror 來實現一個簡單的功能。不幸的是即使提供了大量的示例,Mirror 生成的代碼仍然是錯誤的。

但 GPT 只用了一句簡單的英語描述和代碼結構,就輕輕鬆鬆地完成了任務。

折騰 2 個小時候後,The Primagen 評價說,Mirror 目前適合用來學習,比如可以幫助你學習如何編寫解析器。

現實中,AGI 離我們還比較遙遠,所以不要只想著迴避學習編程。就算 Sam Altman 宣稱距離 AGI 只有「幾千天」,那起碼也還有 10 年時間。所以為什麼有些人非要選擇繞過學習基礎編程的過程,而轉而依賴工具或 AI?

他最後「抽水」道:「要知道,掌握技術並學習解決問題的能力永遠是有價值的。而如果未來的某一天,AI 真的變得無所不能,那麼具備技術技能的人依然會保持競爭力。無論未來 AI 多強大,技術能力都將是你提升自我、解決問題和實現價值的核心力量。這不是一個非此即彼的選擇,你可以同時學習技術、享受創造的樂趣,並為自己的職業發展打下堅實的基礎。」

參考鏈接

https://austinhenley.com/blog/mirrorlang.html

https://lobste.rs/s/ui3ld4/mirror_llm_powered_programming_by

https://medium.com/@prateek.vyas/mirror-the-ai-powered-programming-language-using-examples-94fab8c88585

本文來自微信公眾號「AI前線」,36氪經授權發佈。