Unix,C的創建者的懺悔 |
|
kynix
初階會員 發表:37 回覆:100 積分:37 註冊:2002-06-01 發送簡訊給我 |
翻譯整理:pigprince 在前不久舉行的一次關於計算機產業的發佈會上,Ken Thompson,Dennis Ritchie 和Brian Kernighan承認了由他們創建的Unix操作系統和C語言是來源於20年前的一個精心炮製的愚人節遊戲! Thompson是在不久以前在UnixWorld軟件開發論壇上說的這番話: 「在1969年,AT&T剛剛完成一個和GE還有Honeywell公司合作的項目--Multics,那時候我和Brian 也剛剛接觸一個由瑞士ETH實驗室的Nicklaus教授創建的PASCAL語言的一個早期版本,我們當時就對它的簡潔樸素和強大留下了深刻的印象。Denis正好讀完了《Bored of the Rings》這本書,它實際上是《Lord of the Rings》三部曲的一個拙劣的模仿,只不過是為了玩,我們決定對Multics和PASCAL也進行一番模仿。我和Dennis負責操作環境,模仿Multics來重新設計一個新系統,設計的宗旨是盡可能的使系統顯得神秘而複雜,讓使用者不斷地感到受挫,又重新起了一個名,叫作UNIX。然後Dennis和Brian對一個叫作『A語言』的東西開展了一番工作,它實際上是對PASCAL語言的一個扭曲。當我們發現竟然有人嘗試用A語言開發真正的程序,我們馬上在A語言中又增加了一些更加含義模糊的東西,並把它升級為B語言,之後是BCPL,直到最後的C語言。在我們得到了以下的語法表達之後我們停止了,
for(;P("\n"),R=;P("|"))for(e=C;e=;P("_" (*u /8)%2))P("| " (*u/4)%2); 現代的程序員們竟然會試著使用允許這樣的聲明的語言,這簡直超乎我們的想像。我們當時真的是想把這些東西賣給蘇聯,好讓他們的計算機科學水平倒退20年。你想像一下在AT&T和其它的美國公司開始試著使用Unix和C時我們的驚異。這使他們用了20年,只不過用在了使用建立在60年代的一個拙劣的技術模仿的基礎上的專門技術和一些應用。但是我們對Unix和C程序員堅韌不拔的精神也留下了深刻的印象,我和Brian還有Dennis則在這麼多年裡一直在Apple機上使用PASCAL語言,我們對這種混亂的結果感到了深深的負罪感,混亂和那些濫程序就是起源於在當時我們愚蠢的惡作劇!」
一些主要的Unix和C的廠商和用戶,包括AT&T、Microsoft、Hewlett-Packard、GTE、 NCR和DEC等等這一次拒絕對此發表見解,有一家PACAL和C語言開發工具的業界領先廠商(產品包括流行的Turbo Pascal,Turbo C和Turbo C 等) 聲明說他們實際上已經在多年以前就有一些察覺,並宣佈今後將繼續增強他們的PASCAL產品,並立刻暫停他們在C產品上的遠期投入;一個IBM公司發言人則對這件事大笑不止,以至於不得不推遲了一個關乎RS-6000的命運的新聞發佈會;而ETH學院的教授, PASCAL,Modula 2和Oberon結構語言的創建者Wirth教授只是說P. T. Barnum是正確的。
和這個事件相關的大抵可信的資料來源說明,不久將有一個相似的招供可能來自於William Gates,是關於MS-DOS和Windows操作環境,還有就是IBM的發言人開始否認虛擬機(VM)也是一個惡作劇式的拙劣的玩意兒。
---------------------------------------------------------------------Back 1998.9.19 upload to http://pigprince.yeah.net by pigprince, All Right Reserved. 智慧是命運的征服者 發表人 - kynix 於 2003/08/09 07:38:31
------
智慧是命運的征服者 |
Cooky Kid
初階會員 發表:5 回覆:68 積分:44 註冊:2002-07-11 發送簡訊給我 |
|
領航天使
站長 發表:12216 回覆:4186 積分:4084 註冊:2001-07-25 發送簡訊給我 |
|
ddy
站務副站長 發表:262 回覆:2105 積分:1169 註冊:2002-07-13 發送簡訊給我 |
|
william
版主 發表:66 回覆:2535 積分:3048 註冊:2002-07-11 發送簡訊給我 |
|
dllee
站務副站長 發表:321 回覆:2519 積分:1711 註冊:2002-04-15 發送簡訊給我 |
感謝 william 版主的提示,我找到原文了 http://www.gnome007.fsnet.co.uk/aprilfool.html#UNIX 因為我一直對 kynix 所發的
for(;P("\n"),R=;P("|"))for(e=C;e=;P("_" (*u /8)%2))P("| " (*u/4)%2);感到好奇,因為以上的 code 根本無法正常 compile,原文應該是 for(;P("\n"),R-;P("|"))for(e=C;e-;P("_" (*u /8)%2))P("| " (*u/4)%2);但應該還是有筆誤,至少 BCB5 就不會過,但如果是這樣就可以了: for(;P("\n"),R--;P("|"))for(e=C;e--;P("_" (*u /8)%2))P("| " (*u/4)%2);沒空更新的網頁... http://dllee.ktop.com.tw C及指標教學,計算機概論,資訊管理導論... http://dllee.adsldns.org 介紹Shells,LiteStep,GeoShell....
------
http://www.ViewMove.com |
cubi
初階會員 發表:56 回覆:94 積分:35 註冊:2002-04-15 發送簡訊給我 |
引言: 感謝 william 版主的提示,我找到原文了 http://www.gnome007.fsnet.co.uk/aprilfool.html#UNIX 因為我一直對 kynix 所發的for(;P("\n"),R--;P("|"))for(e=C;e--;P("_" (*u /8)%2))P("| " (*u/4)%2); 小弟對C不熟,小弟很好奇,請問這段Code出來的結果是啥呢??謝謝for(;P("\n"),R=;P("|"))for(e=C;e=;P("_" (*u /8)%2))P("| " (*u/4)%2);感到好奇,因為以上的 code 根本無法正常 compile,原文應該是for(;P("\n"),R-;P("|"))for(e=C;e-;P("_" (*u /8)%2))P("| " (*u/4)%2);但應該還是有筆誤,至少 BCB5 就不會過,但如果是這樣就可以了:for(;P("\n"),R--;P("|"))for(e=C;e--;P("_" (*u /8)%2))P("| " (*u/4)%2);沒空更新的網頁... http://dllee.ktop.com.tw C及指標教學,計算機概論,資訊管理導論... http://dllee.adsldns.org 介紹Shells,LiteStep,GeoShell.... |
oioio2
一般會員 發表:0 回覆:11 積分:2 註冊:2004-09-08 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |