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

為什么要學(xué)習(xí)C++程序

開發(fā) 后端
對于每一個IT行業(yè)的從業(yè)人員,無論是開發(fā)人員、項目經(jīng)理、還是測試人員,掌握了C++程序這們語言會使我們的編程工作更簡單和更輕松。

 隨著時代的進(jìn)步科技的發(fā)展對C++程序?qū)W習(xí)的人群也大大的增加了,好下面文章就對C++程序做深一層的解析,還有對于C++程序中的復(fù)雜性說明,希望能給大家?guī)硐胍男畔ⅰ?/P>

首先重復(fù)一句Bjarne的話:“我們的系統(tǒng)已經(jīng)是極度復(fù)雜的了,為了避開C++的復(fù)雜性而干脆不用C++(Linus的做法),無異于因噎廢食?!痹谒锌捎肅和C++的領(lǐng)域,C++都是比C更好的語言。當(dāng)我說“更好的”時候,我說的是C++擁有比C更安全的類型檢查、更好的抽象機(jī)制、更優(yōu)秀的庫。

當(dāng)然,凡事都有例外,如果你做的項目1)不大。2)編碼中用不到什么抽象機(jī)制,甚至ADT(抽象數(shù)據(jù)類型,例如std::complex這種不含多態(tài)和繼承的)也用不到,RAII也用不到,異常也用不到。3)你連基礎(chǔ)庫(如,簡化資源管理的智能指針、智能容器)都用不著。那么也許你用C的確沒問題;所以如果你的情況如此,不用和我爭論,因為我無法反駁你。我們這里說的領(lǐng)域大致是Bjarne在“C++應(yīng)用列表”里面列出來的那些地方。

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

值得注意的是,這里需要避免一個陷阱,就是一旦人們認(rèn)定了“C++不好”,那么這個理由就會“長出自己的腳來”,即,就算我們拿掉C++的復(fù)雜性,他們可能也會堅持還是不用C++程序,并為之找一堆理由。

我假定你不是這樣的人。不過,也許最可能的是他會說:“問題是我們今天用的C++并非如此(簡潔),你的假設(shè)不成立。”是的,我的假設(shè)不成立。但雖然我們無法消除復(fù)雜性,我們實際上是可以容易地避開復(fù)雜性,避短揚長的。這也是本文的要點,容我后面再詳述。

當(dāng)然,到現(xiàn)在你可能還是會說。我還是不用C++,因為我可以用D;或者如果你本來做的項目就不需要C++,你則可能會說,我用Python。首先,如果你的項目能用Java/Python乃至Ruby做,那么用C++是自討苦吃。

因為能用那些語言代表你的項目在效率上本身要求就不高,那么用一門效率上討不到太大好處,復(fù)雜性上卻綽綽有余的語言,有什么價值呢?其次,如果你的項目效率是很重要的,你可能會說可以用D。

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

事實1:C++程序在工業(yè)界仍有穩(wěn)定的核心市場。

這個事實大概不需要多加闡述,很多大公司的核心技術(shù)還是要靠C++來支撐的(見Bjarne主頁上的C++應(yīng)用列表)。所謂事實,就是未必是大家最愿意承認(rèn)的情況,但又不得不承認(rèn)。C++程序積累了龐大的代碼基,這個代碼基不是一朝一夕能夠推翻的。D從語言角度來說的確優(yōu)于C++,但最關(guān)鍵的就是還沒有深入工業(yè)界(也許根本原因是沒有錢支持,但這不是我們討論的重點)。而C呢,根據(jù)Bjarne本人的說法,他的觀察是主流工業(yè)界的趨勢一直是“從C到C++”的,而不是反過來,至少在歐美是如此。在國內(nèi)我們則可以通過CSDN上的招聘情況得到一個大致類似的信息。

事實2:C++程序員往往能享受到有競爭力的薪酬。

是的,這不是一篇不食人間煙火的技術(shù)文章。這個事實基于的邏輯很簡單:物以稀為貴。Andrei Alexandrescu這次來中國SD2.0大會的時候,在接受采訪時也說過:“***錢的軟件(如MS Office)是C++寫的”。孟巖也在blog上提到這么個事實,我想他作為CSDN的技術(shù)總編,業(yè)界觀察肯定比我清晰深刻。所以我這里就不多廢話了。

當(dāng)然,以上邏輯并不就意味著在慫恿你去學(xué)C++,一切還要看你的興趣。所以如果你志不在C++身處的那些應(yīng)用領(lǐng)域,那這篇文章并非為你而寫。

責(zé)任編輯:chenqingxiang 來源: 電子工業(yè)出版社
相關(guān)推薦

2010-01-22 15:14:37

學(xué)習(xí)C++

2022-11-28 09:58:58

C++開發(fā)

2015-05-25 15:31:56

C語言學(xué)習(xí)和使用 C 語言

2021-11-19 09:49:00

CC++語法糖

2015-05-12 11:04:42

Java EE學(xué)習(xí)Java EE

2012-06-18 14:51:09

Python

2017-04-05 18:10:05

R語言開發(fā)Ross

2021-03-08 11:28:59

人工智能深度學(xué)習(xí)Python

2010-11-03 09:22:00

C語言

2018-08-02 15:24:05

RPCJava微服務(wù)

2024-01-24 11:24:03

C++編程異常處理

2024-12-09 16:00:00

代碼引用

2021-12-03 17:22:09

CC++編程語言

2010-01-21 10:34:08

SUN-JAVA認(rèn)證

2010-01-28 15:38:57

學(xué)習(xí)C++意義

2015-07-20 10:11:08

程序員幸福

2015-11-02 09:19:10

程序員JavaScript

2010-10-09 09:20:08

.NET

2021-01-27 22:31:36

HTML編程Web

2010-01-14 09:43:26

C++標(biāo)準(zhǔn)程序庫
點贊
收藏

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