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&
對於不知道C++複雜度而又聞名前來學習編程只是為了裝逼的人,自信心打擊太大。
某些人學了後裝逼指數直線上升,嚴重影響學習其它語言的動力。
號稱精通C++會招來各種無情的呵呵→_→
C++是一種反緊湊型語言,這一點是最蛋疼的
推薦閱讀:
※如何入門Python3?
※為什麼 Python 不支持函數重載?其他函數大部分都支持的?
※請問要開發安卓,需要考什麼證?
※精通C++之後是否寫代碼就是體力活了?
※PyPy 為什麼會比 CPython 還要快?