關於工程師 59 條搞笑但卻真實無比的語錄

程式有問題時不要擔心。如果所有東西都沒問題,你就失業​​了。
評論
評論

本文轉自 〈IT 外刊評論 〉。

一名叫做 Naresh Kumar 的工程師在部落格 1 裡整理了 59 則關於程式的語錄,包括軟體開發、程式維護、評測除錯、軟體 bug、系統設計、文件、軟體品質等等,以搞笑的方式真實描寫工程師的斑斑血淚。以下我們精選出 10 則最有趣的語錄,後面也附上 59 則完整版與原文。

  1. 程式有問題時不要擔心。如果所有東西都沒問題,你就失業

    了。(軟體工程的 Mosher 定律)
  2. 寫程式時要保持這種心態:就好像將來要維護你這些程式的人是一位殘暴的精神病患者,而且他知道你住在哪。(Martin Golding)
  3. 一個人寫的爛軟體將會給另一個人帶來一份全職工作。(Jessica Gaston)
  4. 當有這樣的一種程式語言出現:它能讓工程師用簡單的英語寫程式,你將會發現,工程師都開始不會說英語。(Anonymous Linguist)
  5. 傻瓜都能寫出電腦能理解的程式,優秀的工程師寫出的是人類能讀懂的程式。
  6. 任何你寫的程式,超過 6 個月不去看它,當你再度開啓時,看起來都像是別人寫的。
  7. 世上只有兩類程式語言:那些被人罵翻的,以及那些沒人使用的。
  8. Java 之於 JavaScript 的關係,就如同狗和熱狗。
  9. 如果除錯是消除軟體 bug 的過程,那寫程式一定是把它們放進去的過程。
  10. 開發軟體和建造教堂非常相似——完工之後我們就開始祈禱。

59 則完整版

工程師程式語錄

1. 一個好的工程師是那種過單行道馬路都要左顧右盼的人。(Doug Linder)
A good programmer is someone who always looks both ways before crossing a one-way street. (Doug Linder)

2. 程式有問題時不要擔心。如果所有東西都沒問題,你就失業

了。(軟體工程的 Mosher 定律)
Don’t worry if it doesn't work right. If everything did, you’d be out of a job. (Mosher’s Law of Software Engineering)

3. 工程師的麻煩在於,你無法弄清他在折騰什麼,當你最終弄明白時,也許已經太遲了。(超級電腦之父 Seymour Cray)
The trouble with programmers is that you can never tell what a programmer is doing until it’s too late. (Seymour Cray)

4. 我想大部分人都知道通常一名工程師會具有的美德。當然了,有三種:懶惰、暴躁、傲慢。(Perl 語言發明者 Larry Wall)
Most of you are familiar with the virtues of a programmer. There are three, of course: laziness, impatience, and hubris. (Larry Wall)

5. 寫程式時要保持這種心態:就好像將來要維護你這些程式的人是一位殘暴的精神病患者,而且他知道你住在哪。(Martin Golding)
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. (Martin Golding)

6. 一個人寫的爛軟體將會給另一個人帶來一份全職工作。(Jessica Gaston)
One man’s crappy software is another man’s full time job. (Jessica Gaston)

7. 如果建築工人像工程師寫軟體那樣蓋房子,那第一隻飛來的啄木鳥就能毀掉人類文明。(Gerald Weinberg)
If builders built buildings the way programmers wrote programs, then the first woodpecker that came along wound destroy civilization. (Gerald Weinberg)

8. 這世界最有可能毀滅的方式——大多數專家都同意——是由意外造成。這就是為什麼會有我們,我們是電腦專家,我們創造意外。(Nathaniel Borenstein)
The most likely way for the world to be destroyed, most experts agree, is by accident. That’s where we come in; we’re computer professionals. We cause accidents. (Nathaniel Borenstein)

9. 我們這個產業有個特別奇怪的現象:我們不但不會從失敗裡吸取教訓,同時也不從成功中學習經驗。(Keith Braithwaite)
It’s a curious thing about our industry: not only do we not learn from our mistakes, we also don’t learn from our successes. (Keith Braithwaite)

10. 一種新技術一旦開始流行,你要嘛坐上壓路機,要嘛成為鋪路石。(Stewart Brand)
Once a new technology starts rolling, if you’re not part of the steamroller, you’re part of the road. (Stewart Brand)

11. 如果

沒能一次成功,那就叫它 1.0 版吧。(unknown)
If at first you don’t succeed, call it version 1.0 (unknown)

12. 所有的工程師都是編劇,所有的電腦都是爛演員。(Anonymous Hack Actor)
All programmers are playwrights and all computers are lousy actors. (Anonymous Hack Actor)

13. 工作進度上越快落後,你就會有越充足的時間趕上。(Anonymous Scheduler)
The sooner you get behind in your work, the more time you have to catch up. (Anonymous Scheduler)

14. 當有這樣的一種程式語言出現:它能讓工程師用簡單的英語寫程式,你將會發現,工程師都開始不會說英語。(Anonymous Linguist)
When a programming language is created that allows programmers to program in simple English, it will be discovered that programmers cannot speak English. (Anonymous Linguist)

15. 為什麼我們沒有時間把事情做對,卻總有時間把事情砍掉重練?(Anonymous)
Why do we never have time to do it right, but always have time to do it over? (Anonymous)

16. 傻瓜都能寫出電腦能理解的程式。優秀的工程師寫出的是人類能讀懂的程式。
Any fool can write code that a computer can understand. Good programmers write code that humans can understand.

17. 任何你寫的程式,超過 6 個月不去看它,當你再度開啓時,看起來都像是別人寫的。(Eagleson's law)
Any code of your own that you haven't looked at for six or more months might as well have been written by someone else. (Eagleson's law)

程式/軟體開發語錄

18. 按程式行數來評估軟體開發的進度,就如同按重量來評估飛機建造的進度。(Bill Gates)
Measuring programming progress by lines of code is like measuring aircraft building progress by weight. (Bill Gates)

19. 軟體就像做愛。一次犯錯,你需要用剩下的一生來彌補。(Michael Sinz)
Programming is like sex. One mistake and you have to support it for the rest of your life. (Michael Sinz)

20. 在水上行走和按照特定需求開發開發軟體都很容易——前提是它們都是凍結狀態。(Edward V Berard)
Walking on water and developing software from a specification are easy if both are frozen. (Edward V Berard)

21. 最初 90% 的程式消耗了最初 90% 的開發時間…最後 10% 的程式用去了另外 90% 的開發時間。(Tom Cargill)
The first 90 percent of the code accounts for the first 90 percent of the development time…The remaining 10 percent of the code accounts for the other 90 percent of the development time.(Tom Cargill)

22. 註釋程式很像清掃廁所——你不想幹,但如果你做了,這絕對會給你和你的客人帶來更愉悅的體驗。(Ryan Campbell)
Commenting your code is like cleaning your bathroom — you never want to do it, but it really does create a more pleasant experience for you and your guests. (Ryan Campbell)

23. 如今的程式是一場工程師和上帝的競賽,工程師要開發出更大更好、傻瓜都會用到軟體。而上帝在努力創造出更大更傻的傻瓜。目前為止,上帝是贏的。(Rick Cook)
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. (Rick Cook)

24. 軟體設計最困難的部分⋯⋯是阻擋新功能的引入。(Donald Norman)
The hardest part of design … is keeping features out. (Donald Norman)

25. 為了理解遞迴(recursion),我們首先要理解的是遞迴。(Anonymous)
In order to understand recursion, one must first understand recursion. (Anonymous)

26. 世上只有兩類程式語言:那些被人批得一無是處的,以及那些沒人使用的。(Bjarne Stroustrup)
There are only two kinds of programming languages: those people always bitch about and those nobody uses. (Bjarne Stroustrup)

27. 關於布林值最棒的一點是,即使你搞錯了,也只差一個位元(a bit,此為雙關語,英文「一點點」之意,也是電腦術語「位元」的意思)。(Anonymous)
The best thing about a boolean is even if you are wrong, you are only off by a bit.

28. 如果

Java 真的能夠垃圾回收,那大部分的程式都會在執行時自己刪除自己。(Robert Swell)
If Java had true garbage collection, most programs would delete themselves upon execution. (Robert Swell)

29. 理論上,理論和實踐是沒有差異的。但實踐中,是有的。(Jan LA van de Snepscheut)
In theory, there is no difference between theory and practice. But, in practice, there is. (Jan L. A. van de Snepscheut)

30. 預備,開火,瞄準:這是最快的軟體開發方法。預備,瞄準,瞄準,瞄準,瞄準:這是最慢的軟體開發方法。(Anonymous)
Ready, fire, aim: the fast approach to software development. Ready, aim, aim, aim, aim: the slow approach to software development. (Anonymous)

31. 寫程式是 10% 的科學、20% 天份,加上 70% 的讓天份符合科學。(Anonymous)
Programming is 10% science, 20% ingenuity, and 70% getting the ingenuity to work with the science. (Anonymous)

32. 評估一件事情要比去理解你評估了什麼容易。(Anonymous)
It is easier to measure something than to understand what you have measured. (Anonymous)

33. 標準檢查程式(benchmark)不會撒謊,但制定標準檢查程式的人會。(Anonymous)
Benchmarks don’t lie, but liars do benchmarks. (Anonymous)

34. 培養員工,即使他們有跳槽的風險。什麼都不做而留他們在公司,這樣風險更大。(Anonymous)
Better train people and risk they leave – than do nothing and risk they stay. (Anonymous)

35. 電腦科學的目標是做出一個東西,並且保證它至少能堅持到我們將它開發完成。(Anonymous)
The goal of Computer Science is to build something that will last at least until we've finished building it. (Anonymous)

36. Java 之於 JavaScript 的關係就如同狗和熱狗。(英文是 Car 與 Carpet)。(Chris Heilmann)
Java is to JavaScript what Car is to Carpet. (Chris Heilmann)

37. 起初就把事情做對是完全沒必要的。但最後要把事情做對是絕對必要的。(Andrew Hunt and David Thomas)
It's not at all important to get it right the first time. It's vitally important to get it right the last time. (Andrew Hunt and David Thomas)

38. 陣列(array)的起始索引(indices)應該從 0 開始還是從 1 開始?我的 0.5 的折中提議被他們拒絕了,而我認為,他們沒有考慮周詳。(Stan Kelly-Bootle)
Should array indices start at 0 or 1? My compromise of 0.5 was rejected without, I thought, proper consideration. (Stan Kelly-Bootle)

39. 程式必須是為了給人看而寫,命令機器執行只是附帶任務。(Abelson / Sussman)
Programs must be written for people to read, and only incidentally for machines to execute. (Abelson / Sussman)

40. 寫程式可以很有趣,密碼學也是,但兩者絕對不能合而為一。(Kreitzberg and Shneiderman)
Programming can be fun, so can cryptography; however they should not be combined. (Kreitzberg and Shneiderman)

41. 複製 -- 貼上是一種設計錯誤。(David Parnas)
Copy and paste is a design error. (David Parnas)

42. 電腦善於遵循指令,但不善於理解你的思維。(Donald Knuth)
Computers are good at following instructions, but not at reading your mind. (Donald Knuth)

軟體除錯語錄

43. 被刪除的程式就是被除錯的程式。(Jeff Sickel)
Deleted code is debugged code. (Jeff Sickel)

44. 如果除錯是消除軟體 bug 的過程,那寫程式一定是把它們放進去的過程。(Edsger Dijkstra)
If debugging is the process of removing software bugs, then programming must be the process of putting them in. (Edsger Dijkstra)

45. 程式除錯要比新編寫程式困難一倍。因此,如果你寫出了最聰明的程式,按此推算,你就缺乏更深遠的智慧來替它除錯。
Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are–by definition–not smart enough to debug it.

46. 想在自己的程式裡找出一個錯誤是十分困難的。而當你認為你的程式沒有錯誤時,那就更難了。(Steve McConnel)
It's hard enough to find an error in your code when you're looking for it; it's even harder when you've assumed your code is error-free. (Steve McConnel)

軟體 bug 語錄

47. 這不是個 bug——這一個未註明的功能特徵。(Anonymous)
It’s not a bug – it’s an undocumented feature. (Anonymous)

48. 沒有需求或設計,寫程式就是一種將 bug 添加到一個空白文件裡的藝術。(Louis Srygley)
Without requirements or design, programming is the art of adding bugs to an empty text file. (Louis Srygley)

49. 爛程式並不爛,只是被誤解了。(Anonymous Code Behaviorist)
Bad code isn’t bad, its just misunderstood. (Anonymous Code Behaviorist)

50. 有兩種方法能寫出沒有錯誤的程式;但只有第三種好用。(Alan J. Perlis)
There are two ways to write error-free programs; only the third one works. (Alan J. Perlis)

51. 小心上面程式中的 bug;我只知道這些程式是正確的,但沒有試過。(Donald Knuth)
Beware of bugs in the above code; I have only proved it correct, not tried it. (Donald Knuth)

軟體產品/成品語錄

52. 軟體能夠反覆使用之前,它必須要先可以用。(Ralph Johnson)
Before software can be reusable it first has to be usable. (Ralph Johnson)

53. 軟體通常在 beta 測試完成不久後發表。Beta 在拉丁語中是「還不能用」的意思。(Anonymous)
Software undergoes beta testing shortly before it’s released. Beta is Latin for “still doesn't work". (Anonymous)

54. 最好的性能改進是將軟體從不能用的狀態變成可用。(J. Osterhout)
The best performance improvement is the transition from the nonworking state to the working state. (J. Osterhout)

55. 最便宜、最快速、最值得信賴的組件是那些還未出現的組件。(Gordon Bell)
The cheapest, fastest, and most reliable components are those that aren't there. (Gordon Bell)

56. 我認為微軟之所以把「.Net」命名為「.Net」,是因為如此一來,它就不會出現在 Unix 的目錄裡。(Oktal)
I think Microsoft named .Net so it wouldn’t show up in a Unix directory listing. (Oktal)

57. 軟體和教堂非常相似——建成之後我們就開始祈禱。(Sam Redwine)
Software and cathedrals are much the same – first we build them, then we pray. (Sam Redwine)

58. 除非最後一個使用者死掉,軟體是不會有完工的時候的。(Anonymous)
The software isn’t finished until the last user is dead. (Anonymous)

59. 如今的大部分軟體都非常像埃及金字塔,由成千上萬的石塊一塊一塊構成,沒有結構上的整合,而是由暴力強制和成千上萬的奴隸完成。(Alan Kay)
Most software today is very much like an Egyptian pyramid with millions of bricks piled on top of each other, with no structural integrity, but just done by brute force and thousands of slaves. (Alan Kay)


台灣人偏好的威士忌風味?甜美風味是大宗,帶果香、蜜香風味威士忌男女皆愛

台灣每人一年平均品飲 2.3 瓶威士忌。不過,隨著女性愛好者逐年增加、族群年輕化的全球趨勢,威士忌的喜好風向正默默地變化著,更同時影響著國際酒廠推出熱門酒品的未來計劃。TNL Research 關鍵議題研究中心針對普羅大眾進行了威士忌的品飲喜好調查。
評論
評論

每年近 800 億元規模的台灣酒類市場中,威士忌最是一大重點。然而,近年來品醇族群結構的變化,加上酒友們對風味的求新求變,不少品牌開始尋覓下一個令人沈醉的風味。未來台灣威士忌市場主流,將吹向哪種風味的酒品呢?TNL Research 關鍵議題研究中心針對普羅大眾進行了威士忌的品飲喜好調查。

根據蘇格蘭威士忌協會公佈的 2021 年國際出口市場表現報告,台灣這個僅 2300 萬總人口的市場,一年竟進口了將近新台幣 85 億元的蘇格蘭威士忌,在全球排名第三。若再加上日本、美國等其他產地的酒品,統計資料也顯示全年威士忌市場消費總金額約 550 億新台幣,台灣每人一年平均品飲 2.3 瓶威士忌。不過,隨著女性愛好者逐年增加、族群年輕化的全球趨勢,威士忌的喜好風向正默默地變化著,更同時影響著國際酒廠推出熱門酒品的未來計劃。

三分之一女性愛好者  有力影響威士忌市場風潮

根據TNL Research關鍵議題研究中心於 7 月 11~12 日,針對年齡分布於 30 歲以上 ShareParty 會員所進行的「威士忌品飲習慣調查」,分析 376 份有效回收問卷之後發現,40.9% 受訪者有品飲威士忌的習慣,且男女比例已達逼近 2:1 之譜,顯見女性在威士忌同好族群中已成長至三分之一的比例,其風味喜好必將更具市場聲量。

Photo Credit:TNL Brand Studio

然而,再進一步詢問關於威士忌風味的偏好,倒是能從中一窺在男女族群上的異同處。台灣民眾近年來普遍偏好風味較為甜美、順口易入喉的威士忌,而兼具有果香者獲得最多受訪者的喜愛(57.4%),其次則是帶有蜂蜜風味之酒品(36.3%)。至於較具獨特個性的煙燻風味,訪問後倒是出現了35.9%男性喜愛,但僅有 14.5% 女性能夠接受的明顯差異。

提到風味甜美的威士忌,深諳威士忌的酒友們,腦海中必然會浮現百富單一麥芽威士忌。百富的傳奇首席調酒師大衛史都華(David C. Stewart),運用將近 60 年的經驗和深厚的製酒工藝,讓標誌性的「香甜蜂蜜」風味在每一款百富威士忌中都有一致但又獨特的展現。而大衛史都華更令人讚賞不已的,是他於 1980 年代所發明的「過桶」(Cask Finish)工藝:先將威士忌置於傳統橡木桶中熟成若干年後,再移至另一種橡木桶進行第二次的熟成,而二次熟成的時間並非定數,全靠大衛史都華帶領團隊的耐心定期監控,直到他滿意其風味之後,方才進行裝瓶。40 年來運用「過桶」工藝,百富將酒廠經典的蜂蜜、香草基調,變幻出多樣的迷人風貌,因而廣受全球消費者歡迎。

私聊聚會  最是品飲威士忌的好時機

Photo Credit: 百富

關於最適合享飲威士忌的生活情境,則有近七成(68.8%)受訪者鍾意於私人會所或家庭聚餐時,與三五好友共享黃金酒液,其次還有「商務應酬場合」(35.9%)及「餐廳等公開場合聚會」(35.6%)成為品飲威士忌的常見場景;也有超過三成(32.8%)受訪者鍾愛與另一伴在家中親密啜飲。

若要在私聚餐會上品飲明顯具有果香風味的威士忌,百富 12 年雙桶 DoubleWood 是威士忌愛好者的首選之一。百富首席調酒師大衛史都華精選首次裝桶之 Oloroso 雪莉桶,陳放 9 個月過桶的百富 12 年雙桶單一麥芽威士忌,從 1993 年販售迄今已近 30 年,為百富的最經典酒款。此外,百富酒廠歷史上推出的第二種過桶酒款:百富 21 年波特酒桶 PortWood 威士忌,經長時間窖藏熟成,醞釀極具深度的風味,是百富獲得首獎最多,也是首席調酒師大衛史都華個人最愛的酒款之一。

首創過桶工藝  讓百富威士忌在甜美蜂蜜風味上  更增添多變的層次

Photo Credit: 百富

最後,綜合分析威士忌市場的主流風味,果香、蜂蜜、煙燻和花香是台灣民眾鍾愛的四大風味。然而,想要品飲這四種風味,藉由百富首創的過桶工藝,體驗品牌經典的香甜蜂蜜風味之餘,如果想要體驗熱帶水果的果香,就可選擇百富 14 年加勒比海蘭姆桶單一麥芽威士忌。過桶加勒比海蘭姆酒桶(Rum)的金黃酒液,先帶來熱帶水果、熱帶香料及太妃糖的香氣,再引出香草、橡木桶甜味,口感濃厚圓潤,餘韻柔和且綿長。

若是喜歡煙燻泥煤風味,百富故事系列 14 年泥煤週威士忌是個很好的選擇,溫和的煙燻泥煤融合著細緻奶油蜂蜜氣息與淡雅花香調,品飲時還能感受到些微的柑橘和橡木氣息,猶如天鵝絲絨般的滑順飽滿口感,加上引出水果香氣的尾韻層次變化,怎會不讓人念念難忘。

Photo Credit:百富

近來領先全球、在台首發上市的百富 16 年法國皮諾甜酒桶單一麥芽威士忌,是百富首席調酒師大衛史都華的最新傑作,先在美國橡木桶陳年 16 年,再經由法國皮諾甜酒桶二次熟成,讓百富的蜂蜜甜香層疊出更多層次感,不僅讓品飲者能嗅聞到美妙平衡的蓮花與天竺葵花香,更有蜂蜜基調和細緻蜜餞、嫩薑辛香,加上清爽順口的尾韻,豐富感受、很是令人著迷。

一心一藝,百富持續以「過桶工藝」在標誌性的香甜蜂蜜風味之上,尋找新的可能。相信只要曾感受過桶工藝的魔幻般奧妙,肯定會為台灣日益增長的威士忌愛好者族群,開拓出更為寬廣多元的嗅味覺體驗疆域。