首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

雲風:從 C++ 回歸 C 語言的理性思考

     編輯:關於C語言

前言:一場關於語言選擇的理性辯論

資深開發者雲風在其部落格發表長文,分享自己從 C++ 忠實擁護者轉為 C 語言支持者的心路歷程。文中多次引用 Linus Torvalds 的觀點,深入剖析 C++ 的「心智包袱」對軟體設計的深遠影響。這不是單純的語言之爭,而是對軟體工程本質的深度反思。

技術背景與雙重轉折

作者並非 Linux 狂熱者,長期在 Windows 平台從事應用開發,對 C++ 有極深鑽研:精讀經典著作、編寫數十萬行代碼、閱讀 STL/Boost 源碼。關鍵在於:他在 1992 年首次愛上 C++,後冷轉回 C;2000 年又重燃熱情,最終再次回歸 C。這兩次完整的「熱愛→否定→回歸」循環,證明其觀點源於理性判斷而非衝動偏見。

核心論點:C++ 的「心智包袱」

Linus 一句話直擊要害:「你當然可以用任何語言寫出爛代碼。但有些語言,尤其是帶有心智包袱的語言本身就非常糟糕。」

C++ 正是這樣一個「帶有心智包袱的語言」。其龐大特性集(繼承、模板、多態、STL、Boost 等)雖能提升編碼效率、實現零開銷抽象,卻在長期維護與架構演進上埋下隱患:

  • 過度抽象陷阱:反覆提取共性建立抽象層,易丟失具體業務真實模型
  • 框架僵化:兩年後發現抽象設計不佳,但代碼已深度依賴,不重寫無法修正
  • 龐大生態的雙面刃:STL/Boost 代碼質量極高,但設計不可能永遠最優,長遠看必將面臨妥協與痛苦

C 語言的設計哲學:誠實面對缺陷

C 語言承認函數調用開銷,拒絕在語言層面掩蓋複雜度。這看似劣勢(如 qsort 不及 std::sort),實則符合 KISS 原則:

  • 設計失誤導致的效率問題幾乎總能避免
  • 重寫失敗模組時幾乎無需妥協
  • 坦然面對缺陷,反而獲得真正的簡約與直接

Linus 的終極建議與作者實踐

「如果你想用更花哨的語言,C++ 絕對是最糟糕的選擇。若想要真正的高級特性,請選擇有 GC 或良好系統集成的語言,而非既缺乏 C 的簡約,又缺乏重要概念高層綁定的東西。」

作者近期遊戲引擎專案印證了這一觀點:V1 用 C++ 且無現成庫 → V2 僅用 C++ 基礎特性 → V3 全面改用 C。這條演進路徑精確映射了其認知升級軌跡。

結語:不帶階級仇恨的技術選型

作者強調並不討厭 C++,呼籲技術社區以理性態度討論。語言只是工具,關鍵在於設計能力——這才是程序員生涯中真正值得精進的核心競爭力。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved