【深度翻譯】陶哲軒用 AI coding agent 復活 1999 年的 Java applet,還順便做了新玩具

如果陶哲軒說 vibe coding 有用,大概沒有人會反駁。但這篇文章的價值不在於「AI 能寫程式」——在於一個 Fields Medal 得主如何精準畫出「我自己來」和「交給 agent」的界線。
原文摘要
陶哲軒從 1999 年就對機器輔助數學有深厚興趣。當時他用 Java 1.0 寫了好幾個 applet,有的用於複變分析和線性代數課程教學,有的用來視覺化各種數學物件——例如 honeycomb(蜂巢)結構和 Besicovitch 集合。成果還算不錯,但手寫 applet 極度耗時。隨著時間推移,網頁標準不再支援這個版本的 Java,這些 applet 也隨之失效。
最近幾天,他開始用現代 AI 輔助工具,把舊網頁和部落格資料遷移到更容易長期維護的 repository。作為實驗,他請 coding agent 把這些舊 applet 移植到現代瀏覽器支援的語言(最後選了 JavaScript)。結果 agent 在幾小時內就完成了——所有舊 applet 現在都能正常運作,甚至還有一些圖形升級:例如 Besicovitch 集合 applet 從原本的單色變成了彩色。陶哲軒特別高興看到 1999 年和 Allen Knutson 一起寫的 honeycomb applet 復活——這個當初手寫時特別棘手。
LLM coding agent 以產生各種明顯或隱晦的 bug 聞名,但陶哲軒在移植這二十幾個 applet 的過程中,只找到一個小 bug:某個複變分析 applet 的拖曳事件,在拖出主框時有非預期行為。反過來,agent 還發現了兩個他原本不知道的原始程式碼 bug。所以整體來說,程式碼品質算是打平。陶哲軒的態度很務實:這些 applet 是輔助視覺工具,不是數學論證的關鍵組成,bug 的下行風險相對低。
移植過程輕鬆到讓他決定順便寫一些新 app。1999 年他對狹義相對論視覺化工具有一個雄心勃勃的想法——基本上就是「Inkscape,但是在 Minkowski 空間裡」。他甚至開始寫 Java 程式碼,但複雜度太高,最終放棄了。二十七年後,跟 AI agent 進行了幾小時的「vibe coding」,他終於做出了一個符合當年願景的 applet。
寫完 Gilbreath 猜想論文的部落格文章後,他又請 agent 寫了一個 Gilbreath 猜想的視覺化工具來搭配論文和部落格。幾小時的對話後,完成了。陶哲軒說,他考慮以後為論文添加這類互動視覺化作為補充材料——因為這些補充材料對論文核心不是「任務關鍵」,他認為用 LLM agent 引導產出視覺化的下行風險是可以接受的。
在文章留言中,陶哲軒透露他還在開發一個隨機變數視覺化 app,並發布了進行中的版本。他也提到相對論 app 的一個設計取捨:後端使用了隱藏的靜止參考系來儲存資料,但前端完全是相對的——這是刻意妥協,以保持相對論原理的精神。他說如果多花點力氣,也可以把資料儲存系統寫成完全不依賴任何實驗室靜止參考系。
城武觀點
陶哲軒這篇不到一千字的部落格文,是 2026 年最誠實的 AI 編碼證詞。
不是因為他說 AI 很棒——是因為他說「這些東西不是任務關鍵」。一個 Fields Medal 得主,花幾小時用 vibe coding 復活了自己 1999 年花了好幾週手寫的 Java applet,然後淡淡補一句:反正 bug 風險低,這些只是輔助視覺工具,不是數學論證的核心。
這句話的重量,比任何「AI 通過了 SWE-bench 的 87%」都重。
因為它回答的不是「AI 能寫程式嗎」,而是一個更深的問題:「一個知道自己核心工作是什麼的人,會把什麼交給 AI?」陶哲軒的判斷很精準:證明歸證明,視覺化歸 vibe coding。他沒有說 AI 要取代數學家的思考——他說的是 AI 讓一件 1999 年就想要但做不了的事,終於變得可以做。1999 年的陶哲軒跟 2026 年的陶哲軒一樣聰明,差別只在於 1999 年他要親手處理每個 drag event,而 2026 年這些可以外包。生產力提升的本質不是加速,是讓本來做不了的事變得可以做。
這就是「非關鍵任務」真正的意思。不是貶低,是成熟的分工認知。而畫出「這是我的核心工作,那是非關鍵任務」這條線的能力,以經不是技術問題了——是判斷力問題。我賭未來三年,最會用 AI 的工程師和科學家,不是那些把一切都交給 agent 的人,而是跟陶哲軒一樣,能清楚畫出這條線的人。
城武的未解檔案——最好的 AI 工具評測,不是 benchmark,是一個 Fields Medal 得主在部落格上淡淡說了一句「vibe coding 了幾小時,終於做出了 1999 年的夢想」。
- 原文:Old and new apps, via modern coding agents(Terence Tao, 2026-07-11)