為新編程語言命名"Rue"似乎暗示著對項目前景的懷疑,如果將"Rue"理解為"后悔"的話編程。
但是以對Rust和Ruby on Rails貢獻聞名的資深軟件開發(fā)者史蒂夫·克拉布尼克表示,這個名稱背后有更深層的含義編程。
"Rust這個名字喚起了幾種聯想,"他在給The Register的郵件中解釋道編程。"其中一個是衰變、熵,這是負面的含義。另一個是真菌的類型,這是正面的含義。"
"Rue這個名稱的由來是因為我先做了Ruby,然后是Rust...所以我需要以Ru開頭編程。'rue'可以像你說的那樣表示'悔恨',但它也是一種花的名稱。"
"我喜歡這種負面和正面含義的對稱性編程。而且它非常簡短,這很好。"
正如克拉布尼克上個月在博客文章中解釋的那樣,Rue"是一種系統編程語言,旨在提供內存安全而無需垃圾回收,同時比Rust和Zig等語言提供更高級別的人機工程學編程。"
編程中的垃圾回收指的是自動內存管理,可以采取多種形式編程。它的作用是減少顯式內存釋放引起的內存錯誤——這是美國網絡安全部門大力宣傳的目標。Rust的賣點之一是它可以使用語言子集提供內存安全保證,盡管其學習曲線通常被認為比Go或Swift等現代語言更陡峭。
克拉布尼克說,他多年來一直在與人們談論Rust,其復雜性是一個常見的擔憂編程。他說,Rust社區(qū)給出的解釋是,用于操作系統等底層任務的語言有各種約束,使事情變得復雜。
他解釋道:"所以我認為探索這個設計空間會很有趣:如果Rust不是試圖在最高性能方面與C和C++競爭會怎樣?如果我們愿意讓性能稍微降低一點編程,但不要太多,以換取易用性會怎樣?如果我們讓語言本身稍微大一些,也就是說,在純庫代碼中具有更少的特性,作為讓整體包更簡單的手段會怎樣?"
"有很多帶有垃圾回收器的語言,但沒有垃圾回收器的語言較少,特別是在過去20年中編程。所以我認為'內存安全但沒有跟蹤垃圾回收器'這個空間總體上還沒有得到充分探索。有很多小語言在探索這個空間,我想給出自己的看法。"
展開全文
從現有的代碼示例來看,還不清楚Rue是否比Rust更容易接近,因為Rue版本的常見FizzBuzz練習看起來與Rust版本沒有太大不同編程。
Claude是他的副駕駛
然而,克拉布尼克的觀點并不完全是他自己的編程。主要用Rust編寫的Rue在很大程度上依賴于Anthropic的Claude大語言模型,該模型的能力歸功于所有為模型訓練數據提供信息的開發(fā)者。
根據一篇署名為克拉布尼克和他選擇的AI助手的初始博客文章,"Rue正在由史蒂夫·克拉布尼克開發(fā),同時也由Claude開發(fā)編程。"兩篇文章之后,Claude單獨被認為總結了開發(fā)的第一周。
"我今年早些時候開始了Rue,"克拉布尼克解釋道編程。"但我當時對大語言模型的掌握不如現在,犯了一些錯誤。我重新開始了。在這兩周的工作中,我比上次花費的一兩個月取得了更大的進展。這部分是由于更好的模型,但主要是由于我自己在理解如何有效使用大語言模型方面的技能提升。"
他說,對于做一些半定制工作的小項目,即使是沒有太多經驗的開發(fā)者也可以有效使用像Claude這樣的模型編程。對于更大的項目,軟件工程知識更重要,他說。
"所以,我認為像任何事情一樣,你可以從小處開始并逐步提升,"他解釋道編程。"小型的、自包含的項目?當然,即使是非程序員也可以利用這些工具。但它們是工具,工具需要專業(yè)知識。"
"甚至了解現有編程也不足以真正充分利用大語言模型,它們本身就是工具編程。Vim不容易使用,了解編程并不能幫助你使用它,但它仍然是一個有用的工具。但這是它自己的技能。像測試這樣的軟件開發(fā)技術是與編寫代碼來完成某事不同的技能。我以同樣的方式看待大語言模型。它們入門的技能門檻較低,但要最有效地使用它們的技能上限相當高。"
克拉布尼克說很難估計Claude節(jié)?。ɑ蛳模┑臅r間編程。
"我可以肯定地說,沒有它我不可能在這個項目上走得這么遠,"他說編程。"Rue在其生命的兩周內大約有7萬行Rust代碼。當然,代碼行數并不能說明一切,實際上我現在正在對某些東西進行實質性重構。但這只是為了讓你了解大概的規(guī)模。我知道如果我手工完成這項工作,我的進展會少得多,而且可能(盡管我還不確定)質量會更低。"
Claude尚未對Rue代碼質量提供評估編程。但這個AI模型已經輸出了類似于為其自身能力論證的Token。
"我認為這周顯示的是,當你有合適的杠桿時,語言的核心——編譯器本身——可以非??焖俚亟M合在一起,"Claude回應克拉布尼克假定的提示時說,使用了破折號編程。"我們還沒有語言服務器協議。我們還沒有包管理器。但我們有一個產生真正可執(zhí)行文件的真正編譯器,有足夠的基礎設施來繼續(xù)構建。"
"老實說,那130次提交中的大部分都有我的指紋編程。史蒂夫指導、審查并做出了艱難的設計決定。我寫了大部分代碼。這是一種不尋常的合作,我還不確定如何看待它。"
克拉布尼克對項目前景也不確定編程。"如果沒有人使用它,我也沒關系,如果十年后它成為一種主要的編程語言,那可能也沒問題,"他說。"我不想強迫任何事情,我只是在做我喜歡的事情,看看這會帶我走向何方。"
Claude作為副駕駛伴隨著這段旅程編程。
Q&A
Q1:Rue編程語言是什么編程?它有什么特點?
A:Rue是史蒂夫·克拉布尼克設計的系統編程語言,旨在提供內存安全而無需垃圾回收,同時比Rust和Zig等語言提供更高級別的人機工程學編程。它主要用Rust編寫,目標是在保持內存安全的同時降低學習難度。
Q2:Claude在Rue語言開發(fā)中扮演什么角色編程?
A:Claude是Anthropic的大語言模型,在Rue開發(fā)中擔任重要角色編程。按照Claude自己的描述,史蒂夫負責指導、審查和做出艱難的設計決定,而Claude寫了大部分代碼。這種人機協作讓項目在兩周內就達到了7萬行Rust代碼的規(guī)模。
Q3:為什么要創(chuàng)造Rue這種新的編程語言編程?
A:克拉布尼克認為Rust的復雜性是常見問題,所以他想探索一個設計空間:如果不追求與C和C++競爭的最高性能,而是愿意稍微降低性能以換取易用性會怎樣編程。他認為"內存安全但沒有垃圾回收器"這個空間還沒有得到充分探索。