在當今的電子商務開發領域,有兩種較爲常見的語言,即PHP與Java。但對接觸電子商務不久的用戶來講,看到的每每只是它們的表相,或者說只看中項目開發的成本,卻很難看出它們之間的實際差別。其實,PHP+ MySQL高效的開發、品質優良的特性,已經讓風靡大學校園的Java變的愈來愈難堪。而做爲PHP+ MySQL爲何在歷史的進程中,後來居上,獨領風騷呢?爲何基於Java架構的的電子商務除了高額的開發成本,而變的前途暗淡呢?首先得明白PHP和Java之間的差別才行。
一、 出身
Java原本的設計初衷是爲了家用消費電子產品開發一個分佈式代碼系統,而PHP就是爲了互聯網的應用而生的。
二、系統的技術架構比較
分層是將系統進行有效組織的方式,分而治之的思想是計算機領域中很是重要的思想。在好的分層思想引導下,便能實現「高內聚、低耦合」,也能將具體的問題割裂開來,易於控制、易於延展,更易於分配資源。從PHP5版本以後,PHP對於系統架構方面也有了質的飛躍。ShopNC 採用PHP語言開發,能夠完美的實現多層架構分佈。運用MVC的設計模式,可以使電子商務軟件具備更加高效、合理的系統架構。使得系統在可拓展性、需求應變性上與Java編寫的電子商務軟件系統的絕不遜色。
Gutmans 在前年發表過一篇文章,其中也闡述了多核環境中多線程(JVM)與多進程(LAMP)的比較。其中就提到了多核系統很是適合LAMP架構的多進程方式。隨着芯片業如今把主要精力都放在了多核而不是超線程技術上,JVM這樣的多線程環境的優勢在今天的硬件上將沒法充分發揮。而多進程方式將提供更多穩定性和可靠性。
這一回合,PHP旗開得勝。
三、數據庫訪問比較
PHP可編譯成具備與許多數據庫相鏈接的函數。 將本身編寫外圍的函數去間接存取數據庫。經過這樣的途徑當更換使用的數據庫時,能夠輕鬆地修改編碼以適應這樣的變化。同時如今的PHP提供了數據庫統一接 口PDO,對Oracle,MySQL,SQL2000等不一樣數據庫的訪問均可以經過橋來完成,而不用考慮數據庫接口方面問題。同時爲了更好支持 MYSQL數據庫,PHP還推出了MySQLi的數據庫鏈接,更加高效,安全。而Java是經過JDBC來訪問數據庫,經過不一樣的數據庫廠商提供的數據庫 驅動訪問數據庫。而沒有特別的針對性優化。若是一樣是將開發的web應用從MYSQL數據數轉到ORACLE數據,PHP經過PDO的接口,幾乎不用作程序方 面的修改(ShopNC中已經經過自主研發的封裝數據庫層,已經能夠很好的完成對多種數據庫的支持,甚至無需經過PDO)。而Java開發的須要必定的的 更改才能實現。數據庫訪問方式的差別,奠基了PHP開發出的電子商務軟件和Java開發出來的電子商務軟件是2個時代的差距,Java是傳統的一 代,PHP倒是新科技發展的成果,PHP不只可以包容萬物並且速度上穩步提高,效率比Java強悍的多。這一回合,Java稍遜風騷。
四、安全性對比
開源是安全的最大優點,LIUNX 就是一個很是成功的佐證。PHP的開發程序在別人拿到代碼後,能夠很容易的進行修改。而Java開發的程序因爲沒法看到完整的源代碼,只能看到一些編譯好的類文件.class,因此底層架構的諸多隱患都沒法提早預知,一旦發生災難性的錯誤,後果必將及其嚴重。而PHP若是想要加密代碼,也可使用Zend 公司的權威產品zend guard 進行加密,以保證產品的知識產權。若是非要將PHP和Java在安全性上作個比較的話,只能說伯仲之間,若是出差距,也是由開發程序員的水平來決定的。這一回合,二者依舊勢均力敵。
五、互聯網應用方向上的前瞻性和拓展性
從總體來講,PHP適用於互聯網應用,而Java語言設計之初,並非以WEB爲中心,而是以通用服務爲中心。PHP可以將互聯網的應用發揮到淋漓盡致,Java在經過標準的或者非標準的一些框架在迎合WEB應用的需求。
爲何說PHP適合互聯網的應用呢?
首先,PHP對於大型系統負載方面,能夠採用分佈式部署。將數據庫、應用邏輯層和表示邏輯層彼此分開,並將同層的根據流量分開。PHP在這個方面作的很是優異。
其次,PHP提供的數據庫接口衆多且還有統一的接口,要將多個不一樣的數據庫數據統一,不須要花費很大的力氣。而Java也能夠經過Class和EJB 得到規模支持,經過EJB/CORBA以及衆多廠商的ApplicationServer得到結構支持。而與即有老的Java或者.NET 應用程序通信方面,PHP能夠經過即有的API接口進行通信。至於數據的通信所使用的數據無非也都是XML,JSON等。
若是將PHP比做互聯網中的最佳表現獎,具有獨擋一方的能力。那麼Java應該得到的是最沒有創新獎,就如同歐洲中世紀武士,惟有沉重的框架,笨重的效率。
難怪連當年的SUN也在其J2EE方案上支持了JRuby及Jython。而IBM Websphere意識到J2EE在WEB方面的不適應而開啓了Project Zero項目。 結果呢? Project Zero 的首席架構師也是很無奈的公開認可「Java如今能夠認爲只是一種系統語言而不適合構建Web應用」。
其實Java已經在企業級E化和關鍵業務應用中根深葉茂,可是在Web應用上,Java語言市場份額急劇降低,頹勢盡顯。
因此這一回合,Java輸的啞口無言。
六、產品化程度
用Java作開發,幾乎沒有一個程序員會從底層寫起,由於都是即有封裝的類。這實際上是致使Java很難產品化的一個重要緣由。由於幾乎全部的程序員能夠作 的都是比較淺層的應用開發。而就Java的類而言,放到互聯網上,那只有一個沉重能夠形容。而惟一讓Java一直宣稱的跨平臺的優越性,其實那也是對於初 學程序者的一種宣傳,對於資深程序員那就是一個笑話,一條雞肋。經歷了不少大項目的資深開發者都知道,開發伊始,程序須要跑在什麼平臺上,都是肯定的了。 越是大型項目,越是肯定的明確,並且輕易不會考慮平臺的移植。即使須要在其餘平臺架設新服務,也是在新平臺上進行增項的開發,與即有產品之間也能夠經過 Webservice解決。而數據庫是無所謂的。我想不會有人用ACCESS來作大型商業程序的開發吧!
隨着大多數業務應用程序包括CRM、ERP、報表、文檔管理等等也都轉向了Web,放眼望去,PHP的產品,琳琅滿目,在互聯網應用方面,能夠負責的說, 涵蓋率在99%以上。雖然衆多產品的質量也是良莠不齊,可是每一個方向及領域都是有那麼一些表明產品的。能舉出範例的有Wordpress, Drupal, mediaWiki, osCommerce, SugarCRM,Discuz, QeePHP,ShopNC等等。
產品化程度是直接佐證了工業化程度的一個重要數據。不能工業化的工具,其實其自己是有着很是大的悲哀的。
這一回合,Java輸的體無完膚。
七、開發及後續維護成本比較
既然PHP在互聯網應用諸多方面都強於Java,那麼Java開發出的電子商務產品何以與PHP產品競爭呢?這在於Java陣營廣泛走的是政府路線, 而PHP陣營走的是全民路線。Java在互聯網方面靠的是大學老師的言傳身教,才得以在互聯網世界狺狺狂嘯,而PHP是靠得是自身品質而得民心,因此才一路讚歌。
軟件價格的高低很大程度上和自身成本和功能相掛鉤。PHP的入門門檻較低,可是任何方面成爲高手,都是萬里挑一。絕大多數學過c的程序員都很容易轉型爲PHP程序員,這使得PHP程序員如同國球同樣普及,一樣更是高手如雲,高質量的PHP軟件產品也層出不窮。
服務器成本方面,PHP最經典的組合PHP+ MySQL + Apache,Java也是常常與MySQL + Tomcat、JBoss等軟件配合。全部軟件都是開源免費的,因此服務器端的投入都並不高。
而Java程序員的學習成 本倒是PHP成本的幾倍,緣由也很晴朗,自己Java就不是專門給WEB開發用的。因此,Java開發電子商務的成本要遠遠高於PHP開發出來的同類軟件 產品。但也正因爲Java開發的成本較高,因此每每也是作一個一樣的產品,達到一樣的效果,Java須要付出比PHP開發多出N倍的時間及經濟成本。直接的形成了巨大的時間及成本浪費。
最後一回合,Java在WEB之戰中,輸的乾乾淨淨。
經過以上數據也可讓讀者很是清楚的意識到,採購了Java類的電子商務商品,你未來後續的維護期帶來多麼昂貴的經濟成本,及付出多少寶貴的時間。商機是稍縱即逝的,若是商業上的運做永遠須要在等待漫長的技術實現後才能夠施展,那恐怕真的是黃花菜都涼了。
不怕不識貨,就怕貨比貨。PHP開發出來的產品應用普及,口碑良好,可是Java開發出來的產品,很難造成規模,直接致使產品化的少,項目類型的多。正因 爲PHP開發的產品總體性能經歷了萬千使用者的檢驗與完善。Java與之相比則相去甚遠,因此Java只有走政府路線,以價格落差來平衡採購方的心態,也 就不足爲奇了。
總結全部一切,PHP纔是的電子商務軟件發展的最有力推進者,也將必然成爲大勢所趨,是不可逆轉的,是不可被質疑的。
做爲程序員,不管PHP仍是Java。高度這個問題上,其實對於咱們而言都同樣的。在這個高度上的戰爭實際上是各大廠商之間的事情,和咱們無關。可是例如WEB方面。我仍是要爲本身的陣營搖旗吶喊!
程序員