線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:848
推到 Plurk!
推到 Facebook!

c++之父專訪

 
kynix
初階會員


發表:37
回覆:100
積分:37
註冊:2002-06-01

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-08-09 14:39:04 IP:61.216.xxx.xxx 未訂閱
"I Did It For You All..." 作者:佚名 翻譯整理:pigprince 註:本文除譯者的話以外,純屬虎濫,如有雷同,純屬巧合 --------------------------------------------------------------------- 譯者的話:沒什麼,玩笑就是玩笑,笑話就是笑話! 禮甯搢鴞b一些網站上有這篇文章的大討論,我個人的看法真的是很無聊的, 看一篇文章要先評估一下,然後再接受他的觀點。就是所謂的批判的接受,這個 才是學習的真正的態度。C 是十分的偉大的,是無須置疑的。 鮪語言的牛B的地方就是提供了一個對計算機的最小抽像,提供了計算、存儲、 流程等東西,而計算機就是這個樣子的,他也只是這個樣子。C 就是在C語言上 加一個OO的外殼,我就是這個樣子理解的。這就夠了。 礎靬馧o個文章,不要太當真,就是一玩笑。 --------------------------------------------------------------------- 在1998年的元旦,Bjarne Stroustrup(C 之父)接受了IEEE《計算機》雜誌記者的專訪。 編輯很自然的認為他會對於過去七年來使用他創建的語言進行面對對像設計做一個歷史性的回顧。 而在這個專訪中,記者獲得了更有價值的新聞,但是最後編輯決定為了整個IT產業,這個稿子不能發表,但是就像其它被砍掉的新聞,往往還是弄得路人皆知的。 這一篇適當時專訪的完全拷貝,沒有被編輯、刪改或者做過什麼潤色處理,也沒有發佈過,可能看起來不像常見的雜誌文章,但這是實情。 你會發現真正引人入勝的地方... ... 記者: 您在幾年前你改變了軟件設計世界的面貌,現在再回首往事您有什麼感想? Stroustrup: 事實上我在你到來之前的這些天裡一直在考慮這件事,你還記得幾乎所有的人都在寫 C程序那會兒嗎?麻煩的是這些人寫得太好了,而且那些個大學也都在努力的傳授 C編程技術。的確他們是十分的成功——我要特別的指出「成功」這個詞——因為這種顯著的 C程序員的培養效率,這就是產生問題的原因。 記者: 這難道是個問題嗎? Stroustrup: 當然,你記得大家都在用Cobol語言寫程序的時候嗎? 記者: 哦,當然,當時我也一樣。 Stroustrup: 在一開始的時候,這些人簡直象半個上帝似的拿著高工資,享受著貴族一樣的待遇。 記者: 唉,那些日子多麼的讓人懷念,是吧? Stroustrup: 當然了。但是接著發生了什麼?IBM覺得這樣不舒服,就投資了數百萬來培養程序員,直到程序員多得一毛錢就可以雇一打。 記者: 這就是為什麼當時我撤出來了,工資在一年裡就降到人們在說做個記者都比程序員強的地步。 Stroustrup: 對啦!那時侯相同的事情發生在了C程序員身上了。 記者: 這個我明白了,可是您要說的是…… Stroustrup: 有一天,我坐在辦公室裡就在想如何能把這件事挽回一些。我想知道如果有一種特別複雜而且難以學會的語言,是否就沒有人可以又把程序員們搞到市場的泥潭裡去呢?我用了從X10里瞭解到的東西,,噢,就是X-Windows,真是一個該死的圖形系統,只能運行在那些個SUN 3/60的機器裡,哈!它具有所有我想要的特徵:可笑而複雜的語法,含混的功能描述,還有偽裝的OO結構,就算是在現在,還是沒有人願意用那些東西,如果你不想發瘋的話,Motif才是唯一解決方案。 記者: 你是在開玩笑嗎? Stroustrup: 沒有,事實上還有另外的一個問題,UNIX是用C寫的,就是說任何一個C 程序員都可以很容易的成為系統程序的開發者。還記得一個大型的主機系統應用的開發者通常能掙多少錢嗎? 記者: 你肯定是知道我當時就是幹這個的。 Stroustrup: 好吧,因此這個新的語言一定要通過隱藏所有的系統調用來和UNIX分離開來,這樣可以使那些個就只是知道DOS的人也可以活得很體面。 記者: 我不大相信您說的這個…… Stroustrup: 而且到現在時間也夠長的了,我相信有很多的人已經指出了C 是對時間的浪費,我要說的是,這個過程比我想像的要長的多了。 記者: 那麼您又是如何做到的呢? Stroustrup: 那只是一個玩笑,我真的沒有想到人們會對那本書那麼認真。任何人只要長了半個大腦也應該明白面對對像編程是荒謬而不合邏輯的,而且效率低下。 記者: 什麼? Stroustrup: 再說代碼重用,你什麼時候聽說過有公司重用他的代碼? 記者: 事實上從來沒有,但是…… Stroustrup: 那麼我提醒你一下,在早期有很多的例子。哦,有一家叫Menter Graphics的俄勒岡州公司,我認為他們應該是感冒了,竟然在90年或者是91年把所有的代碼用C 重寫了一遍,對不起,我實在是想不起確切的時間了,我看大家應該從這個事件中吸取教訓。 記者: 沒有人真正的吸取了教訓嗎? Stroustrup: 沒有,而且還有很多公司犯同樣的錯誤,還向他們的股東解釋說那3億美圓的損失是正常的,他們就是做了這樣的事情。 記者: 真的?可是這也只能證明OO方法是能夠工作的,不是嗎? Stroustrup: 也許吧,執行文件是那麼大,在一台有128M內存的HP工作站上只是裝載到內存中就要用5分鐘時間,然後將象毛毛蟲爬樹一樣的運行。事實上我在第一個禮拜就發現了這個缺點,奇怪的是好像沒人在乎這個,Sun和HP好像只在乎買出那些功能強大的各種玩意兒,而不在乎在上面跑什麼程序。在AT&.T的時候我編了一個「Hello World」程序,簡直是難以置信,執行文件有2.1M。 記者: 那麼大?是啊,就是從那時候開始的編譯程序產生大個的文件的。 Stroustrup: 就是這個樣子,如果你不信的話,可以用最新版的g 試一下,你得到的東西不會小於0.5M,而且就在最近也有一些在各個國家的例子,比如在British Telecom公司發生的災難,但是幸運的是他們把原來的計劃廢棄了,又重新開始,他們就比Australian Telecom公司幸運,現在我又聽說Siemens公司又在造「恐龍」了,他們目前是越來越擔心要用來加速執行軟件所要使用的昂貴的高速硬件,難道你真的認為那些個多態繼承是一種樂趣嗎? 記者: 噢,但是C 的確是一種可靠的語言啊! Stroustrup: 你是真的相信的,對吧?你有沒有真的坐下來用C 開發過項目?我來告訴你會發生什麼:首先,我會加入足夠的缺陷來讓那些微不足道的模塊先執行,讓工作超載,在工程掃尾的階段,你回發現幾乎所有的模塊都會有這種缺陷,這是因為人們以為就是應該這樣做,因為在C 的教程中就是這樣寫的。在相同的模塊中執行不同對象的相似操作意味著:有一些東西在各個模塊中是完全不相同的。當你有了互不相同的上百個這樣的模塊,就可以把他們集成在一起了。其次,我再說說所謂的數據隱藏,上帝啊,當我聽說了有的小組實現了什麼對像協同通信,我真的是憋不住想笑!我看,OO方法中的「協同」這個詞可以把項目經理的肋條累斷。 記者: 我不得不說著太可怕了!你還說這是用來提高程序員的工資,這太齷齪了! Stroustrup: 齷齪?不是這樣的,任何人都有選擇的權利。我是並不想讓事情發展成這個樣兒的。不管怎麼說,我基本上還是成功的。C 現在已經不行了不是?而且程序員現在還是能掙到高工資的——特別是那些還要維護這些該死的「 」東西的那些程序員。你應該明白如果你去維護一個不是由你開發的C 模塊是不可能的。 記者: 怎麼會這樣的? Stroustrup: 你糊塗了?還記得typedef嗎? 記者: 噢,當然。 Stroustrup: 知道要在頭文件裡發現象'RoofRaised'這樣的變量是一個雙精度數要用多長的時間嗎?想像一下要在一個工程裡所有的類定義裡尋找那些typedefs... ... 記者: 那麼你為什麼認定你已經成功了呢? Stroustrup: 還記得一般一個C程序項目要多長時間嗎?一般是6個月。這對於一個要養活妻子孩子的程序員是不夠的。如果是一樣的項目,但是用C 來開發,會怎麼樣呢?我告訴你:要一兩年才能做完!這不好嗎?就是一個小小的編程語言選擇的決定,語言程序員就不會輕易的下崗了不是?而且那些個大學已經很久沒有傳授C了,現在是對C程序員的短缺。特別是對UNIX編程熟悉的程序員。在使用了這麼多年的「new」以後,而且一直以來一直都不用擔心返回值的問題。還有多少程序員知道使用「malloc」?事實上,大多數的C 程序員捨棄了返回值,無論什麼樣的結果,甚至於返回了「-1」,其實用不著什麼'throw'、'catch'、'try'之類的東西,至少你應該知道產生了錯誤。 記者: 但是繼承的確不是可以節省很多時間的嗎? Stroustrup: 是嗎?你注意過C項目計劃和C 的項目計劃之間的不同嗎?在進行了三次系統功能分解後,要確定所有的東西都可被繼承到,如果沒有那麼說明還是有錯,但是有誰在C編程裡聽說過存儲滲漏這個說法?現在你可以在業界的大廠商的產品中發現了!有很多的公司不得不放棄了,並且把工程轉包出去,他們知道最後可能像篩沙子似的把內存站用完,他們才不想遭那份罪呢! 記者: 也有一些工具來…… Stroustrup: 大多數的防滲漏的工具不還是用C 寫的。 記者: 果把這些東西發表了,我們可能在這個行業裡無法立足了,你知道嗎? Stroustrup: 我不相信,就像我所說的,現在C 已經是在垂死掙扎了。任何公司只要清醒,就會認識到用C 來做項目簡直是一場災難。如果還沒認識到這些,那就是活該!有一段時間我使勁的勸Dennis Ritchie用C 重寫UNIX。 記者: 啊?天哪!他是怎麼說的? Stroustrup: 我不得不承認他的洞察力,我想他和Brian在很早的時候就清楚的明白了我的意圖,但是從來沒有說出來,他說如果我願意的話,他可以幫我用C 寫個DOS。 記者: 那麼你寫了嗎? Stroustrup: 事實上,我寫了,我完成後可以給你一個DEMO,我在機房裡的一台4個CPU的Sparc 20上做的,運行得特別的快,而且只佔了70M的硬盤空間。 記者: 有For PC的版本嗎? Stroustrup: 現在你在開玩笑了,難道你沒見過Windows 95嗎?我認為它是我成功標誌之一, 記者: 我也總是在想關於Unix ,還是有人在試著搞這麼個東西的。 Stroustrup: 那是因為他們還沒有看到這個採訪手跡。 記者: 對不起,不過依我看,我們恐怕不會刊發這些東西的。 Stroustrup: 但是這是個世紀故事,我只是想讓我的程序員夥伴們記住我為他們做了什麼,你知道這些個日子裡C 程序員可以掙多少錢嗎? 記者: 我所聽說的是一個頂尖的C 程序員一小時可以掙到70~80美圓。 Stroustrup: 知道了吧!而且我打賭他肯定可以掙那麼多!!單步跟蹤我放在C 裡面的那些gotcha,並不是容易的事了。在在項目中使用C 的所有特性即使是有經驗的程序員也會感到困惑. 事實上有時侯我也是覺得挺難受的,雖然這個特性是為我的初衷而做的,我幾乎喜歡上了這個語言。 記者: 你的意思是說你以前是不喜歡的? Stroustrup: 我是狠它的!難道你不同意它是挺笨重的嗎?但是當那本書的版稅源源不斷的…… 我想你能夠明白這些。 記者: 等一下,關於參數的定義,請您一定要回答,您是否真的改良了C的指針。 Stroustrup: 呵,我也是總是想知道這個。一開始我認為我做了,但是有一天我和一個剛開始學習 C 的程序員討論了這個問題。他說:「他從來就不知道他的變量是否被引用了,所以我還是在使用指針,那個星號總是在提醒我。」 記者: OK,一般在這個時候我一般是說:「Thank you very much.」,但是現在用在這裡好像還是不夠。 Stroustrup: 答應我一定要發表。 記者: 好的,我會通知您的,但是我已經知道了我的編輯會說什麼了。 Stroustrup: 誰會相信呢?你能把這盤錄音帶給我考一個嗎? 記者: 可以。 ------------------------------------------------------------------------------- 1999.4.6, upload to http://pigprince.yeah.net by Pigprince. No Right Reserved. Apr. 21, 2002, renewed, add notes. 智慧是命運的征服者
------
智慧是命運的征服者
系統時間:2024-05-02 14:27:33
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!