成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

C++老矣,尚能飯否?

原創(chuàng)
開發(fā) 后端
C++ 11的發(fā)布,讓大家知道原來C++語言還有更新?lián)Q代的情況。在Java 7等語言新版本不斷的時(shí)候,C++似乎步伐慢了一些。究竟是C++老矣,還是程序員們不關(guān)心C++的與時(shí)俱進(jìn)?

【51CTO獨(dú)家特稿】中國人讀“C++”時(shí)存在兩種讀音,一種讀作“C加加”,另一種讀作“C plus plus”。兩種讀音似乎都沒錯(cuò),只是遵從不同的標(biāo)準(zhǔn)罷了。如同C++有兩種讀法一樣,目前C++陣營甚至沒有一個(gè)完整的標(biāo)準(zhǔn),只有最符合和接近C++標(biāo)準(zhǔn)的編譯器GNU GCC 4.6.1和微軟的Visual Studio 2010 SP1。C++這個(gè)在Tiobe編程語言排行榜中躋身三甲的語言,為何連完整的標(biāo)準(zhǔn)都沒有?

C++之父 

C++之父 Bjarne Stroustrup

C++之父Bjarne Stroustrup的簡歷上只有一句話“C++締造者”,這樣的成就是榮耀無比的。但似乎C++似乎過于低調(diào),讓很多C++程序員都沒有新消息可以接收。Java有Oracle等大公司推動(dòng)、.NET有微軟推動(dòng)、HTML 5有Google等推動(dòng)、包括PHP有眾多用戶和社區(qū)推動(dòng),那C++有誰在推動(dòng)呢?

C++從20世紀(jì)80年代面世,經(jīng)歷了以下三個(gè)階段的發(fā)展

第一階段從1980年代到1995年。這一階段C++語言基本上是傳統(tǒng)類型上的面向?qū)ο笳Z言,并且憑借著接近C語言的效率,在工業(yè)界使用的開發(fā)語言中占據(jù)了相當(dāng)大份額;   

第二階段從1995年到2000年,這一階段由于標(biāo)準(zhǔn)模板庫(STL)和后來的Boost等程序庫的出現(xiàn),泛型程序設(shè)計(jì)在C++中占據(jù)了越來越多的比重性。當(dāng)然,同時(shí)由于Java、C#等語言的出現(xiàn)和硬件價(jià)格的大規(guī)模下降,C++受到了一定的沖擊;   

第三階段從2000年至今,由于以Loki、MPL等程序庫為代表的產(chǎn)生式編程和模板元編程的出現(xiàn),C++出現(xiàn)了發(fā)展歷史上又一個(gè)新的高峰,這些新技術(shù)的出現(xiàn)以及和原有技術(shù)的融合,使C++已經(jīng)成為當(dāng)今主流程序設(shè)計(jì)語言中最復(fù)雜的一員。

Borland C++ Builder 

Borland已隕落

相信很多程序員跟51CTO記者一樣,在大學(xué)里學(xué)習(xí)過《C++語言程序設(shè)計(jì)基礎(chǔ)》。聽著老師們指著譚浩強(qiáng)的《C++程序設(shè)計(jì)》,不厭其煩的講解char、int等數(shù)據(jù)類型的取值范圍,指針指向地址取值的問題。在這過程中我們接觸的第一個(gè)IDE(編譯器)是Borland公司的C++ Builder,盡管他已經(jīng)淪落到被人收購的境地。2009年5月6日,英國軟件商Micro Focus宣布,公司將以7500萬美元現(xiàn)金收購Borland軟件公司,一代軟件開發(fā)工具先驅(qū)者隕落了。

不管我們用的是Borland公司還是微軟的VC環(huán)境,很少有程序員關(guān)心C++的標(biāo)準(zhǔn)和版本問題。我們經(jīng)常能聽到Java或.NET程序員談?wù)揓ava 7或者.NET 3.5等版本的新特性,但有誰關(guān)心過C++的新版本?

51CTO記者隨機(jī)對(duì)一些C++程序員進(jìn)行了調(diào)查,有50%的程序員表示對(duì)開發(fā)語言的新版本有興趣,但不會(huì)用到實(shí)際工作中。只有當(dāng)所在公司要求他們統(tǒng)一進(jìn)化到新版本時(shí),才會(huì)使用新版本。有10%的程序員會(huì)從繁忙的工作中抽出時(shí)間來學(xué)習(xí)新版本,并獨(dú)自運(yùn)用到開發(fā)工作中。剩下40%的程序員表示天天加班,根本沒有時(shí)間看所謂的新版本,到時(shí)候現(xiàn)學(xué)吧。

這樣的調(diào)查結(jié)果讓我們了解了國內(nèi)程序員對(duì)編程語言新版本的態(tài)度。從51CTO發(fā)布的新聞《掀起C++ 11的神秘面紗》中,我們聽到了不少C++的程序員對(duì)于C++ 11的悲觀論調(diào),甚至預(yù)言未來的C++ 11進(jìn)不了編程語言排行榜的前十。

C++真的老了?

現(xiàn)在最好找工作的程序員是哪一類?根據(jù)51CTO編輯在智聯(lián)招聘網(wǎng)站,以北京地區(qū)為范圍,搜索到不同開發(fā)語言工作崗位數(shù)量如下:

PHP 5212
Java 11824
C++ 9252
ASP.NET 2383

可以看出C++程序員的需求是旺盛的,甚至超越了因電子商務(wù)而紅火的PHP程序員。C++并不因?yàn)榘姹镜膯栴}而遭到拋棄,廉頗老矣,尚能飯否的應(yīng)該是VB這樣的語言。因?yàn)樵谥锹?lián)招聘里,VB這個(gè)關(guān)鍵詞只有可憐巴巴的827個(gè)職位。

看來C++還是很多程序員的飯碗,大家一致用行動(dòng)證明C++并沒有老去,并沒有被人所遺忘。只是我們身在C++中,并不太關(guān)心它的進(jìn)步和發(fā)展,只要用C++能處理好手頭上的工作,哪管C++ 11的未來?

為什么新手不選擇C++?

很多新人喜歡Java或者.NET,因?yàn)樗麄冮_發(fā)起來相對(duì)簡單,甚至說高效。以往C++的優(yōu)勢(shì)在于對(duì)硬件資源的合理分配,特別是代碼行超過三萬以后,C++的系統(tǒng)消耗優(yōu)勢(shì)更加明顯,這也是為什么很多大公司熱衷于C++做大型開發(fā)的原因。

但隨著內(nèi)存和CPU等硬件設(shè)備的降價(jià),硬件資源和性能問題似乎不再成為程序員們考慮的問題。就好像386、486時(shí)代的PC用戶還要為那幾十K的內(nèi)存優(yōu)化費(fèi)勁一樣,C++程序員那窮盡極致的節(jié)約系統(tǒng)資源,已經(jīng)被看做是費(fèi)力不討好,新手們自然不選擇C++了。

其實(shí)百度和《魔獸世界》都是C++寫出來的。

看C++ 11的新特性

C++沒有垃圾回收機(jī)制,未來似乎也沒有。如果你不小心沒管住內(nèi)存,那么就要對(duì)不起了,內(nèi)存崩潰的情況不是不可能。在Java和.NET都支持垃圾回收之后,C++ 11還是顯得有些另類。當(dāng)然我們也是猜測(cè),這樣對(duì)內(nèi)存的精確控制,是不是出于對(duì)程序開發(fā)更加精確的考慮?

新的C++ 11里將會(huì)支持多線程開發(fā),這個(gè)與目前多核CPU技術(shù)的發(fā)展密切相關(guān),能極大的提高C++開發(fā)成品的效率。這個(gè)新特性應(yīng)該是與時(shí)俱進(jìn)的改變,還是沒有多少創(chuàng)新性。Visual Studio 2010也已經(jīng)實(shí)現(xiàn)C++并行構(gòu)建的功能。

Lambda表達(dá)式也是此次C++ 11標(biāo)準(zhǔn)中最為人詬病的特性,甚至有C++程序員直言“這Lambda太丑陋了,還不如Java,盡管Java的Lambda也是極其丑陋。”也有清醒的C++程序員認(rèn)為Lambda表達(dá)式在大型項(xiàng)目中的應(yīng)用還是不錯(cuò)的,新的語言機(jī)制會(huì)帶來新的效率,盡管這會(huì)有些陣痛。關(guān)于Java 7與C#中Lambda表達(dá)式的優(yōu)劣,請(qǐng)點(diǎn)擊這里

借用一位C++程序員的例子來說明Lambda的正面作用,在C++中,STL的很多算法都要求使用者提供一個(gè)函數(shù)對(duì)象。例如for_each函數(shù),會(huì)要求用戶提供一個(gè)表明“行為”的函數(shù)對(duì)象。以vector<bool>為例,如果想使用for_each對(duì)其中的各元素全部賦值為true,一般需要這么一個(gè)函數(shù)對(duì)象,

  1. class  filler  
  2.   {  
  3.  public :  
  4.   void   operator ()( bool   & i)  const    {i  =   true ;}   
  5. } ;  

這樣實(shí)現(xiàn)不但麻煩,而且不直觀。而如果使用lambda,則允許用戶使用一種直觀和見解的方式來處理這個(gè)問題。以boost.lambda為例,剛才的問題可以這么解決:

  1. for_each(v.begin(), v.end(), _1  =   true ); 

面對(duì)Java和.NET這樣的后起之秀,C++的轉(zhuǎn)身似乎顯得慢了一些。在移動(dòng)開發(fā)和WEB應(yīng)用紅火的今天,C++的聲音似乎小了一些,希望這次C++ 11的新聞不會(huì)被Java 7和HTML 5給淹沒了。

C++ 11標(biāo)準(zhǔn)放出,罵的人比捧的人要多。一是認(rèn)為原有的C++老標(biāo)準(zhǔn)已經(jīng)滿足需要,二是認(rèn)為新標(biāo)準(zhǔn)加入的新功能讓初學(xué)者更不能適應(yīng)。這兩種意見有道理,就如同Windows XP已經(jīng)很方便了,Windows 7全新的操作讓很多人不適應(yīng)一樣。

[[34610]] 

搞C++要有革命熱情

一切只能等C++ 11真正出臺(tái),讓更多的C++程序員用到C++ 11才能有說服力。僅憑媒體放出的一些新特性恐怕還不足以讓大家完全了解C++ 11的真面目。51CTO編輯認(rèn)為,C++ 11能把C++這款“老”編程語言帶到一個(gè)新的高度,C++還會(huì)是排名三甲的編程語言。

【編輯推薦】

  1. 一個(gè)實(shí)用主義者的觀點(diǎn):如何學(xué)習(xí)使用C++
  2. 程序員新招:Java與C++混合編程
  3. C++和Java 的缺省初始化問題
  4. 淺析C++數(shù)據(jù)類型取值范圍
  5. Visual Studio 2010中C++的四大變化

 

責(zé)任編輯:彭凡 來源: 51CTO
相關(guān)推薦

2023-12-21 13:56:41

PHP語言程序員

2018-11-12 08:30:47

IT技術(shù)面試

2011-07-04 13:29:34

技術(shù)周刊

2020-02-17 14:56:24

JrebelJava生態(tài)系統(tǒng)技術(shù)

2025-01-07 08:00:00

2020-10-25 08:55:00

代碼開發(fā)工具

2015-11-24 15:17:57

谷歌回歸中國

2021-02-01 11:23:13

IBM云計(jì)算

2018-10-30 15:32:07

數(shù)據(jù)庫NoSQLNewSQL

2011-07-14 17:45:06

CC++

2010-01-21 14:07:14

CC++聲明

2010-01-21 09:34:57

C++語法

2010-01-27 16:05:06

C++堆棧

2010-01-26 15:51:06

C++變量

2010-01-28 13:45:06

C++數(shù)組

2011-07-15 00:47:13

C++多態(tài)

2010-01-20 10:19:55

C++數(shù)組

2010-01-25 10:25:19

C++變量

2010-01-27 17:16:52

C++構(gòu)造函數(shù)

2010-01-28 16:31:54

C++類型
點(diǎn)贊
收藏

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

主站蜘蛛池模板: 亚洲国产成人精品久久久国产成人一区 | 午夜影院 | 做a网站| 在线免费看黄 | 丝袜美腿一区二区三区 | 欧美精品一区二区三区在线播放 | 国产精品久久 | 亚洲最大av | 一区二区视频 | 天天躁日日躁性色aⅴ电影 免费在线观看成年人视频 国产欧美精品 | 日本精品一区二区三区在线观看视频 | 久久综合一区 | av黄色在线观看 | 亚洲一区在线免费观看 | 91免费电影| 中文字幕日本一区二区 | 一区二区三区国产精品 | 高清国产午夜精品久久久久久 | 看羞羞视频| 精品国产伦一区二区三区观看方式 | 欧美日韩在线综合 | 亚洲国产成人精品女人久久久 | 久久青| 成人在线观看网站 | 欧美在线日韩 | 久久蜜桃资源一区二区老牛 | 秋霞精品 | 一本综合久久 | 欧美成人免费 | 色综合色综合 | a免费在线 | 国产a区 | 亚洲97| 一区二区三区四区在线视频 | www免费视频 | 欧美色综合一区二区三区 | 亚洲成人免费视频在线观看 | 美日韩一区二区 | 欧美精品网站 | 婷婷色婷婷 | 午夜在线视频一区二区三区 |