国产精品久久久久久久久久久新郎_91久久精品国产_国内精品久久久久久_欧美激情第一页在线观看_国产欧美日韩丝袜精品一区_日韩精品成人一区二区在线观看_国产精品v片在线观看不卡_91精品国产综合久久香蕉最新版 _国产精品亚洲激情_色综合男人天堂

始創(chuàng)于2000年 股票代碼:831685
咨詢熱線:0371-60135900 注冊有禮 登錄
  • 掛牌上市企業(yè)
  • 60秒人工響應(yīng)
  • 99.99%連通率
  • 7*24h人工
  • 故障100倍補(bǔ)償
全部產(chǎn)品
您的位置: 網(wǎng)站首頁 > 幫助中心>文章內(nèi)容

再駁Linus:思科工程師對C++不得不說的事

發(fā)布時間:  2012/8/25 18:38:22

薩丕爾—沃爾夫假說曾經(jīng)在語言學(xué)研究領(lǐng)域風(fēng)靡一時。我粗略總結(jié)了一下,這個假說的核心思想是:你使用的語言影響和制約了你的想法。例如,如果你的語言只有一個單詞來描述雪,你將很難說出粉狀雪和易碎的冰雹之間的差別。

當(dāng)我了解后,我徹底不相信薩丕爾—沃爾夫假說。雖然語言相對論帶著一套假說卷土重來,但幾乎可以肯定的是,人類思想絕不受制于詞匯和語法的牢籠。

E.W. Dijkstra是編程語言領(lǐng)域的薩丕爾,他曾說過:

“給以前接觸過BASIC學(xué)生教良好的編程幾乎是不可能的。作為潛在的程序員,他們精神上已經(jīng)殘廢,無再生的希望。使用COBOL更是摧殘了他們的心靈,因此,教他們應(yīng)該被視為刑事犯罪”。

今天,我們有Linus Torvalds對C++的炮轟,他認(rèn)為使用C++的程序員會破壞他或她接觸到任何項(xiàng)目。Linus是這樣說的:

“我得出的結(jié)論是,任何希望在項(xiàng)目中使用C++而不是C的程序員都是很可能讓我生氣的程序員,因此我不會給他們機(jī)會來搞砸我的項(xiàng)目。C++導(dǎo)致真正糟糕的設(shè)計(jì)選擇。”

Torvalds太過武斷

在我所在的大型企業(yè)中,我們的名片背面有一句口號:不迷信科技。做到這一點(diǎn)可能不容易,但是的,我們愿意嘗試。

對我來說,這個訓(xùn)誡意味著兩件事:

1、嘗試客觀地為工作選擇最佳的工具

2、不要讓你對工具的偏好指揮完成工作的方法

Linus在他的炮轟中已經(jīng)說得很清楚,任何使用C++編程的人都很心虛,拿這些規(guī)則做借口。

但我有不同的想法,我認(rèn)為C++顯然也有可能成為完成工作最合適的工具。得出這樣的結(jié)論是相當(dāng)客觀的,我認(rèn)為Linus顯然是被他特殊的技術(shù)流派迷惑了。

一個簡單的例子

作為我上學(xué)期C/C++編程班的期末作業(yè),我要求學(xué)生用C實(shí)現(xiàn)一個簡單的令牌計(jì)數(shù)程序,目標(biāo)是要重現(xiàn)下面這段C++代碼的行為:

map counts;
string s;
while ( cin >> s )
counts[s]++;
for ( auto ii = counts.begin() ; ii != counts.end() ; ii++ )
cout << ii->second << " : " << ii->first << endl;

這個特殊的程序突出了一些C中沒有的C++功能,如:

●C數(shù)組,向量多功能替換

● 字符串類

● 使用iostreams安全輸入

●關(guān)聯(lián)數(shù)組作為標(biāo)準(zhǔn)庫的一部分

這個程序用C++來寫是相當(dāng)容易的,只需要處理一下輸入流中的錯誤——有時候甚至這一步都沒有必要。

用C實(shí)現(xiàn)

用C重寫是一個稍微復(fù)雜點(diǎn)的任務(wù),因?yàn)镃的庫中沒有任何類型的關(guān)聯(lián)數(shù)組。解決這個問題的辦法很多,我選擇了下面的辦法:

● 將所有令牌讀入一個數(shù)組

● 完成后,對數(shù)組排序

●完成數(shù)組排序后,通過遍歷每個令牌獲得計(jì)數(shù)

雖然這個算法占用的空間比C++程序更多。假設(shè)你沒有碰到gsort()之類病態(tài)的問題,花的時間可能都差不多。

我堅(jiān)信用C++比用C寫這個程序更容易,理由如下:

●C I/O缺陷。在C中讀字符串有相當(dāng)多的困難,由于C I/O庫沒有標(biāo)準(zhǔn)的方法讀取長度無限制的字符串(可以使用編譯器特定的擴(kuò)展,但那會引起其它問題),你的輸入代碼必須檢查多種錯誤情況,或者構(gòu)建你自己的字符串輸入函數(shù)。

● C數(shù)組的內(nèi)存管理基本上是一項(xiàng)手工任務(wù),我必須為數(shù)組分配原始空間,如果超出了它的長度,我還得小心重新分配,做完后,我還得釋放空間。

● C字符串的內(nèi)存管理有同樣的問題。

● 字符串?dāng)?shù)組的排序使用gsort()只是有一點(diǎn)不方便,gsort()不能提供C++庫中sort()函數(shù)的性能保證。

這個函數(shù)的C版本代碼行數(shù)要多一些,需要手工完成的任務(wù)也要多一些,因此犯錯的幾率也要大一些。

我喜歡C++版本的最后一個原因是,它同樣適合其它類型,如插入和提取運(yùn)算符類型、比較運(yùn)算符,都可以使用同樣的代碼,只需要變一個聲明。將實(shí)現(xiàn)同樣的事情的代碼轉(zhuǎn)換成一個函數(shù)模板,這樣就可以在以后直接拿來使用了。

我一些最好的朋友是C程序員

那么我偏愛C++版本就能說明我是一個語言偏執(zhí)的人嗎?

我認(rèn)為不能如此下結(jié)論,首先,我認(rèn)為這個程序的C版本也有一些不錯的優(yōu)點(diǎn):

● 你可以使用POSIX系統(tǒng)調(diào)用編寫這個程序,除了內(nèi)存分配和排序。

●這個程序的C版本因?yàn)槭褂昧说讓覫/O,速度將會更快,C++ iostreams在任何時候都表現(xiàn)良好,但它們的分層方法在談到效率時總是處于不利地位。

因此,對于這樣一個程序,語言的選擇最終歸結(jié)為背景,如果你相信80/20規(guī)則,并且它不是程序的核心部分,你可能認(rèn)為這個代碼應(yīng)該用C++編寫。代碼行數(shù)越少,犯錯的幾率就越低,效率可能不是最大的問題。

如果這是一段很關(guān)鍵的經(jīng)常執(zhí)行的代碼,你可能會認(rèn)為C是最佳選擇。如果選擇C,請一定要花點(diǎn)額外的時間進(jìn)行代碼評審,確保沒有內(nèi)存泄露和指針錯誤,只有那樣,你才上路了。

撫平Linus的情緒

那么Linus看到上面的代碼是如何炮轟的呢?我斗膽猜一下,任何像樣的C++程序員都會寫出類似的代碼。Linus說:

“你一定使用了這種語言“好的”庫功能,如STL和Boost,它們對你的程序可能有幫助,但當(dāng)它們不工作時,會引起無盡的痛苦”。

在這個程序中,我好好利用了曾是STL一部分的標(biāo)準(zhǔn)庫組件,它們作為標(biāo)準(zhǔn)的一部分已經(jīng)有十多年的歷史。它們的表現(xiàn)真的很好,在我所知道的任何編譯器中,也沒有可移植性或正確性問題。

“你會發(fā)現(xiàn)某些抽象編程模型不是很有效,但現(xiàn)在你所有的代碼都依賴于所有圍繞它的好對象模型。如果不重寫你的應(yīng)用程序,那么你是無法修復(fù)它的。”

的確,盡管C++不能為我做這些事,我只有設(shè)法自己編寫程序,不使用任何抽象——沒有新的類,沒有接口,基本上完全是靠C代碼完成許多有用的類的。

但我認(rèn)為這是規(guī)則而不是例外。

“換句話說,只有這樣才能做得好,效率高,系統(tǒng)級和可移植的C++最終會限制自己,但這一切在C中都是可行的。”

除非C有容器類,字符串類,類型安全I(xiàn)/O,以及RAII這樣的技術(shù),這句話才會變成真的。現(xiàn)在來看,它完全是胡說。

在現(xiàn)代C++可用之前,我可能會堅(jiān)持使用一個簡單的管道來完成這個任務(wù):

tr [:blank:] '\n' | grep -v "^$" | sort | uniq -c

事實(shí)上,我可以在編譯語言中做同樣的事。只要它們能給我一些靈活性,我想我不用成為一個偏執(zhí)狂就能明白這個事實(shí)。你對此又是怎樣看的?

作者簡介:Mark Nelson,現(xiàn)任思科公司工程師,《The Data Compression Book》的作者,《Developing Cisco IP Phone Services: A Cisco AVVID Solution》的協(xié)作者。


本文出自:億恩科技【www.czbl888.cn】

服務(wù)器租用/服務(wù)器托管中國五強(qiáng)!虛擬主機(jī)域名注冊頂級提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM]

  • 您可能在找
  • 億恩北京公司:
  • 經(jīng)營性ICP/ISP證:京B2-20150015
  • 億恩鄭州公司:
  • 經(jīng)營性ICP/ISP/IDC證:豫B1.B2-20060070
  • 億恩南昌公司:
  • 經(jīng)營性ICP/ISP證:贛B2-20080012
  • 服務(wù)器/云主機(jī) 24小時售后服務(wù)電話:0371-60135900
  • 虛擬主機(jī)/智能建站 24小時售后服務(wù)電話:0371-60135900
  • 專注服務(wù)器托管17年
    掃掃關(guān)注-微信公眾號
    0371-60135900
    Copyright© 1999-2019 ENKJ All Rights Reserved 億恩科技 版權(quán)所有  地址:鄭州市高新區(qū)翠竹街1號總部企業(yè)基地億恩大廈  法律顧問:河南亞太人律師事務(wù)所郝建鋒、杜慧月律師   京公網(wǎng)安備41019702002023號
      0
     
     
     
     

    0371-60135900
    7*24小時客服服務(wù)熱線

     
     
    国产精品久久久久久久久久久新郎_91久久精品国产_国内精品久久久久久_欧美激情第一页在线观看_国产欧美日韩丝袜精品一区_日韩精品成人一区二区在线观看_国产精品v片在线观看不卡_91精品国产综合久久香蕉最新版 _国产精品亚洲激情_色综合男人天堂
    在线观看av免费观看| 天天看片天天操| 在线免费看v片| 欧美激情成人网| 国产美女主播在线播放| 欧美美女黄色网| 日本精品福利视频| japanese在线播放| 亚洲色图都市激情| 日本xxxxx18| 成人黄色片免费| 日本男女交配视频| 日本xxxxxxx免费视频| 国产精品又粗又长| 91免费黄视频| 国产淫片免费看| 漂亮人妻被中出中文字幕| 亚洲精品无码久久久久久| 91免费视频网站在线观看| 国产美女三级视频| 国产自偷自偷免费一区| 日韩不卡一二三| 99九九精品视频| 久久精品久久99| 日日噜噜夜夜狠狠久久丁香五月| 777久久精品一区二区三区无码 | 日韩av片在线看| 能在线观看的av| 国产精彩免费视频| 一道本在线免费视频| 亚洲男人天堂2021| 免费日韩在线观看| 欧美亚洲精品一区二区| 99视频免费播放| 污视频网址在线观看| 男插女免费视频| 黄色一级片在线看| 妞干网在线免费视频| 97超碰成人在线| 日本高清视频免费在线观看| 国产96在线 | 亚洲| 91蝌蚪视频在线观看| 欧美日韩理论片| 国产精品一线二线三线| 国产欧美高清在线| 99精品999| 日韩xxxx视频| 手机在线免费观看毛片| 在线观看18视频网站| 欧美一区二区三区爽大粗免费| 啊啊啊国产视频| 婷婷视频在线播放| 啊啊啊一区二区| 福利视频999| 亚洲中文字幕无码av永久| 能在线观看的av网站| 亚洲国产精品女人| 国产91在线亚洲| 内射国产内射夫妻免费频道| 玖玖爱视频在线| 国产精品一线二线三线| 999在线观看| 免费 成 人 黄 色| 交换做爰国语对白| 日韩久久一级片| 美女在线免费视频| 五月婷婷狠狠操| 97久久国产亚洲精品超碰热| www.99av.com| 一本久道高清无码视频| 亚洲男人天堂av在线| 国产精品无码av在线播放| 想看黄色一级片| 成人免费观看视频在线观看| 日本a级片在线观看| 天天干天天综合| 国产深夜男女无套内射| 浴室偷拍美女洗澡456在线| www.色偷偷.com| 777av视频| 一道本在线观看视频| 美女网站色免费| 亚洲 高清 成人 动漫| 黄色成人在线免费观看| 亚洲无在线观看| 美女一区二区三区视频| 精品久久久久久久久久中文字幕| 色偷偷中文字幕| 美女喷白浆视频| 日日碰狠狠添天天爽超碰97| 伊人再见免费在线观看高清版| 男生操女生视频在线观看| 可以免费观看av毛片| 国产午夜大地久久| 91成人综合网| 国产一级黄色录像片| 九一精品久久久| 中文字幕av专区| 91av俱乐部| 青青草原av在线播放| 久在线观看视频| 欧美乱大交xxxxx潮喷l头像| 日本成人在线不卡| 国产在线无码精品| 红桃一区二区三区| 日韩精品福利片午夜免费观看| 午夜视频在线网站| 韩国日本在线视频| 国产一区 在线播放| 992tv快乐视频| 91精品国产吴梦梦| 99精品视频网站| 亚洲av毛片在线观看| 北条麻妃在线一区| 男人天堂手机在线视频| 大桥未久一区二区三区| 日韩精品在线播放视频| 热久久久久久久久| 不卡的在线视频| 91日韩精品视频| 欧美视频国产视频| www.桃色.com| 亚洲欧美日韩不卡| 性做爰过程免费播放| 男同互操gay射视频在线看| 日韩人妻精品一区二区三区| 精品一区二区成人免费视频| 亚洲一区二区图片| 99re8这里只有精品| 路边理发店露脸熟妇泻火| 69精品丰满人妻无码视频a片| ijzzijzzij亚洲大全| 蜜桃网站在线观看| 日韩国产小视频| 蜜臀av无码一区二区三区| 青青草视频在线免费播放| 尤物av无码色av无码| 无码人妻丰满熟妇区毛片18| 男人亚洲天堂网| 久久99999| 网站在线你懂的| 免费成人深夜夜行网站视频| 视色,视色影院,视色影库,视色网| 国产精品一二三在线观看| 久久人人爽人人爽人人av| 欧美日韩在线中文| 久久撸在线视频| 日韩第一页在线观看| 日本a级片在线播放| 欧美爱爱视频免费看| japanese在线播放| wwwwwxxxx日本| 伊人国产精品视频| 欧美 国产 精品| 免费不卡av在线| 国产又大又长又粗又黄| 奇米777四色影视在线看| 成人在线观看你懂的| 麻豆传传媒久久久爱| 亚洲综合伊人久久| 欧美黑人在线观看| 免费看日本黄色| 欧美视频在线观看网站| 能在线观看的av网站| 北条麻妃亚洲一区| 黄色网页免费在线观看| 777一区二区| 中文字幕日韩精品无码内射| 日韩视频第二页| 亚洲制服中文字幕| 黄色一级片在线看| 天堂在线中文在线| 男女私大尺度视频| 亚洲a级黄色片| 成年人午夜免费视频| 日本中文字幕精品—区二区| 男人插女人视频在线观看| 色一情一区二区| 国产免费观看高清视频| 亚洲午夜精品一区| 亚洲自偷自拍熟女另类| 亚洲制服中文字幕| 国产中文字幕在线免费观看| 久久出品必属精品| 欧美激情成人网| www.日本三级| 特级西西444www| 久久久久久久久久久久久国产精品 | 少妇一级淫免费放| 激情五月宗合网| 99re99热| 中文字幕在线观看第三页| 亚洲色欲久久久综合网东京热| 国产色视频在线播放| 99精品人妻少妇一区二区| 青少年xxxxx性开放hg| 天美星空大象mv在线观看视频| 91动漫在线看| 性鲍视频在线观看| 日本三级黄色网址|