這篇文字於2006年9月1日張貼在約耳談軟體首頁。 有位老朋友寫電郵問我: 「我有幾個基本的問題,希望你能回答。要在一台Web伺服器、Web應用程式以及大規模分散模型及collection模型上建立一套企業級的應用程式,有哪些現有的技術可以達成。這個專案是由零開始的,沒有任何舊程式碼包袱,還有一些我不想拿出來煩你的細節... 「你會選.NET路線還是J2EE?」 「我們應該用哪一種Web伺服器呢(Apache, IIS或其他)?為什麼呢?」 「你推薦什麼Web開發語言(ASP.NET, Ruby, Ruby on Rails, Java, Python等)?原因為何?」 「你的公司是用什麼組合?為什麼會呢?」 呃,真是個好問題,既不可能回答卻又非常容易! 抱歉,我應該停止打啞謎。前陣子寫了一篇名為 程式設計領域的帕麥爾斯頓勳爵 的 文章,我在文章裡面聲稱,有些程式設計的世界(如.NET及Java)非常廣闊而複雜,以致於絕不可能及早知道它們是否好到能滿足你的需求。更何況是 C#/.NET/IIS組合和Java/J2EE/Apache/Solaris組合,還有PHP/Apache/Linux組合間的爭議多年來未曾平 息,正確答案是永遠都找不到的。因為這些平台各別的優缺點實在太多,所以各陣營的擁護者就會吵個不停,永遠無法接近「真相」。不過說實在的,這些爭議挺有 趣的。 你可能會認為,如果能找到在多個平台上都有豐富經驗的某人,問他準沒錯吧。這種人我看到過的並不多,不過有兩件事我倒是可以確定: .NET、Java以及PHP一直都被全世界的人用來建立Web應用程式。這些人並沒有因為選擇了其中某項技術而失敗。 所有這些環境既巨大又複雜,你絕對需要至少一位對所選平台有深厚開發經驗的架構設計師,否則你會做錯事,最後做出一堆必須重整結構的爛程式碼。 去年夏天我們找了 一組實習生 建立了 Copilot ,當時我們必須決定新程式碼所用的語言。我知道新專案通常會有一大段評估期去決定所要用的技術,評估期間還會伴隨許多爭論,會有某個瘋子真的浪費時間去評估 Squeak 和 Lisp 還有 OCaml , 以及其他種種真正出色值得崇拜,卻又缺少無數Web軟體開發必備系統的程式語言。這些爭議非常有趣卻只會浪費時間,因為到頭來只有三個半平台(C#, Java, PHP, 剩的半個是Python)有相...