聲明:
本文內容來自《編程之道》一書, 小趙只負責錄入. 所有版權歸該書的出版社。本文由原來的三冊書組成:《編程之道》 《編程之禅》《計算機時代的寓言》
目錄
前言
序
引言
第一篇 木
第二篇 火
第三篇 土
第四篇 金
第五篇 水
第二篇 火
大師:行者
媒體:民間故事
硬件:顯示器
方向:南
軟件:格式化程序
感覺:視覺
階段:設計
動物:鳳凰
系統:CP-6
火
編程大師行者收集了各種各樣有關開發刺目的民間故事。最近的計算機考古研究顯示,下面的這些民間故事是以歷史事實為基礎的。雖然一部分誇張的成分可能會無意中被添加進去,但其歷史真相的核心內容依然存在。
一
當一位項目經理為他的軟件項目配備人員時,他會在一天內雇傭三百名程序員。一位獲得計算機科學博士學位的學者前來求職,他被給予了一個薪水很高的職位。
一天,那位項目經理被解職了。“我認為,每個人都應清楚自己的職責和履行自己的職責。”新來的項目經理在檢閱他的程序員隊伍時如此說道。聽到這話,那位學者悄悄地溜走了。
二
兩位程序員正在急診有關用戶界面的問題。
“在‘使用起來簡單輕松’方面,許多意義重大的革新正在進行當中,”第一位程序員說,“不久以後,人們在使用電腦之前將不再需要閱讀那些冗長乏味的用戶手冊了。程序都將是不言自明的。”
第二位程序員想了一會兒,然後說:“上個星期我准備劈些木柴燒火,但我的斧子又舊又鈍。於是,我去五金店買了把新的。”
“這挺有趣兒,”第一位程序員說,“但這和用戶界面有什麼關系呢?”
“這把新斧子附帶有一本長達八頁的使用說明書。”他回答說。
三
一次有一位第三者問一名工程師、一名數學家、一名物理和一名程序員:“一只盒子有幾個面?”
工程師首先回答。“一只盒子有四個面。”他說。
“此話怎講?”智者問。
“四個垂直的面就是我所說的面,它們被一頂一底連接在一起。”工程師回答。
“太荒唐了,”數學家評論道,“一只盒子有六個面。”
“此話怎講?”智者問。
“盒子是一個立方體,因此有六個面。”,數學家回答。
“不對,”物理學家說,“一只盒子有十二個面。”
“此話怎講?”智者問。
“嚴格說來,有六個外部的面和六個內部的面。”物理學家回答。
智者看著一聲未吭的程序員。“你的意見呢?”智者問。
“一只盒子只有兩個面。”程序員說。
聽了這話,工程師、數學家和物理學家大笑起來。
“此話怎講--一只盒子只有兩個面?”笑聲停住後智者問道。
“這是基於個人經驗,”程序員說,“那‘裡面’是安置電路板的地方,而‘外面’是放顯示器的地方。”
“正是如此。”智者說。
四
一位新上任的董事正在召開與程序員們的見面會。
在宴會進行當中,一位程序員背誦起了如下的演說--“我們一直都在期盼著你的到來,您的前任根本沒有您這種高貴的能力。現在你來了,我們會變得真正具有生產力。”
這位新董事被奉承的喜形於色,“這演說詞是你自己寫的嗎?”他問。
“這是我們開發中心的慣例,”那位程序員說,“無論哪位新董事到任的時侯,我們都要發表那段演說,這是我所知道的唯一的一段演說詞。”
五
一天,開發中心的一位程序員發現了一套可以生成迷宮圖案的算法系統。他非常勤奮地對這套算法進行了修改,這樣可以讓它在長長的打印紙帶上生成一個不間斷的迷宮。
不久,他制做了一個有幾百萬條分貧的迷宮,四十英尺長,七英尺寬。他把打印紙帶掛在了程序員辦公室門口長長的過道上,不一會兒,所有編程人員都擠在了那個迷宮前,試圖解決這個龐大的難題。
開發中心的主任恰巧從旁邊經過,他驚愕地盯著這場景,面色陰沉。但當他走進編程大師的辦公室想尋求幫助時,大師早已不在那兒了。
六
五名初學者哭著走進了大師的辦公室,“嗚,嗚!聽說我們的項目可能要被取消了。”
大師說:“所有事情照常繼續,直到它們停止。”
聽了這話,那些初學者便返回各自的工作中去了。
七
一天,開發中心接到消息,一位新主任將被任命來負責這裡,他是位軍機大臣,對電腦知之甚少。
程序員們聽到這條消息都非常吃驚,紛紛停止了編程,把許多時間都浪費在揣摩那即將到來的不幸的日子。
看到這些,一位大師決定必須得做點什麼。於是,他借來了一套裝扮大猩猩的服裝。
不久,那位大臣就職了,他把所有的經理召集到一間小會議室,隨行而來的是幾位總部的公司行政官,據說,他們是來使開發中心“平穩過渡”的。
突然,那位大師穿著裝扮大猩猩的服裝破門而入。他蹦上會議桌,把文件踢得到處都是,並對著那些行政官咆哮嗥叫,行政官們坐在那裡只剩下目瞪口呆了。然後,他唰地一下離開了會議室,正如他來時一樣。
聽到這件事,程序員們便都回到各自的工作崗位上去了。
<作者按>
作者曾經和幾個人談過,他們都親眼目睹過此傳說中描繪的事件。作者也曾聽說,一年之後,類似的挑釁行為在IBM的某部門中發生了。這第二起事件與第一起的不同之處在於,程序員穿了一套運動服,站在門口大聲地咳嗽。
八
一組程序員正在向董事長匯報。“今年最大的成果是什麼?”董事長問。
那些程序員在一起商量了一會兒,然後回答說:“我們今年解決的bug(程序錯誤--譯注)比去年多百分之五十。”
董事長疑惑地看著他們,很顯然,他不知道BUG是什麼意思。他小聲地與身邊的大臣嘀咕一陣後,轉過身來對著程序員,氣得滿臉通紅。“如此差勁的質量控制,你們應該問心有愧。明年不允許有‘BUG’!他命令道。
可以肯定,第二年那些程序員向董事長匯報的時侯,有關BUG只字未提。
九
一位公司行政官來參觀開發中心,他在長長地走廊裡走著,就像一位檢閱部隊的將軍一樣。他不時地偏上來和他遇到的人談談話。最後,他走進了一位程序員的辦公室,這位程序員正在聚精會神地為操作系統查錯。
行政官環顧了一下辦公室,注意到有尊豬的雕像擺在程序員的終端上。”我常常被程序員收集的那些古玩和紀念品所深深吸引,”行政官說,“在它們背後似乎有一些非常有趣的故事。比如說吧,那裡的那個雕像是什麼意思?”他指著那尊雕像。
程序員從終端前抬起頭來,眨眨眼睛,然後盯著那尊雕像,就好像是頭一回看到它似的。“這是頭豬呀!”他說。