資訊在口耳相傳中會被主觀意識修飾、扭曲——語言本身具有建構現實的力量,不同立場解讀同一句話可得截然相反的結論。加上「不願承認不知情」、「維護心理優勢/利益」、「人雲亦雲」等心理機制,謬誤 (Fallacies) 與迷思 (Myths) 便在長期爭論中固化。
真相:C++ 設計原則之一即「不要陷入對完美的固執追求」(Bjarne Stroustrup)。所謂「學院派」實指:
• 過度關注語言陰暗角落 (如 SFINAE、模板元編程技巧)
• 將語言特性本身當作目標,而非解決問題的工具
• 標準化提案多聚焦語言機制,而非實際開發痛點
成因:現代 C++ 庫開發 (Boost、STL) 確實需要深鑽語言細節 (如 enable_if, type_traits),這種「庫設計者的必要條件」被錯誤推廣為「所有 C++ 程式設計師的充分條件」。
許多批評者從未深度使用現代 C++ (C++11/14/17/20),或非合格 C++ 開發者。實際上:
-fno-exceptions -fno-rtti,應用層大方用標準庫。Eiffel 證明多重繼承可被優雅解決 (重命名、選擇、未定義)。C++ 採用域解析操作符 :: 消除歧義,雖顯醜陋但實用。Java 採用介面替代,本質是「單一實作繼承 + 多重型別繼承」,解決了菱形繼承的狀態衝突,但犧牲了 Mixin 模式的表達力。孰優孰劣取決於應用場景,無絕對真理。