在開始這系列文章時,就有讀者詢問:在 Linux 下進行 Java 開發究竟有何優勢?如果都是安裝 JDK、安裝 Eclipse,那與 Windows 開發有何不同?這問題很犀利,確實我們似乎沒有必要將工作從 Windows 移至 Linux。
在 Linux 系統開發與 Windows 相比,兩者各有優缺點。以下是我的一些看法,歡迎討論。
Linux 的本質有三點:開源、免費、屬於 Unix 體系。重要應用幾乎都運行在 Unix 伺服器上,因 Unix 天生為伺服器設計,安全、高效無庸置疑。後來為發展桌面出現 X Windows,我們可選擇不啟動 X Windows,拋棄圖形介面負擔,系統自然跑得更快。Windows 天生為桌面設計,後發展 NT 系列進軍伺服器,雖已成熟可與 Unix 競爭,但非免費且價格高昂。選擇 Unix/Linux 作為伺服器作業系統,可為企業節省大量成本。
Java 設計初衷即跨平台,我們完全可以在 Windows 開發,再部署至 Linux。但兩者仍有細微差異 (如檔案路徑),在 Linux 系統建構系統可確保最大相容性。
程式設計師喜歡接觸新事物,所謂駭客文化或玩家文化。在 Linux 系統,你能輕鬆獲得許多好東西:優質軟體、程式碼、思想、經驗。喜歡系統程式設計,Linux 內建 gcc;喜歡動態語言,內建 Python、Perl、Ruby;建立網路應用,內建 httpd、Sendmail 等網路軟體;管理專案,內建 CVS、Subversion、AutoMake。只要你有興趣,Linux 讓你一輩子不會感到枯燥。
使用過 Linux 命令列介面後,我就不想再碰滑鼠,雙手不離鍵盤辦事更快。Linux 系統本身有許多選擇:Red Hat、Ubuntu、Suse、Fedora、國產紅旗、Sun Solaris (現已開源)。Red Hat 介面確實醜,但國產貨已解決中文字型與 Qt 庫問題,提供良好基礎,開發應用軟體是我們程式設計師的責任,而非罵作業系統廠商。
懂 Linux 的程式設計師比不懂的更貴。不用多說。
Unix/Linux 產生對程式設計師有利的價值,Windows 產生對非程式設計師有利的價值。我們有時也是非程式設計師,需要聽歌、看影片、炒股、打遊戲,此時 Windows 比 Linux 方便得多。介面美觀是一方面,應用軟體豐富是另一面。雖然 SuSe 介面已超越 XP,但安裝遊戲還要 ./configure、make、make install 半天,不一定成功,自然不如 Windows 爽快。
以我為例,最愛的網頁設計工具仍是 Dreamweaver。雖在 Eclipse 環境下靠 HTMLEditor 外掛的語法著色與自動提示也能快速撰寫 HTML/CSS,但找不到正宗可視化網頁設計工具依然不爽。喜歡 Photoshop 的朋友,當然非 Windows 不可。
因此,無論如何,少不了一台 Windows。
我們不需將所有工作搬到 Linux 平台,區域網路中只需一台 Linux 即夠,其餘可為 Windows。Linux 伺服器主要運行 Subversion、每日建構與自動化測試,Windows 主要用於開發,也作為客戶端進行部分測試。
歡迎提出不同意見。