在編程語言領域,「長江後浪推前浪」似乎失效了。C 語言誕生超過半個世紀,至今仍穩居 TIOBE 榜單前列,而無數號稱「現代化」的新語言卻迅速淡出視野。這背後究竟隱藏著什麼規律?
Google 曾試圖用 Go 替代 C/C++,用 Dart 替代 JavaScript,但結果證明:語言的存續不僅取決於技術優劣。普林斯頓大學的 Leo Meyerovich 和伯克利大學的 Ari Rabkin 通過訪問數萬程序員、分析 SourceForge 上 30 萬專案,試圖破解這個謎題。

「學術界傾向於解決尚未出現的問題,構建全新的語言體系,卻忽略了實踐價值。」—— Ari Rabkin
研究發現,許多新語言缺乏基礎文檔,或因過度設計導致複雜度爆炸,讓程序員望而卻步。以 Scala 為例,早期文檔極度匱乏,使用者直呼「受虐」。
| 因素 | 說明 |
|---|---|
| 生態成熟度 | 龐大的庫、工具鏈、社區支援,幾乎無所不能 |
| 性能可控 | 接近硬體,零開銷抽象,系統級開發首選 |
| 標準穩定 | C89/C99/C11 標準演進緩慢且向後兼容,代碼壽命長 |
| 人才儲備 | 幾代程序員的共同語言,招聘、傳承成本極低 |
| 遷移成本高 | 現有千萬行 C 代碼庫,重寫風險與收益不成正比 |
Meyerovich 與 Rabkin 將數據開源,呼喚社區關注「實踐導向」的語言設計:
C 語言不倒,不是因為它完美,而是因為它在「工程實用性」這一核心維度上擊敗了所有挑戰者。下一門統治級語言,必將是那個能讓程序員「用得順、改得動、招得著人、跑得快」的語言。
參考來源:Wired 原文