Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

Linus Torvalds:期待盡早有語言取代C,但C++免談

編輯:Linux 教學

Linux核心之父Linus Torvalds在郵件列表闡述核心開發堅持用C而非C++的理由,並表達對下一代系統程式語言的期待。

為何堅持C、拒絕C++

  1. 可讀性與可維護性:大型專案中,工程師需快速理解非自己撰寫模組的函式語義。C++引入的抽象(模板、運算子多載、繼承、RAII)使程式碼語義隱晦,增加認知負擔。
  2. 記憶體管理模式差:C++new/delete、智慧指標、RAII模式在核心環境(無例外處理、嚴格鎖順序、中斷上下文)極難正確使用,反而增加Bug風險。
  3. 編譯器與ABI穩定性:C語言ABI極度穩定,跨版本、跨編譯器(GCC/Clang/ICC)二進位相容。C++ ABI 歷史上頻繁變更,核心模組二進位介面極難維護。
  4. 核心編碼風格:Linux核心擁有嚴格編碼風格(縮排、命名、巨集慣例),C語言天然契合;C++ 特性多半被風格指南禁止或限制使用。

「C++ 的 new 關鍵字很弱智。垃圾回收、並發原語、記憶體安全——這些才是真正重要的特性。」(Linus Torvalds)

期待的繼任者特質

  • 記憶體安全:編譯期防止緩衝區溢位、使用後釋放、資料競爭(如 Rust 所有權模型)。
  • 無執行期開銷:零成本抽象,適合核心熱路徑。
  • 原生並發支援:async/await、channel、actor 模型等。
  • C互操作無縫:可漸進式替換核心子系統,不需一次重寫。
  • 成熟工具鏈:編譯器、除錯器、靜態分析、正式驗證支援。

候選語言觀察

語言優勢核心採用進度
Rust記憶體安全、零成本抽象、C互操作優、社區活躍Linux 6.1+ 合併 Rust for Linux 基礎設施,驅動程式開始嘗試 (如 rust-bindings、samples/rust)
Go並發原生、編譯快、部署簡單執行期大、GC 不適合核心,僅用於用戶空間工具 (如 bpftool 部分)
DC語法相近、支援 @nogc、契約式程式設計社區較小、編譯器成熟度不足,核心無採用計畫
Zig無執行期、手動記憶體管理、編譯期執行、C互操作極佳新興,核心社區關注度上升,尚無正式提案

現狀與展望

  • C語言將長期佔據核心主導地位(數千萬行代碼、成熟生態、工程師熟練度)。
  • Rust 進入核心樹是歷史性突破,標誌「第二語言」時代開啟。
  • Linus 態度務實:「如果 Rust 能證明在核心子系統減少 Bug、不增加維護負擔,我們會擴大採用。」
  • 其他語言(Go、D、Zig、Swift、Carbon)更可能在用戶空間、eBPF、工具鏈、雲原生基礎設施發光發熱。

語言演進服務於工程目標:更安全、更可維護、更高效的核心。C語言完成歷史使命後,將逐步讓位於具備現代安全語義的繼任者。

Copyright © Windows教程網 All Rights Reserved