Java有能力抵擋LAMP的進攻嗎?

  【IT168 專稿】隨着互聯網開源潮流的迅速發展,全球IT業正迎來一個新的發展格局成長期。對全球的開源體系——LAMP(Linux、Apache、MYSQL、PHP)而言,其所代表的開源軟件及應用,以其開放性、低成本、安全性、適用性以及可靠性能,正對傳統軟件、硬件和系統集成商產生巨大的衝擊,同時,也給創新型IT企業、程序開發者創造了前所未有的機遇。作爲軟件行業風尖浪口的Java,幾多褒貶,幾多稱讚。Java有能力抵擋LAMP的進攻嗎?或是LAMP、.Net與Java將三分天下乎?難道昔日”酷斃了”的Java已經成爲過時技術了嗎?

       LAMP宣稱,在Linux系統下開發軟件不再需要層的概念了,Java不再是唯一的選擇了。在本文中,筆者將對LAMPJava這兩種語言進行詳細的比較。比較將涉及到這兩種語言的起源、特點及各自的優劣勢等方面的內容。希望通過這樣的比較,讓讀者瞭解這兩種語言各自的特點,以便於在自己的項目中,根據實際情況,儘快的看清軟件語言的發展趨勢。
 
一、       引言
 
1998年,Michael Kunze爲德國計算機雜誌c't寫了一篇關於Free 軟件如何成爲商業軟件替代品的文章時,創建了LAMP這個名詞,Linux 操作系統、Apache網絡服務器、MySQL數據庫PHP PerlPython)腳本語言組合而成的——LAMP (四種技術的開頭字母組成),隨之LAMP技術成爲了自由軟件業的一盞真正的明燈。
LAMP 在英語中是“燈”的意思,但是在 IT 行業當然不是那麼簡單的一個意思。這個術語在德國十分流行。代表了 Linux 平臺上的 Apache 網站服務器; MySQL 數據庫以及 Perl Python 或者 PHP 編程語言的結合。筆者相信,這個術語也會在我們中國的開放源代碼界,乃至整個網絡界開始流行,LAMP 不僅會成爲企業上網,政府上網的“明燈”,也應該會在企業內部實施的 Intranet 大有作爲。
LAMP開源軟件——包括Linux 操作系統、Apache網絡服務器、MySQL 數據庫和PHP ——正在進軍主流計算市場。
Java.Net 工具一統商業軟件開發領域已數年,但是具有易於開發、更新速度快、成本低的特點,LAMP被許多開發者視爲“黃金組合”,在近幾年中由LAMP集體開源廠家,或者確切的說LAMP開源自由社區吹響向主流計算市場發起進攻的號角。甚至在2005年的TechEd大會上,微軟總裁鮑爾默以“微軟有能力抵擋LAMP的進攻”的用詞,將LAMP列爲Windows 和它的.Net 開發軟件的競爭者。IBMIntelHPSUN等衆多廠家提出開源貢獻口號,收購開源公司;IntelSAP投資PHP公司Zend科技;LAMP的開源和發展潛力可見風頭正盛。
LAMP 所代表的不僅僅是開放源碼,它更是開發和實施高性能 Web 應用的重要平臺。如果說 Apache 能代表 LAMP 的佔有率的話,那麼,採用 LAMP 的站點幾乎就已經是佔據了主要的市場,看看 Netcraft 每月的調查就可以知道 Apache 的流行程度。國外的開放源碼站點,例如 ApacheweekMySQL.comPerl.com 等自不必說,現在國內的很多站點也開始撲向 LAMP
LAMP 無論是性能、質量,還是價格都應該是企業/政府部門上網所必須考慮的平臺,LAMP 更應該是 IT 行業,特別是系統集成商所必須選擇和比較的平臺。
二、       Java的反應
 
人生的經驗告訴我們,任何一種處於支配地們的主流技術,只要它顯露出一點點的進展緩慢時,就有可能出現一種新概念或是技術,來一個落井下石。筆者認爲,Java經歷了一場場的良性競爭,並取得了良好的效果。同時,在一些其它領域如高性能的計算機上,Java正在發揮它的優勢,而在某些方面如J2MEJava正在快速的發展。
Java具有良好的開源社區支持,是如此的靈活。看一看Sourceforge,就會明白,沒有任何一種語言像Java一樣,有如此多的開源組件與軟件可以利用。那麼Java沒有LAMP所宣稱的優勢嗎?我們可以一一分析一下。
L——Java可以更加優秀的運行在Linux系統上。A——Java社區的Tomcat是最優秀的應用服務器之一。M——Java有非常高效的MySQL驅動。P——Java支持許多腳本語言,並且正處於快速的發展之中。同時,Java緊密整合與支持LAMP的堆棧。
也許有很多Java的反對者聲稱,Java使用的容易性向來是Java普及的最大障礙。而Java的應變之道不是改變語言本身使它變簡單,因爲如果把它變簡單了,它處理高階事務的能力也就被削弱了。Java把重點放在工具的簡單性上。如果用Java Studio Creator,就可以用拖放(drag and drop)來寫成AJAX元件和資料庫存取等內容,訂製網頁也相當快。這樣做的好處是工具把複雜的東西都做掉了,開發人員把應用部署在一個具有錯誤轉移(failover)、遠端管理的集成系統上,然後就無需做一大堆事情,很多事都省掉。
有太多的人說,Java寫某些東西很好,但Web開發方面就沒那麼好,反而是其它開發語言及框架則比較強。很多開發人員採用PHP 來製作網頁。PHP語言是完全用在Web開發上,如果想產生一個網頁,PHP真的很好用,它簡直就是JSP (Java Serer Page)的雙胞胎。
但是,開發人員不可能只有做網頁而已。一旦開始做大量分析或與其它系統整合,需要涉及到底層的數據分析時,光用PHP之類的東西就很難了,則需要採用Java代碼來完成。通常的情況並不是一種技術替代另外一種技術,而是一種技術補充另外一種技術,發揮相乘相加效果。最常看到的是在網頁上用PHP,在後端資料分析上用的是Java
Java正在失去發展動力嗎?筆者絕對不能同意Java正在走下坡路的觀點。Java到生命盡頭了嗎?不!Java的火爆纔剛剛開始。在大型、複雜的企業級應用領域,Java仍是主流的開發工具,此外,Java在手機平臺上越來越受到歡迎。據悉,目前全球有600多款手機運行Java虛擬機,全球10大手機遊戲中有7款是採用Java開發。同時,Java已經成爲多數科學研究和計算使用的首選語言。在大學中有越來越多的人在使用Java語言,越來越多的尖端學術研究完全使用Java語言;各個行業的公司都有很多的Java程序員在開發他們的項目。
二、       Java的反應
 
人生的經驗告訴我們,任何一種處於支配地們的主流技術,只要它顯露出一點點的進展緩慢時,就有可能出現一種新概念或是技術,來一個落井下石。筆者認爲,Java經歷了一場場的良性競爭,並取得了良好的效果。同時,在一些其它領域如高性能的計算機上,Java正在發揮它的優勢,而在某些方面如J2MEJava正在快速的發展。
Java具有良好的開源社區支持,是如此的靈活。看一看Sourceforge,就會明白,沒有任何一種語言像Java一樣,有如此多的開源組件與軟件可以利用。那麼Java沒有LAMP所宣稱的優勢嗎?我們可以一一分析一下。
L——Java可以更加優秀的運行在Linux系統上。A——Java社區的Tomcat是最優秀的應用服務器之一。M——Java有非常高效的MySQL驅動。P——Java支持許多腳本語言,並且正處於快速的發展之中。同時,Java緊密整合與支持LAMP的堆棧。
也許有很多Java的反對者聲稱,Java使用的容易性向來是Java普及的最大障礙。而Java的應變之道不是改變語言本身使它變簡單,因爲如果把它變簡單了,它處理高階事務的能力也就被削弱了。Java把重點放在工具的簡單性上。如果用Java Studio Creator,就可以用拖放(drag and drop)來寫成AJAX元件和資料庫存取等內容,訂製網頁也相當快。這樣做的好處是工具把複雜的東西都做掉了,開發人員把應用部署在一個具有錯誤轉移(failover)、遠端管理的集成系統上,然後就無需做一大堆事情,很多事都省掉。
有太多的人說,Java寫某些東西很好,但Web開發方面就沒那麼好,反而是其它開發語言及框架則比較強。很多開發人員採用PHP 來製作網頁。PHP語言是完全用在Web開發上,如果想產生一個網頁,PHP真的很好用,它簡直就是JSP (Java Serer Page)的雙胞胎。
但是,開發人員不可能只有做網頁而已。一旦開始做大量分析或與其它系統整合,需要涉及到底層的數據分析時,光用PHP之類的東西就很難了,則需要採用Java代碼來完成。通常的情況並不是一種技術替代另外一種技術,而是一種技術補充另外一種技術,發揮相乘相加效果。最常看到的是在網頁上用PHP,在後端資料分析上用的是Java
Java正在失去發展動力嗎?筆者絕對不能同意Java正在走下坡路的觀點。Java到生命盡頭了嗎?不!Java的火爆纔剛剛開始。在大型、複雜的企業級應用領域,Java仍是主流的開發工具,此外,Java在手機平臺上越來越受到歡迎。據悉,目前全球有600多款手機運行Java虛擬機,全球10大手機遊戲中有7款是採用Java開發。同時,Java已經成爲多數科學研究和計算使用的首選語言。在大學中有越來越多的人在使用Java語言,越來越多的尖端學術研究完全使用Java語言;各個行業的公司都有很多的Java程序員在開發他們的項目。
四、       LAMP組合利弊談
 
LAMP組合正在逐漸獲得市場認可,但是它已經具有追上非開源競爭者的實力嗎?生活中最好的東西真的是免費的嗎?開源支持者們當然原意讓我們相信這一點。多年以來,他們已經將不斷改進的LAMP組合作爲構建商業系統並使之運轉的一條免費之路。
但是LAMP組合也有一些潛在的缺點。開源組合和私有軟件的一個明顯區別在於新特性。私有軟件提供商的發展依賴於增長率,也就是說需要不斷增加銷售額。這就使得他們要不斷開發新品。另一方面,開源開發沒有這樣的環境,就是說創新的步伐經常要慢許多。你很少看到走在前沿的創新是開源產品。例如,在微軟在SQL Server中開發XML作爲一個本地數據類型的時候,開源MySQL數據庫纔剛剛將存儲程序作爲一個新特性,這比它的競爭對手落後了好幾代。
同時擴展可能是對LAMP用戶的一個挑戰。使用集羣計算機或刀片服務器和諸如Red Hat Linux這樣的企業級系統擴展到LAMP系統是可能的,但是這並不容易。
在許多公司,LAMP仍然沒有得到正式認可。但是在開源開發模式中,人人都可以做出貢獻,這將推動LAMPJava.Net 更快的前進。不過,LAMP也不可能把現有的Java.Net兩大陣營消滅,因爲大的公司客戶都不會只採用一套軟件。
應用促進開源發展,理念走向務實應用。與歐美相比,國內的LAMP架構在企業關鍵應用中的應用還有待提高。目前我國LAMP應用存在的問題:國內開源數據庫的應用已經開始起步了,但是開發還沒有和開源技術掛鉤。LAMP要發展,能否做出商業軟件是關鍵。
LAMP的商業化過程存在嚴重的問題。例如,PHP的產品給人留下的似乎就是,技術很好,但是客戶體驗服務沒跟上,包括安裝提示,升級以及Bug反饋等等服務都很粗糙,客戶寧願去選中商業化更濃的Java .Net
 
五、       結論
 
毫無疑問的是,LAMP組合擁有其自身的價值,但是要小心地使用它。它是爲新興商業系統和概念業務系統的可行性尋找證據的優秀工具,但是它也需要適當的關心和關注以變得更加高效。
在企業級開發,Java毫無疑問是完全佔據優勢的。Dyanimics Groovy Java 可以較大提升的一個地方,這使得Java更加動態,更適應小型應用。而EJB這些,就更不用說了,LAMP.Net,基本上是不適用了。PHP很受歡迎,只是證明了PHP在很多簡單應用上,開發者上手比較快而已。最關鍵的是,PHPJAVA也不是一個層面比較的東西,如果要比較,那麼就是MODE-1JSPPHP比較。特別是O/R AOPMVC PatternsXML config filesTag libraries 等,在PHP中要實現還是要很長一段時間。
套用一句俗話“只要努力,就會更好”。Java有潛力成爲從PDA到服務器任何領域都非常成功的平臺。Java可以繼續在其佔優勢的服務器端發展下去。還可以通過優化客戶端程序的發佈及安裝使Java在客戶端開發方面一樣獲得成功。不管現在的情況如何,筆者相信Java有能力成爲一個完美的平臺。通過不斷的完善,降低開發人員入門的難度,提供對所有的平臺和操作系統的支持,以及提供對更多語言的支持,Java平臺將可以適應任何層次任何領域的開發。通過對客戶端平臺的優化JavaPC和移動設備領域中也會獲得巨大的成功。
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章