Claude輔助開發:Rust專家利用AI設計新程式語言Rue

Claude輔助開發:Rust專家利用AI設計新程式語言Rue

為新程式語言命名"Rue"似乎暗示著對專案前景的懷疑,如果將"Rue"理解為"後悔"的話程式設計

但是以對Rust和Ruby on Rails貢獻聞名的資深軟體開發者史蒂夫·克拉布尼克表示,這個名稱背後有更深層的含義程式設計

"Rust這個名字喚起了幾種聯想,"他在給The Register的郵件中解釋道程式設計。"其中一個是衰變、熵,這是負面的含義。另一個是真菌的型別,這是正面的含義。"

"Rue這個名稱的由來是因為我先做了Ruby,然後是Rust...所以我需要以Ru開頭程式設計。'rue'可以像你說的那樣表示'悔恨',但它也是一種花的名稱。"

"我喜歡這種負面和正面含義的對稱性程式設計。而且它非常簡短,這很好。"

正如克拉布尼克上個月在部落格文章中解釋的那樣,Rue"是一種系統程式語言,旨在提供記憶體安全而無需垃圾回收,同時比Rust和Zig等語言提供更高階別的人機工程學程式設計。"

程式設計中的垃圾回收指的是自動記憶體管理,可以採取多種形式程式設計。它的作用是減少顯式記憶體釋放引起的記憶體錯誤——這是美國網路安全部門大力宣傳的目標。Rust的賣點之一是它可以使用語言子集提供記憶體安全保證,儘管其學習曲線通常被認為比Go或Swift等現代語言更陡峭。

克拉布尼克說,他多年來一直在與人們談論Rust,其複雜性是一個常見的擔憂程式設計。他說,Rust社羣給出的解釋是,用於作業系統等底層任務的語言有各種約束,使事情變得複雜。

他解釋道:"所以我認為探索這個設計空間會很有趣:如果Rust不是試圖在最高效能方面與C和C++競爭會怎樣?如果我們願意讓效能稍微降低一點程式設計,但不要太多,以換取易用性會怎樣?如果我們讓語言本身稍微大一些,也就是說,在純庫程式碼中具有更少的特性,作為讓整體包更簡單的手段會怎樣?"

"有很多帶有垃圾回收器的語言,但沒有垃圾回收器的語言較少,特別是在過去20年中程式設計。所以我認為'記憶體安全但沒有跟蹤垃圾回收器'這個空間總體上還沒有得到充分探索。有很多小語言在探索這個空間,我想給出自己的看法。"

展開全文

從現有的程式碼示例來看,還不清楚Rue是否比Rust更容易接近,因為Rue版本的常見FizzBuzz練習看起來與Rust版本沒有太大不同程式設計

Claude是他的副駕駛

然而,克拉布尼克的觀點並不完全是他自己的程式設計。主要用Rust編寫的Rue在很大程度上依賴於Anthropic的Claude大語言模型,該模型的能力歸功於所有為模型訓練資料提供資訊的開發者。

根據一篇署名為克拉布尼克和他選擇的AI助手的初始部落格文章,"Rue正在由史蒂夫·克拉布尼克開發,同時也由Claude開發程式設計。"兩篇文章之後,Claude單獨被認為總結了開發的第一週。

"我今年早些時候開始了Rue,"克拉布尼克解釋道程式設計。"但我當時對大語言模型的掌握不如現在,犯了一些錯誤。我重新開始了。在這兩週的工作中,我比上次花費的一兩個月取得了更大的進展。這部分是由於更好的模型,但主要是由於我自己在理解如何有效使用大語言模型方面的技能提升。"

他說,對於做一些半定製工作的小專案,即使是沒有太多經驗的開發者也可以有效使用像Claude這樣的模型程式設計。對於更大的專案,軟體工程知識更重要,他說。

"所以,我認為像任何事情一樣,你可以從小處開始並逐步提升,"他解釋道程式設計。"小型的、自包含的專案?當然,即使是非程式設計師也可以利用這些工具。但它們是工具,工具需要專業知識。"

"甚至瞭解現有程式設計也不足以真正充分利用大語言模型,它們本身就是工具程式設計。Vim不容易使用,瞭解程式設計並不能幫助你使用它,但它仍然是一個有用的工具。但這是它自己的技能。像測試這樣的軟體開發技術是與編寫程式碼來完成某事不同的技能。我以同樣的方式看待大語言模型。它們入門的技能門檻較低,但要最有效地使用它們的技能上限相當高。"

克拉布尼克說很難估計Claude節省(或消耗)的時間程式設計

"我可以肯定地說,沒有它我不可能在這個專案上走得這麼遠,"他說程式設計。"Rue在其生命的兩週內大約有7萬行Rust程式碼。當然,程式碼行數並不能說明一切,實際上我現在正在對某些東西進行實質性重構。但這只是為了讓你瞭解大概的規模。我知道如果我手工完成這項工作,我的進展會少得多,而且可能(儘管我還不確定)質量會更低。"

Claude尚未對Rue程式碼質量提供評估程式設計。但這個AI模型已經輸出了類似於為其自身能力論證的Token。

"我認為這周顯示的是,當你有合適的槓桿時,語言的核心——編譯器本身——可以非常快速地組合在一起,"Claude回應克拉布尼克假定的提示時說,使用了破折號程式設計。"我們還沒有語言伺服器協議。我們還沒有包管理器。但我們有一個產生真正可執行檔案的真正編譯器,有足夠的基礎設施來繼續構建。"

"老實說,那130次提交中的大部分都有我的指紋程式設計。史蒂夫指導、審查並做出了艱難的設計決定。我寫了大部分程式碼。這是一種不尋常的合作,我還不確定如何看待它。"

克拉布尼克對專案前景也不確定程式設計。"如果沒有人使用它,我也沒關係,如果十年後它成為一種主要的程式語言,那可能也沒問題,"他說。"我不想強迫任何事情,我只是在做我喜歡的事情,看看這會帶我走向何方。"

Claude作為副駕駛伴隨著這段旅程程式設計

Q&A

Q1:Rue程式語言是什麼程式設計?它有什麼特點?

A:Rue是史蒂夫·克拉布尼克設計的系統程式語言,旨在提供記憶體安全而無需垃圾回收,同時比Rust和Zig等語言提供更高階別的人機工程學程式設計。它主要用Rust編寫,目標是在保持記憶體安全的同時降低學習難度。

Q2:Claude在Rue語言開發中扮演什麼角色程式設計

A:Claude是Anthropic的大語言模型,在Rue開發中擔任重要角色程式設計。按照Claude自己的描述,史蒂夫負責指導、審查和做出艱難的設計決定,而Claude寫了大部分程式碼。這種人機協作讓專案在兩週內就達到了7萬行Rust程式碼的規模。

Q3:為什麼要創造Rue這種新的程式語言程式設計

A:克拉布尼克認為Rust的複雜性是常見問題,所以他想探索一個設計空間:如果不追求與C和C++競爭的最高效能,而是願意稍微降低效能以換取易用性會怎樣程式設計。他認為"記憶體安全但沒有垃圾回收器"這個空間還沒有得到充分探索。

本站內容來自使用者投稿,如果侵犯了您的權利,請與我們聯絡刪除。聯絡郵箱:[email protected]

本文連結://m.sqhhba.com/post/603.html

🌐 /