程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 探索C++語言中的秘密

探索C++語言中的秘密

編輯:C++入門知識

許多編程人員學習C++總結經驗為,有的覺得C++語言是一門獨立的語言,並不是在C語言的基礎上,可以直接學習C++不必先從C下手,希望大家切磋。。

評論數目也有一百多。為什麼獨獨這篇能夠激起這麼多的回應,想必是國內的C++社群被C++壓抑太久,或者,嚴格來說,是被C++的教育方式壓抑太久。實際上,不管是在各大國內論壇上。

還是在comp.lang.c++.moderated這樣的國際C++論壇上,乃至於在douban上的小組內,有心者都會發現,對C++語言的細節的關注一直都沒有停止過,同樣,對C++語言的細節的抱怨也從來都沒有停止過。

一個例子就是comp.lang.c++.moderated上的一個技術牛人James Kanze說的,他說接觸C++十年了,到現在還需要不時去翻C++標准。這就難怪Eric Raymond老大在《The Art of Unix Programming》中說“C++是反緊湊”的了。C++中的細節太多,就算都看過了,也不可能都記住。更關鍵的是,就算都記住了,也不能讓你成為一個真正的好程序員。

絕大多數人都把細節太多或者用貶義詞來說就是“陰暗角落太多”)歸結為C++的本質問題,認為一切邪惡由此而生。也正因此,大約9月份的時候,Linus在郵件列表上說“C++是一門有思想包袱的語言;僅僅是為了讓程序員遠離C++,我也要用C”。這句短短的話在國內引起了很大的反應,最初是劉江轉了Linus的話,然後雲風和孟巖都發表了自己的看法;我也寫了一篇“Why C++”後來發給Bjarne,Bjarne對這篇文章做了一個友情評注)。

然而,這一通渾水攪過之後,我相信引起的變化未必很大。大多數原先的反對者能從中找出反對的理由,於是更加反對;大多數原先的贊同者也能從中找到贊同的理由,於是更加贊同;而剩下來的原先沒有明確意見的,看雙方各有各的道理,可能還是沒有頭緒。

擺脫自我服務偏見——理性思考的前提 《決策與判斷》上提到過一個有趣的真實故事:1980年的某一天,美國空戰司令部的計算機突然發出警報——蘇聯的一枚核彈正在向美國本土飛來。司令部立即調兵遣將,迅速為一場核戰做好了准備,然而3分鐘之後,工程人員發現是計算機的一個小零部件故障造成的。

然而,這場虛驚之後,大眾的反應才是真正有意思的:原先支持核武裝的,認為現在感覺更加安全了因為“事實證明這類的故障是完全可克服的”);而原先反對核武裝的則認為更不安全了因為“這類錯誤信號可能導致蘇聯過度反應,引發真正的核戰”)。

類似的情況也發生在三裡島核洩露事件之後,同樣的,反對者認為“這表明管理部門沒有辦法安全管理核能”),支持者認為“這正表明這樣的危險沒有想像得那麼嚴重,是可克服的”)。社會心理學把諸如此類的現象總結為“自我服務偏見”。不幸的是,“真理越辯越明”其實只適用於理性思考者。

為什麼啰嗦這麼一大通呢?就是因為,一直以來泛濫於程序員社群的“語言之爭”,背後真正的原因其實並不在於語言實質上的優劣,而在於觀察者的眼睛。在觀察者的眼睛裡面,語言並非一門工具,而是自己花了N多時間其中尤數C++為最)來“修煉”的技能,對於這樣的技能,被否定無疑等同於自己被否定。所以,從心理學上講,語言並不是工具盡管一直有這麼一種呼吁),而是信仰。

這樣的信仰在越是花得時間久的語言上越是激烈。有趣的是,幾乎所有的“熱鬧”的社群都有這樣的現象,Java、Python、Ruby…莫不如是;因為就算語言本身不復雜,程序員仍然還是要投入大量的精力去學習各種各樣的框架類庫想想Java的那些框架?)。因此這些語言社區的信仰未必不比C++社群的強烈。

然而,一旦弄清我們為什麼會把語言當成信仰,就非常有助於擺脫在看待語言時的“自我服務偏見”,從客觀的角度去看待問題。——“當你看到的是支持某個意見的證據時,試著去想一想有哪些證據是不支持它的”。

那麼為什麼要擺脫自我服務偏見?說小了,是為了成為一個更優秀的程序員誰也不希望因為偏見而去使用一門低效的語言乃至不妥當的語言)。C++語言說大了是節省生命因為偏見可能導致越陷越深,浪費時間)。 所以,如果你能夠理性的思考我們將要討論的問題,避免自我服務偏見就當你從來沒有花時間在C++上一樣)。那麼我們便可以開始討論真正的問題了。

  1. 如何正確編寫C++項目開發編寫項目計劃書
  2. 對C++庫函數進行學習探索總結筆記
  3. 深度演示C++語言的種種高安全性
  4. 詳細介紹如何准確無誤的編寫C++語言
  5. 深度演示C++語言的種種高安全性

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved