印度一名工程師 Naresh Kumar 在部落格裡整理了 59 則關於程式的語錄,包括軟體開發、程式維護、軟體除錯、軟體 bug、系統設計、文件、軟體品質等等……(文章轉自 IT 外刊評論)
我收集了很多編程語錄,基本上都跟程序員的生活有關。這些語錄涉及軟件開發,代碼維護,調試糾錯,軟件bug,系統設計、文檔,代碼質量,測試和軟件開發團隊管理等方面。下面的這59條語錄雖然很搞笑,但卻真實無比。只有程序員才能理解這些編程語句裡的真正內涵。閒言少敘,開始吧…
軟件開發人員和工程師程式語錄
- 一個好的工程師是那種過單行道馬路都要左顧右盼的人。(Doug Linder)
- 
程式有問題時不要擔心。如果所有東西都沒問題,你就失業了。(軟體工程的 Mosher 定律) 
- 
工程師的麻煩在於,你無法弄清他在折騰什麼,當你最終弄明白時,也許已經太遲了。(超級電腦之父 Seymour Cray) 
- 
我想大部分人都知道一名工程師具有的美德。當然了,有三種:懶惰、暴躁、傲慢。(Perl 語言發明者 Larry Wall) 
- 
寫程式時要保持這種心態:就好像將來要維護你這些程式的人是一位殘暴的精神病患者,而且他知道你住在哪。(Martin Golding) 
- 
一個人寫的爛軟體將會給另一個人帶來一份全職工作。(Jessica Gaston) 
- 
如果建築工人像工程師寫軟體那樣蓋房子,那第一隻飛來的啄木鳥就能毀掉人類文明。(Gerald Weinberg) 
- 
這世界最有可能毀滅的方式——大多數專家都同意——是由意外造成。這就是為什麼會有我們,我們是電腦專家,我們創造意外。(Nathaniel Borenstein) 
- 
我們這個產業有個特別奇怪的現象:我們不但不會從失敗裡吸取教訓,同時也不從成功中學習經驗。(Keith Braithwaite) 
- 
一種新技術一旦開始流行,你要嘛坐上壓路機,要嘛成為鋪路石。(Stewart Brand) 
- 
如果沒能一次成功,那就叫它 1.0 版吧。(unknown) 
- 
所有的工程師都是編劇,所有的電腦都是爛演員。(Anonymous Hack Actor) 
- 
工作進度上越快落後,你就會有越充足的時間趕上。(Anonymous Scheduler) 
- 
當有這樣的一種程式語言出現:它能讓工程師用簡單的英語寫程式,你將會發現,工程師都開始不會說英語。(Anonymous Linguist) 
- 
為什麼我們沒有時間把事情做對,卻總有時間把事情砍掉重練?(Anonymous) 
 Why do we never have time to do it right, but always have time to do it over? (Anonymous)
- 
傻瓜都能寫出電腦能理解的程式。優秀的工程師寫出的是人類能讀懂的程式。 
- 
任何你寫的程式,超過 6 個月不去看它,當你再度開啓時,看起來都像是別人寫的。(Eagleson’s law) 
程式/軟體開發語錄
- 
按程式行數來評估軟體開發的進度,就如同按重量來評估飛機建造的進度。(Bill Gates) 
- 
軟體就像做愛。一次犯錯,你需要用剩下的一生來彌補。(Michael Sinz) 
- 
在水上行走和按照特定需求開發開發軟體都很容易——前提是它們都是凍結狀態。(Edward V Berard) 
- 
最初 90% 的程式消耗了最初 90% 的開發時間…最後 10% 的程式用去了另外 90% 的開發時間。(Tom Cargill) 
- 
註釋程式很像清掃廁所——你不想幹,但如果你做了,這絕對會給你和你的客人帶來更愉悅的體驗。 (Ryan Campbell) 
- 
如今的程式是一場工程師和上帝的競賽,工程師要開發出更大更好、傻瓜都會用到軟體。而上帝在努力創造出更大更傻的傻瓜。目前為止,上帝是贏的。(Rick Cook) 
- 
軟體設計最困難的部分⋯⋯是阻擋新功能的引入。(Donald Norman) 
- 
為了理解遞迴(recursion),我們首先要理解的是遞迴。(Anonymous) 
- 
世上只有兩類程式語言:那些被人批得一無是處的,以及那些沒人使用的。(Bjarne Stroustrup) 
- 
關於布林值最棒的一點是,即使你搞錯了,也只差一個位元(a bit,此為雙關語,英文「一點點」之意,也是電腦術語「位元」的意思)。(Anonymous) 
- 
如果 Java 真的能夠垃圾回收,那大部分的程式都會在執行時自己刪除自己。(Robert Swell) 
- 
理論上,理論和實踐是沒有差異的。但實踐中,是有的。(Jan LA van de Snepscheut) 
- 
預備,開火,瞄準:這是最快的軟體開發方法。預備,瞄準,瞄準,瞄準,瞄準:這是最慢的軟體開發方法。(Anonymous) 
- 
寫程式是 10% 的科學、20%天份,加上 70% 的讓天份符合科學。(Anonymous) 
- 
評估一件事情要比去理解你評估了什麼容易。(Anonymous) 
- 
標準檢查程式(benchmark)不會撒謊,但制定標準檢查程式的人會。(Anonymous) 
- 
培養員工,即使他們有跳槽的風險。什麼都不做而留他們在公司,這樣風險更大。(Anonymous) 
- 
電腦科學的目標是做出一個東西,並且保證它至少能堅持到我們將它開發完成。(Anonymous) 
- 
Java 之於 JavaScript 的關係就如同狗和熱狗。(英文是 Car 與 Carpet)。(Chris Heilmann) 
- 
起初就把事情做對是完全沒必要的。但最後要把事情做對是絕對必要的。(Andrew Hunt and David Thomas) 
- 
陣列(array)的起始索引(indices)應該從 0 開始還是從 1 開始?我的 0.5 的折中提議被他們拒絕了,而我認為,他們沒有考慮周詳。(Stan Kelly-Bootle) 
- 
程式必須是為了給人看而寫,命令機器執行只是附帶任務。(Abelson / Sussman) 
- 
寫程式可以很有趣,密碼學也是,但兩者絕對不能合而為一。(Kreitzberg and Shneiderman) 
- 
複製 — 貼上是一種設計錯誤。(David Parnas) 
- 
電腦善於遵循指令,但不善於理解你的思維。(Donald Knuth) 
軟體除錯語錄
- 
被刪除的程式就是被除錯的程式。(Jeff Sickel) 
- 
如果除錯是消除軟體 bug 的過程,那寫程式一定是把它們放進去的過程。(Edsger Dijkstra) 
- 
程式除錯要比新編寫程式困難一倍。因此,如果你寫出了最聰明的程式,按此推算,你就缺乏更深遠的智慧來替它除錯。 
- 
想在自己的程式裡找出一個錯誤是十分困難的。而當你認為你的程式沒有錯誤時,那就更難了。(Steve McConnel) 
軟體 bug 語錄
- 
這不是個 bug——這一個未註明的功能特徵。(Anonymous) 
- 
沒有需求或設計,寫程式就是一種將 bug 添加到一個空白文件裡的藝術。(Louis Srygley) 
- 
爛程式並不爛,只是被誤解了。(Anonymous Code Behaviorist) 
- 
有兩種方法能寫出沒有錯誤的程式;但只有第三種好用。(Alan J. Perlis) 
- 
小心上面程式中的 bug;我只知道這些程式是正確的,但沒有試過。(Donald Knuth) 
軟體產品/成品語錄
- 
軟體能夠反覆使用之前,它必須要先可以用。(Ralph Johnson) 
- 
軟體通常在 beta 測試完成不久後發表。Beta 在拉丁語中是「還不能用」的意思。(Anonymous) 
- 
最好的性能改進是將軟體從不能用的狀態變成可用。(J. Osterhout) 
- 
最便宜、最快速、最值得信賴的組件是那些還未出現的組件。(Gordon Bell) 
- 
我認為微軟之所以把「.Net」命名為「.Net」,是因為如此一來,它就不會出現在 Unix 的目錄裡。(Oktal) 
- 
軟體和教堂非常相似——建成之後我們就開始祈禱。(Sam Redwine) 
- 
除非最後一個使用者死掉,軟體是不會有完工的時候的。(Anonymous) 
- 
如今的大部分軟體都非常像埃及金字塔,由成千上萬的石塊一塊一塊構成,沒有結構上的整合,而是由暴力強制和成千上萬的奴隸完成。(Alan Kay) 
翻譯轉自 IT 外刊評論
原文:59 Hilarious but True Programming Quotes for Software Developers


