閒聊:C++ 之父自爆 C++ 超危險?
1 |
在 YouTube 滑到某段講法國軟體專案大爛尾故事,提及失敗主因是選擇難寫的 C++ 開發,其中引用一段 C++ 之父 Bjarne Stroustrup 自己對 C++ 的評論:
C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do it blows your whole leg off.
我的不正經翻譯是:
用 C 寫程式,你很容易開槍打到腳。
C++ 比較不會,你會把整條腿轟掉。
此舉讓一堆壓根沒寫過 C++ 的人高潮,狂酸 C++ 是個爛語言,當然也很有多 C++ 開發者跳出來匡正視聽。
常看到網路戰語言的我,已看慣語言孰好孰壞的爭議,我現在的觀念是一律回歸葉師傅名言:不是南拳北拳的問題,是你的問題。
耍方天畫戟扎到腳?舞青龍偃月刀閃到腰?不是武器爛,是你未夠班。
好奇查了一下,還真在 Stroustrup 的個人烘培雞(恕我拿出這個上古詞彙,大神網頁的樸實風格當之無愧)找到一篇語錄整理,而第一個提到的就是這條,足見其份量及影響力:
"C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do it blows your whole leg off". Yes, I said something like that (in 1986 or so). What people tend to miss, is that what I said there about C++ is to a varying extent true for all powerful languages. As you protect people from simple dangers, they get themselves into new and less obvious problems. Someone who avoids the simple problems may simply be heading for a not-so-simple one. One problem with very supporting and protective environments is that the hard problems may be discovered too late or be too hard to remedy once discovered. Also, a rare problem is harder to find than a frequent one because you don't suspect it.
大神承認在 1986 年時說過這樣的話,但許多人並沒有理解整段的真正用意是在點出:當你保議人們避免簡單的危險,他們會陷入另一種新的、較不明顯的問題。當環境提供太多保護,問題被掩蓋而持續擴大,到發現時為時已晚。而最重要的是,這個特性非 C++ 專屬,所有強大的程式語言都適用。
不過,顯然許多人只被幽默的比喻吸引,把邏輯簡化成「連 C++ 的發明人都說 C++ 很危險」,再滑坡出「C++ 是個糟糕語言」的結論。
但至少,ChatGPT 都知道大神想說的是什麼:
C++ 當然不是個爛語言,大家每天在用的作業系統、Chrome 瀏覽器,3A 大作背後的 3D 引擎,眾多對效能有極致要求的頂尖軟體,都是用 C++ 打造的。C++ 絕對是偉大的程式語言,但不是任何人都有能力駕御罷了。
我的心得是:富含深義的幽默比喻,要小心那些不懂幽默的人,或是只懂幽默的人,哈。
Comments
# by yoyo
C/C++讓工程師能夠操作底層、自行管理記憶體,在注重效能或資源受限的使用情境是非常重要的 當然給了工程師最大權限,工程師也有責任把關程式碼品質 有能力掌握的專業人才自然值得更好的薪資