自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

C++程序員講述C++編程技巧說(shuō)明

開發(fā) 后端
C++程序員的觀察是主流工業(yè)界的趨勢(shì)一直是“從C到C++”的,而不是反過來(lái),至少在歐美是如此。在國(guó)內(nèi)我們則可以通過CSDN上的招聘情況得到一個(gè)大致類似的信息。

對(duì)于C++程序員的苦惱有許多, C++程序員往往能享受到有競(jìng)爭(zhēng)力的薪酬,C++的各種庫(kù)在不同的C++編譯器實(shí)現(xiàn)上可能遇到一些問題,希望本文能教會(huì)你更多東西。。。。

首先重復(fù)一句Bjarne的話:“我們的系統(tǒng)已經(jīng)是極度復(fù)雜的了,為了避開C++程序員的復(fù)雜性而干脆不用C++(Linus的做法),無(wú)異于因噎廢食?!痹谒锌捎肅和C++的領(lǐng)域,C++都是比C更好的語(yǔ)言。當(dāng)我說(shuō)“更好的”時(shí)候,我說(shuō)的是C++擁有比C更安全的類型檢查、更好的抽象機(jī)制、更優(yōu)秀的庫(kù)。當(dāng)然,凡事都有例外,如果你做的項(xiàng)目1)不大。2)編碼中用不到什么抽象機(jī)制。

甚至ADT(抽象數(shù)據(jù)類型,例如std::complex這種不含多態(tài)和繼承的)也用不到,RAII也用不到,異常也用不到。3)你連基礎(chǔ)庫(kù)(如,簡(jiǎn)化資源管理的智能指針、智能容器)都用不著。那么也許你用C的確沒問題;所以如果你的情況如此,不用和我爭(zhēng)論,因?yàn)槲覠o(wú)法反駁你。我們這里說(shuō)的領(lǐng)域大致是Bjarne在“C++應(yīng)用列表”里面列出來(lái)的那些地方。 #t#

底線是:如果把C++程序員中的諸多不必要的復(fù)雜性去掉,留下那些本質(zhì)的,重要的語(yǔ)言特性,簡(jiǎn)化語(yǔ)言模型,消除歷史包袱。即便是C++的反對(duì)者也許也很難找到理由說(shuō)“我還是不用C++”。在我看來(lái),一個(gè)真正從實(shí)踐意義上理性反對(duì)使用C++的人只有一個(gè)理由:C++的復(fù)雜性帶來(lái)的混亂抵消乃至超過了C++的抽象機(jī)制和庫(kù)(在他的特定項(xiàng)目中)帶來(lái)的好處。

值得注意的是,這里需要避免一個(gè)陷阱,就是一旦人們認(rèn)定了“C++不好”,那么這個(gè)理由就會(huì)“長(zhǎng)出自己的腳來(lái)”,即,就算我們拿掉C++的復(fù)雜性,他們可能也會(huì)堅(jiān)持還是不用C++,并為之找一堆理由。我假定你不是這樣的人。不過,也許最可能的是他會(huì)說(shuō):“問題是我們今天用的C++并非如此(簡(jiǎn)潔),你的假設(shè)不成立?!笔堑?,我的假設(shè)不成立。但雖然我們無(wú)法消除復(fù)雜性,我們實(shí)際上是可以容易地避開復(fù)雜性,避短揚(yáng)長(zhǎng)的。這也是本文的要點(diǎn),容我后面再詳述。

當(dāng)然,到現(xiàn)在你可能還是會(huì)說(shuō)。我還是不用C++程序員因?yàn)槲铱梢杂肈;或者如果你本來(lái)做的項(xiàng)目就不需要C++,你則可能會(huì)說(shuō),我用Python。首先,如果你的項(xiàng)目能用Java/Python乃至Ruby做,那么用C++是自討苦吃。因?yàn)槟苡媚切┱Z(yǔ)言代表你的項(xiàng)目在效率上本身要求就不高,那么用一門效率上討不到太大好處,復(fù)雜性上卻綽綽有余的語(yǔ)言,有什么價(jià)值呢?其次,如果你的項(xiàng)目效率是很重要的,你可能會(huì)說(shuō)可以用D。

然而現(xiàn)實(shí)是D在工業(yè)界尤其是國(guó)內(nèi)被運(yùn)用得非常少,幾乎沒有。而C++卻有大量的既有代碼,已經(jīng)使用C++去做他們的產(chǎn)品的公司,在很長(zhǎng)一段時(shí)間之內(nèi)幾乎是不可能用別的語(yǔ)言重寫代碼的,正如Joel所說(shuō),決定重寫一個(gè)非平凡的代碼基==自殺。所以,我們至少要注意以下兩個(gè)明顯的事實(shí):

事實(shí)1:C++在工業(yè)界仍有穩(wěn)定的核心市場(chǎng)。

這個(gè)事實(shí)大概不需要多加闡述,很多大公司的核心技術(shù)還是要靠C++來(lái)支撐的(見Bjarne主頁(yè)上的C++應(yīng)用列表)。所謂事實(shí),就是未必是大家最愿意承認(rèn)的情況,但又不得不承認(rèn)。C++積累了龐大的代碼基,這個(gè)代碼基不是一朝一夕能夠推翻的。

D從語(yǔ)言角度來(lái)說(shuō)的確優(yōu)于C++,但最關(guān)鍵的就是還沒有深入工業(yè)界(也許根本原因是沒有錢支持,但這不是我們討論的重點(diǎn))。而C呢,根據(jù)Bjarne本人的說(shuō)法,他的觀察是主流工業(yè)界的趨勢(shì)一直是“從C到C++”的,而不是反過來(lái),至少在歐美是如此。在國(guó)內(nèi)我們則可以通過CSDN上的招聘情況得到一個(gè)大致類似的信息。

事實(shí)2:C++程序員往往能享受到有競(jìng)爭(zhēng)力的薪酬。

是的,這不是一篇不食人間煙火的技術(shù)文章。這個(gè)事實(shí)基于的邏輯很簡(jiǎn)單:物以稀為貴。Andrei Alexandrescu這次來(lái)中國(guó)SD2.0大會(huì)的時(shí)候,在接受采訪時(shí)也說(shuō)過:“最賺錢的軟件(如MS Office)是C++寫的”。

孟巖也在blog上提到這么個(gè)事實(shí),我想他作為CSDN的技術(shù)總編,業(yè)界觀察肯定比我清晰深刻。所以我這里就不多廢話了。 當(dāng)然,以上邏輯并不就意味著在慫恿你去學(xué)C++,一切還要看你的興趣。所以如果你志不在C++身處的那些應(yīng)用領(lǐng)域,那這篇文章并非為你而寫。

責(zé)任編輯:chenqingxiang 來(lái)源: 第一財(cái)經(jīng)日?qǐng)?bào)
相關(guān)推薦

2010-01-12 10:11:36

學(xué)習(xí)C++語(yǔ)言

2010-01-12 15:24:48

C++語(yǔ)言

2010-01-12 14:30:41

C++程序

2021-02-26 10:41:59

C++程序員代碼

2010-01-11 10:41:05

C++編程

2011-05-30 15:29:32

C++

2010-01-11 13:31:03

C++語(yǔ)言

2010-01-13 10:16:42

C++軟件

2011-07-10 15:26:54

C++

2010-01-13 10:31:35

C++代碼

2010-01-19 15:36:02

C++語(yǔ)言

2010-01-13 13:58:49

C++編譯模式

2010-01-26 17:11:13

C++編程

2010-01-12 17:55:03

C++程序

2010-01-13 15:51:44

C++編程語(yǔ)言

2010-01-12 17:33:06

C++

2011-02-15 13:12:02

JavaC++

2012-11-08 09:49:30

C++Java程序員

2010-01-21 13:33:44

C++基類

2010-01-28 17:14:38

Visual C++應(yīng)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)