標籤:

C++的語言設計有哪些缺陷?


C++的設計思想里,性能和效率很重要,兼容C很重要,這兩個幾乎是排在首位的。至於生產力,易於學習,就……

另外,Bjarne Stroustrup老爹說:不喜歡強迫別人使用某種固定的編程方式

所以C++就變成了,幾乎每個人都有自己的編程方式的語言……哦也


C++ 有哪些缺點? - 陳碩的回答


Other langs are created by some geniuses for some average programmers, while C++ is created by some geniuses for some other genius programmers. However, a lot of ... Not-that-genius programmers are also using it, and thinking it"s okay.

大概是這個意思吧。這是當年語言細節課老師的講法,雖然聽來略自大,但是的確說到了點子上。

C++出現的時候還沒有其他高級語言,它的設計出發點就是認為「你行」,認為運用它的人可以用到一致的甚至是最優的思維方式和代碼風格。這個設計初衷本身和後面的語言有極大的區別,因為大家逐漸意識到程序員之間水平的參差不齊,面對規模比較大的項目,必須要考慮到「很多程序員是不行的」這個問題。

所以,精通C++是人生三大幻覺之一還是有原因的。。。


對於我來說最大的"缺陷"就在於,有一群人圍著你,給你擺一巨桌滿漢全席,告訴你,你要是能吃就把這一桌全部吃下去,不能的話,隨便品嘗幾盤就好,沒事的…不怪你!


c++的最大缺點是,太靈活,導致複雜(這裡複雜是指設計上的多樣性),但也是最大優點,從不會給你在軟體設計上套上任何枷鎖。。。


基本上所有的缺陷都來自於兼容C語言,不過這也沒辦法,這是一個商業決策,不是技術所能左右的。

到了C++11,基本上提供了所有C語言的糟粕部分的替代設施。如果你想好好寫,你就去用這部分,C語言的什麼指針代數啊、union啊、無視類型的memcpy和memset什麼的,強制類型轉換啊,不要碰。

話說在我Office組裡,寫(T*)fuck是要在code review上點名批評的,都要改成reinterpret_cast&(fuck)。


對於不知道C++複雜度而又聞名前來學習編程只是為了裝逼的人,自信心打擊太大。


某些人學了後裝逼指數直線上升,嚴重影響學習其它語言的動力。


號稱精通C++會招來各種無情的呵呵→_→


C++是一種反緊湊型語言,這一點是最蛋疼的


推薦閱讀:

如何入門Python3?
為什麼 Python 不支持函數重載?其他函數大部分都支持的?
請問要開發安卓,需要考什麼證?
精通C++之後是否寫代碼就是體力活了?
PyPy 為什麼會比 CPython 還要快?

TAG:編程語言 | C |