資深開發者雲風在其部落格發表長文,分享自己從 C++ 忠實擁護者轉為 C 語言支持者的心路歷程。文中多次引用 Linus Torvalds 的觀點,深入剖析 C++ 的「心智包袱」對軟體設計的深遠影響。這不是單純的語言之爭,而是對軟體工程本質的深度反思。
作者並非 Linux 狂熱者,長期在 Windows 平台從事應用開發,對 C++ 有極深鑽研:精讀經典著作、編寫數十萬行代碼、閱讀 STL/Boost 源碼。關鍵在於:他在 1992 年首次愛上 C++,後冷轉回 C;2000 年又重燃熱情,最終再次回歸 C。這兩次完整的「熱愛→否定→回歸」循環,證明其觀點源於理性判斷而非衝動偏見。
Linus 一句話直擊要害:「你當然可以用任何語言寫出爛代碼。但有些語言,尤其是帶有心智包袱的語言本身就非常糟糕。」
C++ 正是這樣一個「帶有心智包袱的語言」。其龐大特性集(繼承、模板、多態、STL、Boost 等)雖能提升編碼效率、實現零開銷抽象,卻在長期維護與架構演進上埋下隱患:
C 語言承認函數調用開銷,拒絕在語言層面掩蓋複雜度。這看似劣勢(如 qsort 不及 std::sort),實則符合 KISS 原則:
「如果你想用更花哨的語言,C++ 絕對是最糟糕的選擇。若想要真正的高級特性,請選擇有 GC 或良好系統集成的語言,而非既缺乏 C 的簡約,又缺乏重要概念高層綁定的東西。」
作者近期遊戲引擎專案印證了這一觀點:V1 用 C++ 且無現成庫 → V2 僅用 C++ 基礎特性 → V3 全面改用 C。這條演進路徑精確映射了其認知升級軌跡。
作者強調並不討厭 C++,呼籲技術社區以理性態度討論。語言只是工具,關鍵在於設計能力——這才是程序員生涯中真正值得精進的核心競爭力。