訪談
AI 名人觀點
重要訪談

替你解析 AI 界關鍵人物的重要訪談、對話、演講 — 透過名人的思想看見未來。

68
位人物
79
篇訪談解讀
67
個訪談來源

【專訪】海爾斯伯格:TypeScript 選 Go 不選 Rust,AI 讓老語言更強

Anders Hejlsberg · The Peterman Pod(2026-08 專訪) · 2026-08-21

TypeScript 在 GitHub 上的使用量剛剛超越 JavaScript 本身——超越了它原本想要改良的語言。就在這個時間點,微軟放出消息:TypeScript 編譯器正在用 Go 改寫,目標是讓速度提升 10 倍。外界吵的是:為什麼不選 Rust?AI 能不能直接完成這種規模的移植?這場訪談的受訪者是安德斯·海爾斯伯格(Anders Hejlsberg),TypeScript 與 C# 的主要設計者,在微軟工作超過三十年,是少數能讓一門程式語言從零活過十年並持續主導市場的人。主持人從技術細節切進去,但談著談著,談出了一個更大的問題:在 AI 大量介入軟體開發的當下,工具鏈,語言選擇,工程師角色,正在同時被重新定價。

這場訪談有幾個值得說的點。第一,Go 被選中的原因不是流行,而是它是唯一同時滿足垃圾回收與共享記憶體並行的語言,Rust 在結構上就被排除了。第二,移植而非重寫,是刻意的保守主義——向後相容比架構美感重要。第三,AI 在大型移植工程裡的正確用法是寫工具程式,不是直接生成答案,因為 AI 不是確定性的。第四,TypeScript 因為 AI 反而加速普及,因為訓練資料裡 TypeScript 最多,AI 寫出來的就是 TypeScript。第五,海爾斯伯格對AI 取代工程師的態度是:方向沒錯,但 100% 這個數字,他在那裡下車。這五個點合在一起,描述的是一個老工程師看著自己做了幾十年的事正在被重新定義,而他的判斷比大部分 AI 布道者更有來歷。

選 Go 不是因為潮,是因為 Rust 的記憶體模型與這個編譯器根本不相容

TypeScript 編譯器充滿循環資料結構——樹有父節點指標,型別互相遞迴,符號表到處交叉引用。Rust 的借用檢查器(borrow checker,Rust 用來在編譯期確保記憶體安全的機制)不允許循環所有權,這不是可以繞過的小麻煩,而是結構性衝突。Go 有垃圾回收,有一等函式,有成熟的共享記憶體並行,三個條件同時滿足,其他語言都至少缺一個。海爾斯伯格說得直接:Go 在生成碼品質和並行收益上並不輸 Rust,還省去了解決一整批新問題的成本。這不是語言信仰,是工程算帳。

移植而非重寫,向後相容是護城河不是包袱

重寫(rewrite)看起來是更乾淨的選擇,實際上是生態系殺手。一旦重寫,錯誤訊息會變,邊界行為會變,所有依賴這個編譯器行為的工具鏈都得跟著動。海爾斯伯格把這叫做 toxic——重寫從來不會讓你回到原點,只會讓使用者替你的潔癖買單。移植(port)的意思是保留所有語意和演算法,只換執行環境。TypeScript 6 的執行速度已經比 TypeScript 1.5 慢了一半,但那是因為型別檢查做的事多了一倍不止。現在用 Go 移植,要拿回的是被 JavaScript 單執行緒限制和 2 到 3 倍效能損耗悄悄吃掉的那部分,不是重新發明輪子。

AI 在大型移植裡的正確姿勢:寫工具,不要要答案

這個專案兩年前啟動,當時 LLM 還沒到現在的水準,所以他們自己寫了一個語法轉換工具,把 TypeScript 機械地翻成 Go——輸出沒有語法錯誤,但還不能編譯,接下來才是人工逐段重構。海爾斯伯格說了一個生活例子:朋友旅行分帳,叫 AI 直接算,它很有自信地算錯了;但如果叫它寫一個試算表來算,就會對。AI 不是確定性的,你沒法保證它每次跑同一段程式碼給你同樣的答案,但你可以讓它寫一個確定性的程式,讓那個程式去跑。這個區別在大型工程裡很關鍵:把隨機性鎖進工具生成過程,執行過程就變成可驗證的。

AI 反而讓 TypeScript 加速普及,因為訓練資料決定語言強弱

有人預測 AI 會讓工程師轉向想要的語言而非現在用的語言。海爾斯伯格的判斷相反:AI 在訓練資料裡看最多的語言上最強,而訓練資料就是現在網路上所有的程式碼。JavaScript,TypeScript,Python 在那堆資料裡佔大頭,所以 AI 寫出來的就是這些語言。你發明一個新語言,訓練資料裡沒有它,就得先花一堆 token 教 AI 這個語言的文法,才能開始問問題。TypeScript 在 GitHub 的使用量超越 JavaScript 這件事,有一條明顯的拐點,剛好跟 AI 工具普及的時間重疊。這不是巧合,是結構性優勢在加速。

AI 寫 90% 的程式碼,他在 100% 那裡下車

海爾斯伯格不否認 AI 能做很多事,他否認的是100%這個數字背後的邏輯。他的問題很實際:如果你不懂 AI 寫了什麼,出問題的時候你要怎麼辦?用戶告你,告的是你,不是 AI。他對初階工程師被取代的看法也類似:如果初階工程師消失了,資深工程師從哪裡來?他認為正在發生的事是金字塔底部縮窄,不是底部消失——工程師還在,但更早進入審查和架構的角色,而不是逐行打字。這個判斷來自一個寫了四五十年程式碼的人,不是在護航自己的職業,是在描述他觀察到的現實。

三十年看下來,每一波這次真的不一樣都有人信,也都有人數錯分母。海爾斯伯格這場談話的價值不在於他反對 AI,他不反對;而在於他給了一個參照系:哪些判斷要看基數,哪些選擇要算全部成本,哪些地方 100% 是一個不負責任的數字。語言設計是十年起跳的遊戲,他做了五十年,這種尺度感,比任何一個季度的發布會更值得借。

訪談出處
訪談名稱 The Peterman Pod(2026-08 專訪)
講者 Anders Hejlsberg
觀看原始訪談 ↗
重要發言 KEY QUOTES
[01:00]
Anders Hejlsberg

說明 TypeScript 編譯器最初為何用 JavaScript 撰寫:自我託管(self-host)在目標生態系內,讓團隊成為自己工具的每日使用者,能立即感知問題;同時 JavaScript 可在任何平台運行,包括瀏覽器。

[08:00]
Anders Hejlsberg

說明選擇原生語言重寫的兩個主因:JavaScript 在運算密集工作負載上有 2 到 3 倍的效能損耗,以及 JavaScript 單執行緒設計無法利用多核 CPU,導致無法實現共享記憶體並行。

[11:00]
Anders Hejlsberg

解釋選擇 Go 的決策過程:第一步決定移植而非重寫以保留語意和向後相容性;Go 同時滿足垃圾回收,一等函式,共享記憶體並行三個條件,是評估後唯一同時通過的語言。

[12:00]
Anders Hejlsberg

說明 Rust 被排除的原因:Rust 的借用檢查器不支援循環資料結構,而 TypeScript 編譯器大量使用帶父節點指標的樹,遞迴型別等循環結構,移植至 Rust 等同於解決一批全新問題,不划算。

[16:00]
Anders Hejlsberg

描述實際移植流程:手動撰寫掃描器和解析器原型後確認可達 10 倍效能提升,再自製工具將 TypeScript 語法轉譯為 Go,輸出無語法錯誤但需大量人工重構;並提出若今天重做,正確做法是讓 AI 寫轉換工具而非直接翻譯程式碼,以換取確定性。

[24:00]
Anders Hejlsberg

說明為何 AI 反而強化既有語言地位:AI 在訓練資料中看最多的語言上表現最好,JavaScript,TypeScript,Python 在訓練資料中佔大量,而 TypeScript 在 GitHub 上的使用量已超越 JavaScript,兩者趨勢有明顯交叉點與 AI 工具普及時間重疊。

[54:00]
Anders Hejlsberg

回應AI 是否取代工程師:若不理解 AI 生成的程式碼,出問題時責任仍在人;初階工程師不會消失,但金字塔底部會縮窄,工程師更早進入審查與架構角色;個人會繼續寫部分程式碼,但樂於將測試等工作交給 AI。

訂閱品富智圖 AI 新聞

每日 AI 產業要聞彙整,一封信直送信箱。