如果由程式語言經營航空公司.... If Programming Languages ran the Airlines
原文為:
If Programming Languages ran the Airlines
好久沒有英翻中了啊~因為覺得作者描寫得還蠻有趣且裡頭藏了不少梗,加上先前強者我同學 but 這篇 程式設計師的格言 也是辛苦日翻中來的,看還沒人翻譯這篇所以也來無責任譯注一下,有些採用意譯而非不逐字實翻,有什麼建議或翻不清楚的地方歡迎交流~
個人認為作者所提的幾個共通設定為:出發機場是整個開發平台,而到達機場是執行目標平台,飛機本身是Runtime environment、official library、IDE這類開發工具與元件,機上同行乘客是使用相同平台的開發者,機長是PM、PL,飛抵目的地就意謂著順利開發完成。
一、PL/1 Mainframe航空
當你到達機場後發現根本不像是什麼機場,只是在河旁的老舊木建築。當你想問這為什麼不像是機場時,一個非常老的老人答說他們從開始建造起就是這個樣子了,所以他一定很棒。當你詢問可以在哪裡check in以及飛機何時起飛時,得到的答案卻是這邊根本沒有什麼飛機,因為他們覺得飛機太新潮了。相反的你必須把自己跟行李丟進在河上划行的小船裡,只因為人們已經使用這種船有數個世紀之久,所以這種船已證明他們也是非常好的。你抱怨這種船根本不可能帶你到2000哩外的目的地,但老人堅持你應該試試看,因這艘船從沒讓他失望,雖然事實上他的自信根本不知從何而來,因為它只航行過兩哩....。最後你別無選擇,只好給他一次機會,起初一切都相當順利,老人能夠駕馭這艘船快速的往下游划去,但當你終於到達海上時,老人就心臟病發死了。你現在正處於汪洋的正中,除了一對槳外什麼也沒有....祝你好運。
(譯注:不知道該怎麼說,沒有體驗過老古董巨獸啊....當時的確應該沒什麼完善的開發環境,所以只好直接找老人溝通,應該是指OS吧?但為什麼是船、為何留下一對槳,這我總覺得是有什麼梗....但我實在想不出解釋,有人知道嗎?)
二、C++ 航空
當你到達機場,眼前有五個入口。你走向其中一個時隨即被什麼人叫住了,他警告你只要選了其中一個就不能再回頭,包含目的地在內的一切都要在這時候決定。你考慮了一會,選擇了一個對你來說最好的入口。
(譯注:或許是指容易被開發平台綁定住,同樣都是C/C++的專案可以用到四五種IDE,如果又用了IDE綁定的API就幾乎註定無法無痛轉換平台,為了開發方便而偷懶使用平台限定語法的案例應該佔了大多數。)
當你走到櫃檯check in後你拿到一張機票,上頭記載著從名字、地址到你家裡的狗的名字,還有你家衣櫃的所有內容。你詢問為什麼上頭有如此多對這趟飛行無用的資訊時,你得到了這樣非常好的回答,因為你完全掌握你所要做的一切。當你在餐廳的桌前坐下時,服務生不會給你任何東西,因為你拿的機票是錯的,如果你問如何才能得到食物,你會被告知該在選擇機票之前就想好這些事情。
(譯注:能搞定址跟值的關聯才能搞定C....大量無用的資訊於愛好者來說反而是很興奮且理所當然的事,餐廳這事我的解讀是試用、試寫練習的階段,而此處不上餐應該是說用錯compiler所以build不出東西,因為有些人把build出binary的過程稱為"cook")
帶著困惑上了飛機後,你會得到一份有兩片麵包的餐點,但你得要用一把武士刀去切他們。你看到四周的人都試著在切麵包,偶而也會發生切到自己的手臂或手指這類意外,你問旁邊的人為什麼他們不給一把普通的餐刀去切麵包,因為這把武士刀實在太危險了!但這人卻回達只有武士刀才夠利足以切斷麵包,如果你辦不到的話就是個愚笨的新手!
(譯注:這段真的是超感同身受的....當你寫慣Java、C#這類語言-特別是物件導向及3rd party lib特別豐富的,其實有些小事情只要套套API包包framework就搞定了,回頭寫C/C++卻有很多簡單的事情都得針對記憶體直接進行操作,當然效率很高是沒錯,但相對的也增加邏輯錯誤時的風險,所以才說是拿武士刀在切麵包。至於最後一句話感覺是在諷刺無視用途皆主張C/C++語言至上者的心態吧?)
至少....這架飛機速度非常快,你即將在很短的時間內就抵達終點,但就在你快到達目的地機場時,駕駛員被告知降落跑道被更換了。因為這架飛機在離地後就不能更改降落跑道,所以駕駛員將返回出發的機場並且重新開始整趟飛行....。
(譯注:雖然C/C++執行效率非常好,但因為開發平台綁定的後果非常麻煩,因此只要需求有了改變就常常意味著部份或全部得要砍掉重練)
三、PHP 航空
當你到達機場,你發現許多人四處拖著飛機零件。當你詢問為何是這種狀況時,一個人回答「因為你要飛行,所以這就是他們正在製造它的原因」,你正要試著問這裡是否有任何預先組好且通過安全測試的飛機時,那個人已經帶著夾在手臂下的大機翼消失了....。當你登機後(這時左機翼還沒有完工,但空姐保證會在起飛前完成),你遇到了一個小孩子,你問他是否是第一次飛行,但看起來他卻是這架飛機的駕駛員。這個孩子說他從嬰兒時就開始玩玩具飛機,且他有套真正的駕駛服,所以他是非常有資格架駛這架飛機的。
(譯注:PHP利用基本組件加上插件的方式拼湊出環境後,是可以在執行中再去加掛新元件的,如果沒有找到完全符合需求的預組套件,需要再加掛也是很常有的事,加掛後的穩定性或許就不是原套件能保證的了。而那個駕駛員小孩....不知道他玩的玩具飛機是不是在指Perl?XD)
飛機剛起飛後有遇到一些亂流,但隨即就好轉且正常上路了。當飛機正在飛越海洋時遇到了一場暴風雨,這孩子看起來顯得有些害怕,但依然盡力想要挽救局勢,隨著愈來愈多乘客感到恐慌,小孩開始哭泣並且放棄掙扎。你試著自行操控這架飛機,但這裡沒有任何使用手冊....。當飛機直向海面正要墜毀時,你看了看窗外並看到一個人正在小船上慘叫。至少,你走的並不孤單.......
(譯注:PHP的平台維護有相當程度要依賴系統管理者或PM的認知,由於專案多少在開發完成前平台都還可以能改參數、加元件....或許就沒有逐步建立文件紀錄,一旦管理者或PM人間蒸發時,下頭的開發者可能誰也沒法了解到全貌,畢竟會寫的人未必能夠維護平台,一旦關鍵人物消失平台失控時,有時Programmer再強也還是救不了system crash的命運。至於最後酸說走得並不孤單....嗯,這真是太機車了XD)
四、.NET航空
你抵達一個非常新穎的機場,只有一個櫃台可以供你check in,但你不需要做任何等待且有位非常友善的女性會幫助你。Check in之後你決定要吃些東西,這裡只有一間餐廳但相當的貴,不過食物還不錯,所以你也就不在意了。你被另一位非常親切的空姐導引到你的班機,這裡只有一條長廊可以讓你通行,所以其實你不需要任何協助,但換個角度想其實他也倒蠻舒服的。你的班機是機場上唯一的一架,但他很棒,有很好的椅子以及美妙的機上晚餐。大約20分鐘後,你降落在一個跟出發地完全相同的機場,因為那也是.NET班機惟一能降落的地方。
(譯注:新穎的機場意味著一個華麗的操作平台,單一櫃台代表入門處只有一個,只有一間餐廳且很貴代表只有Visual Studio可以選XD(不過早已有免費的精簡版可下載),不斷強調非常親切是整個平台畢竟大家都蠻容易上手,食物還不錯代表上手不難,而只有一條長廊代表沒有什麼3rd party方案嗎?只有一架班機這點如果從Compile的角度來解釋,反正最後都是被轉換到CLR才執行,這倒也就有符合作者的描述,至於降落點唯一當然可以是指執行的平台上要有相同的CLR。但後頭這邊的描述如果是以Framework版本來解讀就不為真了,畢竟.NET FW的特色是彼此不相容(向上向下都不行,我指1.1及2.0),機場是否一模一樣及惟一就不一定成立了。不過作者寫的真的太美好了,如果是不在乎環境被綁架、想要好上手方案單純的人看到這種描述,搞不好只會覺得這樣很棒咧(遠目))
五、Java航空
你帶著所有的行李抵達機場,相當的重,所以你感嘆道"真希望能有誰來幫我提他們...."。很快的,航站內所有角落的人都向你這跑來並提供他們的服務。有些人向你要求一些小錢,但大多數都是免費的,因為他們就愛拖行李。起初你對這群人期待過高,但是過了不久,你逐漸了解其中部分的人且發現他們真的不錯。當你快要抵達班機時,你發現這邊不只有一架,而是完全不同的五架,但他們都是飛機且都能帶你去任何想去的地方,其中有些甚至是免費的。你看到一些人-特別是穿西裝打領帶的,他們不相信一切免費的班機且對多樣化的選擇感到焦慮。所以他們走進一棟巨大的藍色建築物,你聽說只要付出足夠的錢就可以讓藍色建築裡的人替你做任何事並幫你做決定,但你因為有點缺現金且發現從沒看到任何人再走出這棟建築物....所以你決定選擇其中一架免費班機。在一段愉快舒適的旅程之後你順利到達目的地,你試著說服你的朋友選擇搭乘Java航空去旅行,但他們全都對你說"他是免費的嗎??那他不可能是好的...."....
(譯注:很重的行李應是指各式3rd party library,四處出現的幫手應是指各式3rd party development tools,就愛拖行李或許是指熱心的開放源碼社群?過於期待是因為真正順手且像Eclipse好用的工具並不多吧。這邊的班機應該是指不同的VM與平台提供者,而做選擇對於某些人來說的確是很難,所以他們就去找了....呃....藍色巨人來花錢消災XD....做任何事跟做決定就是客製化跟顧問啊~但只要一但用了就很難再轉換系統,因此也就沒人走出來了XD,最後則是諷刺某些不相信免費解決方案能順利解決問題者的心態。)
結論:感謝所有跟我很認真討論各個梗來源的好同學們,我還真是吃飽太閒翻完了....這作者感覺很討厭PHP,另外要嘛是不懂.NET,要嘛就是M$的支持者XD!!是說二三四五我都搭過耶,怎麼會有如此不忠實的顧客!(大誤)
要轉載麻煩留言告知一下,感謝大家觀賞
2009/3/10追記:開始發現有轉載了,不過至少都還有附上連結....
tag :
