Linus 指出「關鍵在設計」,暗示好設計用 C 也能實現,C++ 反而帶來額外「心智包袱」。大多數 C++ 程式設計師難以跨越此關:寫代碼時不斷糾結「有無更好方案?加模板?抽象基類?Bridge 模式?所有權誰負責?shared_ptr?weak_ptr 斷循環?」,結果耗時極大,不如用「Ctrl+C/V+Modify+Debug」的 C 風格開發者效率高。
思考階段用 C 方式:系統級開發中,華麗抽象機制用不上。以 C 思維思考問題,設計更精簡、直接、精益。C 同樣能做基於物件、甚至組件級設計。
實作階段選用 C++ 現成設施:設計方案出來後,若某部分 C++ 已完美實現且無副作用,直接用 C++ 實作對應部分。
從 C 設計出發,常見資料結構與演算法恰為 STL 強項:
accumulate 求和、transform 映射、adjacent_find 尋找相鄰相等項lower_bound/equal_range 二分搜尋系統級開發:用 C 設計(精簡直接),用 C++ 編碼(利用現成設施提效)。避免讓設計迷失於語言機制,回歸「工具服務設計」本質。