在我剛開篇寫這一系列隨筆的時候,就有人問:在Linux下進行Java開發究竟有什麼優勢,如果都是一樣安裝JDK、安裝Eclipse,那和Windows下開發有什麼區別?這個問題問得很尖銳,的確,我們似乎根本沒有必要把我們的工作從Windows中轉移到Linux中來。
在Linux系統中進行開發,和在Windows中進行開發相比較起來,即有優點,也有缺點。下面是我的一些意見,歡迎大家討論。
先來說說優勢:
1、由Linux系統的本質決定的:
Linux的本質有三點,一是開源,二是免費,三是和Unix是一個體系。大家都知道,重要的應用幾乎都是運行在Unix伺服器上面的,這是因為Unix天生就是為伺服器設計的作業系統,他的安全、高效是不用質疑的,後來為了向桌面發展,出現了X Windows,當然,我們可以選擇在啟動系統的時候不啟動X Windows,拋去圖形介面的包袱,系統當然可以跑得更快。而Windows作業系統天生是為桌面設計的,後來為了向伺服器發展,出現了NT系列。當然,現在NT系列的伺服器已經很成熟了,足以和Unix伺服器競爭了。但是,它不是免費的,不僅不免費,而且賣得很貴。所以,選擇Unix/Linux作為伺服器作業系統,是可以為企業節約很多成本的。
本來,Java一設計出來就是可以跨系統運行的,我們完全可以在Windows系統下面進行開發,然後讓程式運行在Linux系統下。但是,畢竟他們還是有少量的差別,比如文件路徑。所以,我們在Linux系統下構建我們的系統,可以保證最大的相容性。
2、有程式員的性格決定的:
程式員有一個性格,那就是喜歡不斷接觸新的東西,我們稱之為駭客文化,或者說是玩家文化。在Linux系統中,你可以毫不費力的得到很多好東西,包括好的軟體、好的代碼、好的思想、好的經驗。如果你喜歡系統編程,Linux自帶gcc;如果你喜歡動態語言,Linux自帶Python、Perl、Ruby;如果你要創建網路應用,Linux自帶httpd、Sendmail等一系列網路軟體;如果你要管理項目,Linux自帶CVS、Subversion、AutoMake。總而言之,只要你感興趣,Linux讓你這一輩子都不會感到枯燥。
我在使用過Linux的命令行介面後,就再也不想去點擊滑鼠了,我覺得雙手不離開鍵盤,做起事情來會更快。
Linux系統本身就有很多的選擇,可以選擇老牌的Red Hat,也可以選擇新秀的Ubuntu,或者Suse也行,社區版的Fedora也可以,當然,也可以選擇像我這樣的國產貨,支援SUN的朋友們當然也可以去使用Sun公司的Solaris,反正現在也開源了,不要錢了。我要說的就是,Red Hat的確是把它的醜堅持到底了,說它介面醜的不止我一個。對於國產貨,我覺得大家不應該有太多的指責,別人已經解決了最重要的中文字體和Qt庫的問題,已經給我們提供了一個很好的基礎,開發應用軟體應該是我們每個程式員的事,開發不出好的應用軟體,我們應該捫心自問,而不是罵別個作業系統廠商。
3、由市場決定的:
很簡單,懂Linux的程式員比不懂Linux更貴。不用多說了。
再來說說劣勢:
1、Windows門檻低,早就有人說過,Unix/Linux系統產生的是對程式員有利的價值,而Windows產生的是對非程式員有利的價值。我們程式員有時候也是非程式員,我們也需要聽歌、看碟、炒股票、打網路遊戲,這個時候,Windows就比Linux俏多了。介面的美觀是一個方面,應用軟體豐富又是一個方面,雖然SuSe的介面已經做得超過XP了,但是你安一個遊戲都要./configure、make、make install半天,還不一定成功,自然是不如Windows爽了。
2、美工和網頁設計師離不開Windows,就拿我自己來說,最喜歡的網頁設計工具依然是Dreamweaver,雖然在Eclipse環境下,依靠HTMLEditor插件的文本著色和自動提示,我依然可以很快速的編寫HTML和CSS,但是找不到一款正宗的可視化網頁設計工具依然不爽。對於喜歡Photoshop的朋友,當然是非Windows不可了。
3、軟體的測試不僅要考慮到FireFox瀏覽器,也要考慮到IE瀏覽器,因此,無論如何,也少不了一台Windows。
總體來說,我們並不需要將所有的工作都搬到Linux平台中,在一個局域網中,只需要一台Linux就足夠了,其餘的都可以是Windows,Linux伺服器主要用來運行Subversion,用來進行每日構建和自動化測試,而Windows則主要是用來開發,當然,也要作為客戶端進行一部分的測試工作。
歡迎大家提出不同意見。
(責任編輯:雲子)