怎麼看待 Linus 和 Richard Stallman 對 C++ 的態度?

Linus (Linux 的項目發起人)自己發表的對C++的看法。Linus Torvalds on C++ Linus 說C++是一個非常糟糕的語言,使用它的大多數是不合格的程序員。他說C++ STL看似穩定,但是是胡說。實際情況下,卻並不能工作。

Richard Stallman (GNU 項目發起人)自己寫的關於語言的一些看法。How I do my Computing 這裡有他對C++ 等語言的看法。說C++是一種語義混亂,很難看的語言。

C++有不少標準。常用的有 C++11/C++14 以及即將到來的 C++17 好像又有許多人用C++。

弱問,這麼講,用C++ 有什麼用?

聽說很多大公司對性能要求很高的時候,都會上C++


恭喜題主的村子通網


C++這種東西,如果你不知道它有什麼用,那就用不著學,等你知道它有什麼用的時候再學也不遲。


這事早有公論,不必引戰.

更不要說那幾位神仙討論的cpp和現代cpp根本不一樣


題主這麼功利的心態不適合入C++。C++程序員成長慢,淘汰率高,還是玩別的吧,比如js,python,php之類的


當真你就輸了。他們是大神不假,但不代表他們的觀點放之四海皆準。Linus當初批評Java也挺激烈(言詞之污我都不好意思寫到這裡),但不妨礙Java成為目前應用最多的編程語言;他不喜歡Python,也不妨礙Python的上升勢頭;他還不喜歡蘋果的系統,但不妨礙蘋果繼續開發、使用,並且大賺特賺。

你喜歡什麼語言,用熟就好,大神的話僅供參考,別太當真了


大部分桌面軟體都是C++寫的,Firefox,Chrome等瀏覽器,KDE 等等桌面,底層的qt庫,MySQL和MongoDB等資料庫,Android的中間層也是C++寫的。PC和主機遊戲幾乎全都是C++。

面向對象是個很實用的技術。C++啥都能幹,有很多人用。而 C 的應用範圍就窄得多了,一般桌面軟體是不會用的。


大牛也是人,也會有偏見,也會懷舊念古對新事物有抵觸情緒。

Linus 噴過 Java(Linus: Java is a horrible language),也公開承認不太愛用 Python 一類的解釋型語言(Linus: I tend to either just write C),那是不是我們都要追尋大牛的腳步,抱著 C 語言吃飯就行了?

Richard Stallman 是個很有性格的大牛人。他在題主所說的那個訪談里(How I do my Computing)其實說得很清楚了:

Since around 1992 I have worked mainly on free software activism, which means I am too busy to do much programming. Around 2008 I stopped doing programming projects.
...
The flaws of C++, as I recall from when I studied the matter around 1990, include syntax and semantics

可見 Stallman 老人家噴的是何其遠古時期的 C++,要知道 C++ 第一版的標準是在 1998 年發表的。

學習技術,最主要的就是獨立思考與判斷的能力,我們需要的是借鑒先輩大牛們的思想,而不是捍衛他們的偏見。


C++整體上看上去很糟糕,所以大家根據需要會使用C++的某個子集,或者變種。

夠用就好。


我認為奧尼爾完全可以說他覺得在籃球裡面罰球和運球根本不重要,因為他自己兩個都不擅長但是照樣拿總冠軍。但是,奧尼爾是奧尼爾。如果你也這麼認為的話……


能不能不黑?


"C++是一個非常糟糕的語言"

這句我非常同意

"使用它的大多數是不合格的程序員"

這句我不同意。

能用這麼糟糕的語言寫出完美運行的程序的程序員還是挺厲害的。


他們說得對,不要反駁,不聽老人言,吃虧在眼前吶。


C++是給高手準備的好工具,不是給21天精通c語言的入門者準備的。c++要學好了,需要很多刻苦的學習,之後才能有正確的姿勢使用c++。


沒有必要糾結於語言,看用來幹什麼吧


侯捷和andy koenig都有類似的言論

」那些把C用得出神入化的高手們是不需要C++的「

但是大多數人我相信不是那些人。


在一些特定的領域,還是離不開C++。圖形界面就是一個離不開C++的領域。


這個大概是西門吹雪之對青龍偃月刀的感覺吧。大概天才級的大牛無論精通的是何兵器都可以做到無往不勝,孤獨求敗!不過對於自己不擅長的兵器,天才們的評價不見得就是客觀準確的。

說一個自己經歷過的小故事:當年在魔都的時候認識一位大牛,這位大哥當年在帝都的時候花了一夜時間把王永民的五筆字型加密版給破解了,當然,這不是重點,重點是大哥最後並沒有拿到說好的懸賞!其實,與題主問題有關的是:有一次請大哥幫忙看一段程序,花3分鐘解決了困繞了我3天的問題後,大哥一臉誠懇的問:"C語言是個什麼東西?"


這說的沒啥問題啊,這一直都是共識吧。

只是沒有比C++更好的,不得不用而已。


開源項目中,優雅的c++代碼鳳毛麟角,但優雅的c代碼很多。

c++把很多人引入到了編程的歧途,很多人被訓練的根本不會寫程序了。

c++真正意義的存在是給那些c++ compiler開發人員玩的,至於使用者,都是被玩的。


其實你在現實中應該見過不少這種情況,一個人在噴一個東西的時候,往往義憤填膺,但你讓他舉例子說明的時候,往往都是很general的語言草草帶過。

其實都是感情宣洩,C和C++誰小,誰快,誰設計更好已經爭論百年了,大多數理由都經不起推敲。

題主要知道的是,「他再nb,也不代表他一定是對的。」


推薦閱讀:

Linux是否有類似於IIS統一管理網站的工具?
最逼近Mac OS X的Linux系統有哪些?
Linux 各個發行版與 OS X 相比哪個寫代碼更舒服?為什麼?
vmware, visual studio, steam dota2這種需要極大內存的程序是如何分配內存的?
想成為 Linux 驅動工程師,需要讀些什麼書?

TAG:編程語言 | Linux | GNU | C | CC |