GitHub Octoverse 2025 數據出爐,有一項變化值得特別關注:TypeScript 在 2025 年 8 月成為 GitHub 貢獻者最多的程式語言,月活躍貢獻者達 263.6 萬人,將一度稱霸的 JavaScript 甩在身後。
這是近十年來最大的程式語言格局變化。但比數字本身更有意思的是背後的原因——這次語言格局的洗牌,有相當一部分是 AI 工具推著走的。
什麼是「便利循環」
GitHub 開發者倡導者 Andrea Griffiths 提出了一個名為 「便利循環」(Convenience Loop) 的概念來解釋這個現象。其邏輯如下:
- AI 工具讓某項技術用起來更順手
- 開發者就更願意選擇這項技術
- 選擇的人多了,這項技術在程式碼倉庫中的佔比就高
- 高佔比意味著更多訓練數據進入下一代 AI 模型
- AI 在這項技術上變得更強
- 然後更多開發者選擇它……
這是一個自我強化的飛輪。一旦啟動,就很難被打斷。
TypeScript 在這個飛輪中佔盡優勢。原因在於它的設計:TypeScript 的型別系統是 顯式的、結構化的,正好契合語言模型理解和生成程式碼的方式。給一個帶有完整型別定義的函式讓 AI 補全,比起給一段弱型別的 JavaScript,錯誤率要低得多,補全品質也更穩定。
這不是感覺,而是程式碼品質上的客觀差異。
不只是框架預設的貢獻
經常聽到一種解釋:TypeScript 的普及主要是因為 Next.js、Astro 這些現代框架都預設使用 TypeScript。這當然是一個因素,但 Griffiths 的數據分析認為這並非主因。
真正的驅動力是開發者在日常工作中發現:在 TypeScript 專案中,AI 助手提供的幫助品質明顯更高。
Copilot 或 Claude Code 在有型別約束的程式碼庫中工作時,能在函式簽名層級理解上下文,理解呼叫關係和資料流,生成的建議更有可能直接可用,而不是需要大量修改才能用的「參考程式碼」。
隨著 AI 程式設計工具從每天幾次提示發展到全天候協作夥伴,這個體驗差異就變成了真實的生產力差異。
語言選型正在增加一個新維度
以前選擇程式語言,主要考慮以下幾件事:
- 效能夠不夠
- 生態系統成不成熟
- 團隊熟不熟悉
- 社群活不活躍
現在這個清單得加上一條:AI 工具支援這門語言的品質如何。
不是說它「應該」加,而是說它「事實上」已經在影響開發者的選擇了。
| 語言 | AI 支援優勢 | 潛在劣勢 |
|---|---|---|
| TypeScript | 型別系統明確,AI 補全品質高 | 無明顯劣勢 |
| Python | 大量 ML/AI 訓練程式碼,資料科學場景極強 | 弱型別在複雜專案中對 AI 產生雜訊 |
| Rust | 記憶體安全程式碼生成正在改善 | 訓練數據相對較少 |
| Go | 並發語義清晰,AI 理解度好 | 生態深度不如 TypeScript/Python |
「便利循環」最大的隱憂是:那些歷史程式碼積累少的語言,即使技術上有優勢,也會在這個飛輪中被越甩越遠。
這次變化和以往有什麼不同
回顧 GitHub 語言排行榜的歷史:
- JavaScript 統治了很長時間,靠的是 Web 開發的絕對主導地位
- Python 在 2019 年前後開始發力,背後是資料科學和 AI 研究的崛起
- TypeScript 這次的超越,是第一次 由 AI 工具本身直接驅動的語言格局變化
之前的語言流行,是因為這門語言能解決特定領域的問題。TypeScript 這次的崛起,有相當大的成分是「AI 工具在這門語言上表現更好」這一個原因在推動。
這是一個微妙但重要的轉變:技術生態的演進路徑,正在越來越多地被 AI 工具的訓練數據分佈所影響,而不只是被技術本身的優劣所決定。
飛輪的下一站
TypeScript 已經坐穩了,接下來有意思的問題是:哪門語言會是下一個?
Rust 正在成為 AI 基礎設施中的熱門選擇,訓練數據在快速積累。Go 在後端服務領域有大量生產程式碼,AI 對它的理解度本來就不差。如果這兩門語言在某個時間點也出現了「便利循環」的跡象,對 JavaScript/Python 生態的衝擊將會相當可觀。
當然,這也可能朝反方向走:Python 在 AI/ML 領域的訓練數據優勢太大,「便利循環」可能反而讓 Python 在資料科學、AI 應用開發領域持續擴大領先——因為 AI 工具在 Python 上寫出的 ML 程式碼品質,大概率會比其他語言更高。
技術生態中從來沒有永恆的贏家。但現在,AI 工具變成了裁判的一部分。
參考來源:CocoLoop、GitHub Data Shows AI Tools Creating "Convenience Loops" That Reshape Developer Language Choices(InfoQ)