TypeScript 登頂 GitHub 第一程式語言

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)