• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            c++之父之一席之談(也許是笑話,但不要僅僅當(dāng)成笑話)

            在1998年的元旦,Bjarne Stroustrup(C++之父)接受了IEEE《計(jì)算機(jī)》雜志記者的專(zhuān)訪。編輯很自然的認(rèn)為他會(huì)對(duì)于過(guò)去七年來(lái)使用他創(chuàng)建的語(yǔ)言進(jìn)行面對(duì)對(duì)象設(shè)計(jì)做一個(gè)歷史性的回顧。而在這個(gè)專(zhuān)訪中,記者獲得了更有價(jià)值的新聞,但是最后編輯決定為了整個(gè)IT產(chǎn)業(yè),這個(gè)稿子不能發(fā)表,但是就像其它被砍掉的新聞,往往還是弄得路人皆知的。
            這一篇適當(dāng)時(shí)專(zhuān)訪的完全拷貝,沒(méi)有被編輯、刪改或者做過(guò)什么潤(rùn)色處理,也沒(méi)有發(fā)布過(guò),可能看起來(lái)不像常見(jiàn)的雜志文章,但這是實(shí)情。

            你會(huì)發(fā)現(xiàn)真正引人入勝的地方... ...

            記者: 您在幾年前你改變了軟件設(shè)計(jì)世界的面貌,現(xiàn)在再回首往事您有什么感想?

            Stroustrup: 事實(shí)上我在你到來(lái)之前的這些天里一直在考慮這件事,你還記得幾乎所有的人都在寫(xiě) C程序那會(huì)兒?jiǎn)幔柯闊┑氖沁@些人寫(xiě)得太好了,而且那些個(gè)大學(xué)也都在努力的傳授 C編程技術(shù)。的確他們是十分的成功——我要特別的指出"成功"這個(gè)詞——因?yàn)檫@種顯著的 C程序員的培養(yǎng)效率,這就是產(chǎn)生問(wèn)題的原因。

            記者: 這難道是個(gè)問(wèn)題嗎?

            Stroustrup: 當(dāng)然,你記得大家都在用Cobol語(yǔ)言寫(xiě)程序的時(shí)候嗎?

            記者: 哦,當(dāng)然,當(dāng)時(shí)我也一樣。

            Stroustrup: 在一開(kāi)始的時(shí)候,這些人簡(jiǎn)直象半個(gè)上帝似的拿著高工資,享受著貴族一樣的待遇。

            記者: 唉,那些日子多么的讓人懷念,是吧?

            Stroustrup: 當(dāng)然了。但是接著發(fā)生了什么?IBM覺(jué)得這樣不舒服,就投資了數(shù)百萬(wàn)來(lái)培養(yǎng)程序員,直到程序員多得一毛錢(qián)就可以雇一打。

            記者: 這就是為什么當(dāng)時(shí)我撤出來(lái)了,工資在一年里就降到人們?cè)谡f(shuō)做個(gè)記者都比程序員強(qiáng)的地步。

            Stroustrup: 對(duì)啦!那時(shí)侯相同的事情發(fā)生在了C程序員身上了。

            記者: 這個(gè)我明白了,可是您要說(shuō)的是......

            Stroustrup: 有一天,我坐在辦公室里就在想如何能把這件事挽回一些。我想知道如果有一種特別復(fù)雜而且難以學(xué)會(huì)的語(yǔ)言,是否就沒(méi)有人可以又把程序員們搞到市場(chǎng)的泥潭里去呢?我用了從X10里了解到的東西,,噢,就是X-Windows,真是一個(gè)該死的圖形系統(tǒng),只能運(yùn)行在那些個(gè)SUN 3/60的機(jī)器里,哈!它具有所有我想要的特征:可笑而復(fù)雜的語(yǔ)法,含混的功能描述,還有偽裝的OO結(jié)構(gòu),就算是在現(xiàn)在,還是沒(méi)有人愿意用那些東西,如果你不想發(fā)瘋的話,Motif才是唯一解決方案。

            記者: 你是在開(kāi)玩笑嗎?

            Stroustrup: 沒(méi)有,事實(shí)上還有另外的一個(gè)問(wèn)題,UNIX是用C寫(xiě)的,就是說(shuō)任何一個(gè)C程序員都可以很容易的成為系統(tǒng)程序的開(kāi)發(fā)者。還記得一個(gè)大型的主機(jī)系統(tǒng)應(yīng)用的開(kāi)發(fā)者通常能掙多少錢(qián)嗎?

            記者: 你肯定是知道我當(dāng)時(shí)就是干這個(gè)的。

            Stroustrup: 好吧,因此這個(gè)新的語(yǔ)言一定要通過(guò)隱藏所有的系統(tǒng)調(diào)用來(lái)和UNIX分離開(kāi)來(lái),這樣可以使那些個(gè)就只是知道DOS的人也可以活得很體面。

            記者: 我不大相信您說(shuō)的這個(gè)......

            Stroustrup: 而且到現(xiàn)在時(shí)間也夠長(zhǎng)的了,我相信有很多的人已經(jīng)指出了C++是對(duì)時(shí)間的浪費(fèi),我要說(shuō)的是,這個(gè)過(guò)程比我想象的要長(zhǎng)的多了。

            記者: 那么您又是如何做到的呢?

            Stroustrup: 那只是一個(gè)玩笑,我真的沒(méi)有想到人們會(huì)對(duì)那本書(shū)那么認(rèn)真。任何人只要長(zhǎng)了半個(gè)大腦也應(yīng)該明白面對(duì)對(duì)象編程是荒謬而不合邏輯的,而且效率低下。

            記者: 什么?

            Stroustrup: 再說(shuō)代碼重用,你什么時(shí)候聽(tīng)說(shuō)過(guò)有公司重用他的代碼?

            記者: 事實(shí)上從來(lái)沒(méi)有,但是......

            Stroustrup: 那么我提醒你一下,在早期有很多的例子。哦,有一家叫Menter Graphics的俄勒岡州公司,我認(rèn)為他們應(yīng)該是感冒了,竟然在90年或者是91年把所有的代碼用C++重寫(xiě)了一遍,對(duì)不起,我實(shí)在是想不起確切的時(shí)間了,我看大家應(yīng)該從這個(gè)事件中吸取教訓(xùn)。

            記者: 沒(méi)有人真正的吸取了教訓(xùn)嗎?

            Stroustrup:

            沒(méi)有,而且還有很多公司犯同樣的錯(cuò)誤,還向他們的股東解釋說(shuō)那3億美圓的損失是正常的,他們就是做了這樣的事情。

            記者: 真的?可是這也只能證明OO方法是能夠工作的,不是嗎?

            Stroustrup: 也許吧,執(zhí)行文件是那么大,在一臺(tái)有128M內(nèi)存的HP工作站上只是裝載到內(nèi)存中就要用5分鐘時(shí)間,然后將象毛毛蟲(chóng)爬樹(shù)一樣的運(yùn)行。事實(shí)上我在第一個(gè)禮拜就發(fā)現(xiàn)了這個(gè)缺點(diǎn),奇怪的是好象沒(méi)人在乎這個(gè),Sun和HP好象只在乎買(mǎi)出那些功能強(qiáng)大的各種玩意兒,而不在乎在上面跑什么程序。在AT&.T的時(shí)候我編了一個(gè)"Hello World"程序,簡(jiǎn)直是難以置信,執(zhí)行文件有2.1M。

            記者: 那么大?是啊,就是從那時(shí)候開(kāi)始的編譯程序產(chǎn)生大個(gè)的文件的。

            Stroustrup: 就是這個(gè)樣子,如果你不信的話,可以用最新版的g++試一下,你得到的東西不會(huì)小于0.5M,而且就在最近也有一些在各個(gè)國(guó)家的例子,比如在British Telecom公司發(fā)生的災(zāi)難,但是幸運(yùn)的是他們把原來(lái)的計(jì)劃廢棄了,又重新開(kāi)始,他們就比Australian Telecom公司幸運(yùn),現(xiàn)在我又聽(tīng)說(shuō)Siemens公司又在造"恐龍"了,他們目前是越來(lái)越擔(dān)心要用來(lái)加速執(zhí)行軟件所要使用的昂貴的高速硬件,難道你真的認(rèn)為那些個(gè)多態(tài)繼承是一種樂(lè)趣嗎?

            記者: 噢,但是C++的確是一種可靠的語(yǔ)言啊!

            Stroustrup: 你是真的相信的,對(duì)吧?你有沒(méi)有真的坐下來(lái)用C++開(kāi)發(fā)過(guò)項(xiàng)目?我來(lái)告訴你會(huì)發(fā)生什么:首先,我會(huì)加入足夠的缺陷來(lái)讓那些微不足道的模塊先執(zhí)行,讓工作超載,在工程掃尾的階段,你回發(fā)現(xiàn)幾乎所有的模塊都會(huì)有這種缺陷,這是因?yàn)槿藗円詾榫褪菓?yīng)該這樣做,因?yàn)樵贑++的教程中就是這樣寫(xiě)的。在相同的模塊中執(zhí)行不同對(duì)象的相似操作意味著:有一些東西在各個(gè)模塊中是完全不相同的。當(dāng)你有了互不相同的上百個(gè)這樣的模塊,就可以把他們集成在一起了。其次,我再說(shuō)說(shuō)所謂的數(shù)據(jù)隱藏,上帝啊,當(dāng)我聽(tīng)說(shuō)了有的小組實(shí)現(xiàn)了什么對(duì)象協(xié)同通信,我真的是憋不住想笑!我看,OO方法中的"協(xié)同"這個(gè)詞可以把項(xiàng)目經(jīng)理的肋條累斷。

            記者: 我不得不說(shuō)著太可怕了!你還說(shuō)這是用來(lái)提高程序員的工資,這太齷齪了!

            Stroustrup: 齷齪?不是這樣的,任何人都有選擇的權(quán)利。我是并不想讓事情發(fā)展成這個(gè)樣兒的。不管怎么說(shuō),我基本上還是成功的。C++現(xiàn)在已經(jīng)不行了不是?而且程序員現(xiàn)在還是能掙到高工資的——特別是那些還要維護(hù)這些該死的"++"東西的那些程序員。你應(yīng)該明白如果你去維護(hù)一個(gè)不是由你開(kāi)發(fā)的C++模塊是不可能的。

            記者: 怎么會(huì)這樣的?

            Stroustrup: 你糊涂了?還記得typedef嗎?

            記者: 噢,當(dāng)然。

            Stroustrup: 知道要在頭文件里發(fā)現(xiàn)象'RoofRaised'這樣的變量是一個(gè)雙精度數(shù)要用多長(zhǎng)的時(shí)間嗎?想象一下要在一個(gè)工程里所有的類(lèi)定義里尋找那些typedefs
            ... ...
            ... ...

            記者: 那么你為什么認(rèn)定你已經(jīng)成功了呢?

            Stroustrup: 還記得一般一個(gè)C程序項(xiàng)目要多長(zhǎng)時(shí)間嗎?一般是6個(gè)月。這對(duì)于一個(gè)要養(yǎng)活妻子孩子的程序員是不夠的。如果是一樣的項(xiàng)目,但是用C++來(lái)開(kāi)發(fā),會(huì)怎么樣呢?我告訴你:要一兩年才能做完!這不好嗎?就是一個(gè)小小的編程語(yǔ)言選擇的決定,語(yǔ)言程序員就不會(huì)輕易的下崗了不是?而且那些個(gè)大學(xué)已經(jīng)很久沒(méi)有傳授C了,現(xiàn)在是對(duì)C程序員的短缺。特別是對(duì)UNIX編程熟悉的程序員。在使用了這么多年的"new"以后,而且一直以來(lái)一直都不用擔(dān)心返回值的問(wèn)題。還有多少程序員知道使用"malloc"?事實(shí)上,大多數(shù)的C++程序員舍棄了返回值,無(wú)論什么樣的結(jié)果,甚至于返回了"-1",其實(shí)用不著什么'throw'、'catch'、'try'之類(lèi)的東西,至少你應(yīng)該知道產(chǎn)生了錯(cuò)誤。

            記者: 但是繼承的確不是可以節(jié)省很多時(shí)間的嗎?

            Stroustrup: 是嗎?你注意過(guò)C項(xiàng)目計(jì)劃和C++的項(xiàng)目計(jì)劃之間的不同嗎?在進(jìn)行了三次系統(tǒng)功能分解后,要確定所有的東西都可被繼承到,如果沒(méi)有那么說(shuō)明還是有錯(cuò),但是有誰(shuí)在C編程里聽(tīng)說(shuō)過(guò)存儲(chǔ)滲漏這個(gè)說(shuō)法?現(xiàn)在你可以在業(yè)界的大廠商的產(chǎn)品中發(fā)現(xiàn)了!有很多的公司不得不放棄了,并且把工程轉(zhuǎn)包出去,他們知道最后可能象篩沙子似的把內(nèi)存站用完,他們才不想遭那份罪呢!

            記者: 也有一些工具來(lái)......

            Stroustrup: 大多數(shù)的防滲漏的工具不還是用C++寫(xiě)的。

            記者: 果把這些東西發(fā)表了,我們可能在這個(gè)行業(yè)里無(wú)法立足了,你知道嗎?
            Stroustrup: 我不相信,就象我所說(shuō)的,現(xiàn)在C++已經(jīng)是在垂死掙扎了。任何公司只要清醒,就會(huì)認(rèn)識(shí)到用C++來(lái)做項(xiàng)目簡(jiǎn)直是一場(chǎng)災(zāi)難。如果還沒(méi)認(rèn)識(shí)到這些,那就是活該!有一段時(shí)間我使勁的勸Dennis Ritchie用C++重寫(xiě)UNIX。

            記者: 啊?天哪!他是怎么說(shuō)的?

            Stroustrup: 我不得不承認(rèn)他的洞察力,我想他和Brian在很早的時(shí)候就清楚的明白了我的意圖,但是從來(lái)沒(méi)有說(shuō)出來(lái),他說(shuō)如果我愿意的話,他可以幫我用C++寫(xiě)
            個(gè)DOS。

            記者: 那么你寫(xiě)了嗎?

            Stroustrup: 事實(shí)上,我寫(xiě)了,我完成后可以給你一個(gè)DEMO,我在機(jī)房里的一臺(tái)4個(gè)CPU的Sparc 20上做的,運(yùn)行得特別的快,而且只占了70M的硬盤(pán)空間。

            記者: 有For PC的版本嗎?

            Stroustrup: 現(xiàn)在你在開(kāi)玩笑了,難道你沒(méi)見(jiàn)過(guò)Windows 95嗎?我認(rèn)為它是我成功標(biāo)志之一,

            記者: 我也總是在想關(guān)于Unix++,還是有人在試著搞這么個(gè)東西的。

            Stroustrup: 那是因?yàn)樗麄冞€沒(méi)有看到這個(gè)采訪手跡。

            記者: 對(duì)不起,不過(guò)依我看,我們恐怕不會(huì)刊發(fā)這些東西的。

            Stroustrup: 但是這是個(gè)世紀(jì)故事,我只是想讓我的程序員伙伴們記住我為他們做了什么,你知道這些個(gè)日子里C++程序員可以掙多少錢(qián)嗎?

            記者: 我所聽(tīng)說(shuō)的是一個(gè)頂尖的C++程序員一小時(shí)可以掙到70~80美圓。
            Stroustrup: 知道了吧!而且我打賭他肯定可以掙那么多!!單步跟蹤我放在C++里面的那些gotcha,并不是容易的事了。在在項(xiàng)目中使用C++的所有特性即使是有經(jīng)驗(yàn)的程序員也會(huì)感到困惑. 事實(shí)上有時(shí)侯我也是覺(jué)得挺難受的,雖然這個(gè)特性是為我的初衷而做的,我?guī)缀跸矚g上了這個(gè)語(yǔ)言。
            記者: 你的意思是說(shuō)你以前是不喜歡的?

            Stroustrup: 我是狠它的!難道你不同意它是挺笨重的嗎?但是當(dāng)那本書(shū)的版稅源源不斷的...... 我想你能夠明白這些。

            記者: 等一下,關(guān)于參數(shù)的定義,請(qǐng)您一定要回答,您是否真的改良了C的指針。
            Stroustrup: 呵,我也是總是想知道這個(gè)。一開(kāi)始我認(rèn)為我做了,但是有一天我和一個(gè)剛開(kāi)始學(xué)習(xí) C++的程序員討論了這個(gè)問(wèn)題。他說(shuō):"他從來(lái)就不知道他的變量是否被引用了,所以我還是在使用指針,那個(gè)星號(hào)總是在提醒我。"
            記者: OK,一般在這個(gè)時(shí)候我一般是說(shuō):"Thank you very much.",但是現(xiàn)在用在這里好象還是不夠。

            Stroustrup: 答應(yīng)我一定要發(fā)表。

            記者: 好的,我會(huì)通知您的,但是我已經(jīng)知道了我的編輯會(huì)說(shuō)什么了。

            Stroustrup: 誰(shuí)會(huì)相信呢?你能把這盤(pán)錄音帶給我拷一個(gè)嗎?

            記者: 可以。
            正文完

            posted on 2009-11-01 14:08 Randy 閱讀(577) 評(píng)論(2)  編輯 收藏 引用

            評(píng)論

            # re: c++之父之一席之談(也許是笑話,但不要僅僅當(dāng)成笑話) 2010-01-28 12:37 LISA29

            A lot students give the duty to qualified resume writers because they miss the skill to write a satisfactory resume thats the cause why people
            need to <a href="http://www.prime-resume.com">professional resume service</a>, but such guys like writer don't do that. Thanks a lot for the topic. A kind of good knowledge about this post.  回復(fù)  更多評(píng)論   

            # re: c++之父之一席之談(也許是笑話,但不要僅僅當(dāng)成笑話)[未登錄](méi) 2014-09-27 10:11 哈哈

            可以再無(wú)知一點(diǎn)么  回復(fù)  更多評(píng)論   


            只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


            <2012年12月>
            2526272829301
            2345678
            9101112131415
            16171819202122
            23242526272829
            303112345

            導(dǎo)航

            統(tǒng)計(jì)

            常用鏈接

            留言簿(3)

            隨筆檔案

            搜索

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            久久综合国产乱子伦精品免费| 偷偷做久久久久网站| 国产欧美久久久精品| 嫩草影院久久国产精品| 久久精品国产一区二区三区不卡| 欧美国产成人久久精品| 国产毛片欧美毛片久久久| 久久免费精品视频| 国产精品久久久久久久久久影院| 久久久久亚洲av无码专区| 99热都是精品久久久久久| 精品久久人人爽天天玩人人妻| 精品久久久久久国产潘金莲| 久久这里只精品99re66| 精品午夜久久福利大片| 97久久国产综合精品女不卡| 精品久久久无码中文字幕天天| 久久精品国产第一区二区三区| 午夜精品久久久久久| 久久国产精品-久久精品| 久久这里只有精品18| 久久亚洲国产最新网站| 国产一区二区三精品久久久无广告| 久久亚洲精品无码AV红樱桃| 2021国产精品久久精品| 久久精品中文字幕有码| 久久青草国产手机看片福利盒子 | 四虎国产永久免费久久| 99蜜桃臀久久久欧美精品网站| 久久精品人妻一区二区三区| 国产精品青草久久久久婷婷| 久久婷婷国产综合精品 | 91久久婷婷国产综合精品青草| 思思久久99热只有频精品66| 亚洲国产成人久久精品99 | 久久久久久综合一区中文字幕| 久久久久久国产精品免费无码 | 狠狠色丁香久久婷婷综合蜜芽五月| 94久久国产乱子伦精品免费| 久久综合九色综合久99| 久久精品成人免费国产片小草|