AI News HubLIVE
站內改寫3 分鐘閱讀

克勞德必須從某個地方獲取那些程式碼

作者反思了AI輔助程式設計對復古計算社群的影響。從安德烈亞斯·克林使用AI加速開發的故事,到作者自己在經典Macintosh上的手動編碼專案,再到對“氛圍編碼”產物氾濫的複雜感受——最終認識到AI工具也有其價值。

來源Hacker News AI作者: tolerance

2019年,我開始觀看Andreas Kling的程式設計影片,其中很多是他為全新作業系統SerenityOS編寫程式碼的直播。他用Qt Creator IDE時速度飛快,因為IDE的C++程式碼補全功能讓類名、變數和函式簽名信手拈來。那時他彷彿將整段程式碼都寫在腦中,唯一限制他的只是打字速度。

四年後,他換用了CLion——這款IDE早期就整合了GitHub Copilot的AI程式碼補全。起初他對Copilot持懷疑態度,但經過試驗後,幾個月內Copilot就能為他編寫程式碼塊,“讀懂他的心思”,甚至寫出完整函式。AI加持的IDE補全終於追趕上了他的思維速度,讓他更快地將想法轉化為程式碼。

儘管我著迷於Andreas加速開發的方式,但多年間這並未吸引我用於自身工作。我甚至不用IDE或LSP(語言伺服器協議)。我對AI持懷疑態度,大概因其早期失敗而過早否定了它。

後來我開始在網頁瀏覽器中試用Claude,問它一些原本會去搜尋引擎找Stack Overflow答案的問題。Claude Code面世後,能直接訪問我筆記本上的程式碼目錄並讀寫檔案,這種能力令我驚歎。它能完全(且迅速地)逆向工程一個二進位制檔案,零上下文也能應對。本地模型足夠好且小巧後,我開始在M4 Mac Mini上使用Ollama進行離線本地工作。

與許多事物一樣,我們可以喜歡並使用某種技術、語言或工具,同時拒絕圍繞它們的炒作、騙局和負面社群(比如Rails或Rust)。當然,你也可以選擇不喜歡或不用它們。你可能更傾向用手鋸而非圓鋸,或者開手動擋汽車而非自動駕駛電動車。但我認為,如今還把全部AI技術看作無用或有害是幼稚的。不過AI行業本身……

2020年,受Andreas啟發,我開始錄製自己在8 MHz Macintosh 512Ke(後來換成Macintosh Plus)上使用THINK C 5 IDE程式設計的影片。我之前從未用過經典Macintosh,想體驗四十年前人們如何為它程式設計。我給自己定下規矩:只在Macintosh本機上編寫程式碼,用它的Apple M0110鍵盤敲打一切。任何現代計算機都不參與我專案的程式碼編寫、編輯或編譯。

從那個系列開始,我編寫了(大部分)一個IMAP電子郵件客戶端、一個版本控制系統、一個Wikipedia閱讀器、一個IRC客戶端,然後是一個多使用者、多執行緒的BBS伺服器。所有這些讓我對Macintosh和C語言有了深刻理解,並激發了我的復古計算愛好,還結識了許多新朋友。

編寫郵件客戶端時有一點困擾我:它需要一個現代伺服器上的代理來剝離TLS,向緩慢的Macintosh呈遞明文。因此,在給Mac Plus新增Wi-Fi功能後,我又新增了一個TLS解除安裝裝置,這樣我的Mac就能獨立進行TLS解密。

這為編寫經典Mac OS的“現代”網頁瀏覽器(至少比能解析HTML 5的MacWeb更新)提供了最後一塊巨大拼圖,因為如今一切都已加密。我於2024年開始著手開發那個瀏覽器,並新增了Gopher等協議(以及不情願地,Gemini)。

幾個月前,我對計算機感到特別煩躁,釋出了這些筆記:“我對閱讀新軟體專案已失去所有熱情,尤其是涉及復古計算的。一兩年前聽起來很棒、讓我想與作者交流的東西,現在我只假設那是AI吐出來的,感覺空洞而無聊,於是掃過。而編寫軟體就像Marge在卡丁車比賽中那樣:緩慢而穩定地工作一年,寫出某個平臺上前所未有的東西,但別人可以聽說了就用Claude在一週內趕超你,做出十倍功能的東西。舉個例子,今天我看到了這些:一個支援CSS、ES5 JavaScript和TLS的Mac OS 9現代瀏覽器;一個System 7的3D印表機監控應用。一年前這兩者聽起來都很棒,但現在我滾動跳過,因為我覺得它們都是AI寫的。”

今天有人釋出了這個:一個完全“氛圍編碼”的經典Mac OS Gopher客戶端。Claude甚至為它做了個花哨網站。你猜怎麼著?它的部分程式碼甚至來自我自己的專案。

前幾周,Andreas發了這條推:“感覺‘我其實喜歡親手寫程式碼’即將成為程式設計師2026年的某種道德訊號。”雖然我並非完全同意,但這確實讓我質疑自己為何要為四十年前的電腦編寫只有少數人使用的軟體,以及為何在這種情境下被氛圍編碼的軟體所困擾。

我寫很多軟體是因為我自己想要,但也樂意讓社群其他成員使用。或許我只是虛榮,因為我希望自己的心血被所在社群的人們欣賞,而如果某個氛圍編碼版本帶著一堆功能和華麗介面出現,我擔心我的作品會被淹沒,感覺白費了力氣。我的Comet會被Yahoo掉。

所以,如果一個氛圍編碼工具真正有用且現在就能用,而我的卻已經開發了多年,或許我應該高興,因為社群其他人有了新東西可用。我可以繼續為自己的版本工作,在它準備好時釋出。畢竟,克勞德必須從某個地方獲取那些程式碼。