從c++98 , c++11, 到c++20, OOP, template,智能指標,模塊,coroutine...
要寫好c++心智負擔太重。c++演變成這樣博大精深,不是c++的錯。是大部分人的腦力和精力不足以輕松駕馭性能、優雅、全面。為什么呢?這和一門編程語言的目的和歷史演變有關。
c++最開始作為支持面向物件的c,并且完全兼容c而創立。c發明的目的是用來寫設備程式和作業系統的(發明c是因為用匯編語言寫unix太麻煩,后來c和unix的作者發明了c語言),因此c要求程式員需要對底層很了解,這種要求被c++完全繼承下來。c++的理念也是提供更好的語言特性來構建大型程式,但同時又不剝奪程式員的控制權。這種控制權,什么意思呢?就是c++程式員要寫出好的程式,某種程度上需要非常理解c++的特性的背后原理,否則,寫出來的程式可能會失控。
另一方面,目前也只有c/c++能夠提供這種能力,這是它的歷史包袱也是他必須擔負的責任。這好比國企,有政治責任,有社會責任,有國防責任,有經濟責任,創新責任。
而其他編程語言,無論是java, python, go, c#,他們有自己的哲學,并且有一個共同的特點,就是我不是用來寫設備程式,也不是用來寫作業系統的,不需要背負這些責任,只需要專注于自己的領域。包括以黑盒的方式封裝內部的復雜性,更快更簡單的為程式員構建他的系統。就好像是私營企業,流程怎么簡單怎么來,效率怎么高怎么來。
人們最喜歡:你直接給我答案;
其次喜歡:你給我幾個選擇;
最后才是:你給我全部的材料和所有的武功秘籍,我自己來思考設計和實作。
c++選擇的是最后一種。
而喜歡c++的程式員,注定也是少數的、享受孤獨的人。
uj5u.com熱心網友回復:
沙發。。。沒有享受孤獨的感覺,天下武功,殊途同歸。。。
uj5u.com熱心網友回復:
C++難寫好是因為你忘了C。uj5u.com熱心網友回復:
因為C++和C都是通用語言,而Java,Python就不是通用語言。通用語言沒有最優解,他會教你各種方法,然后自己選擇。Python等非通用語言則不一樣,讓他們是直接給你最優解。或許這就是通用語言的魅力吧。uj5u.com熱心網友回復:
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/241606.html
標籤:C++ 語言
上一篇:c語言 的函式問題
下一篇:。。
