<abbr id="ciwa6"><option id="ciwa6"></option></abbr>
  • <sup id="ciwa6"><kbd id="ciwa6"></kbd></sup>
    <small id="ciwa6"></small>
  • 千鋒教育-做有情懷、有良心、有品質的IT職業教育機構

    你所在的位置:首頁 > 常見問題

    php和java的一些比較

    時間:2017-12-08 15:29:46 來源:千鋒教育  作者:千鋒

       現在市場上的電子商務軟件基本上可歸結為兩大陣營,即PHP陣營和Java陣營。但對接觸電子商務不久的用戶來說,看到的往往只是它們的表相,只是明顯的價格差異,卻很難看出它們之間的實際差異。其實,PHP+ MySQL的開發、品質優良的特性,已經讓風靡大學校園的Java變的越來越難堪。而作為PHP+ MySQL為什么在歷史的進程中,后來居上,獨領風騷呢?為什么基于Java架構的的電子商務除了高額的開發成本,而變的前途暗淡呢?首先得明白PHP和Java之間的差異才行。

      1、 出身

      Java本來的設計初衷是為了家用消費電子產品開發一個分布式代碼系統。

      PHP就是為了互聯網的應用而生的。

      2、系統的技術架構比較

      分層是將系統進行有效組織的方式,分而治之的思想是計算機領域中非常重要的思想。在好的分層思想引導下,便能實現“高內聚、低耦合”,也能將具體的問題割 裂開來,易于控制、易于延展,易于分配資源。從PHP5版本之后,PHP對于系統架構方面也有了質的飛躍。ShopNC 采用PHP語言開發,可以的實現多層架構分布。運用MVC的設計模式,可使電子商務軟件具有加、合理的系統架構。使得系統在可拓展性、需求應變性上與Java編寫的電子商務軟件系統的毫不遜色。

      Gutmans 在前年發表過一篇文章,其中也闡述了多核環境中多線程(JVM)與多進程(LAMP)的比較。其中就提到了多核系統非常適合LAMP架構的多進程方式。隨著芯片業現在把主要精力都放在了多核而不是超線程技術上,JVM這樣的多線程環境的優點在今天的硬件上將無法充分發揮。而多進程方式將提供多穩定性和可靠性。

      這一回合,PHP旗開得勝。

      3、數據庫訪問比較

      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稍遜風騷。

      4、安全性對比

      開源是安全的大優勢,LIUNX 就是一個非常成功的佐證。PHP的開發程序在別人拿到代碼后,可以很容易的進行修改。而Java開發的程序由于無法看到完整的源代碼,只能看到一些編譯好的類文件.class,所以底層架構的諸多隱患都無法提前預知,一旦發生災難性的錯誤,后果必將及其嚴重。而PHP如果想要加密代碼,也可以使用Zend 公司的權威產品zend guard 進行加密,以產品的知識產權。如果非要將PHP和Java在安全性上做個比較的話,只能說伯仲之間,如果出差距,也是由開發程序員的水平來決定的。這一回合,兩者依舊平分秋色。

      5、互聯網應用方向上的前瞻性和拓展性

      從整體來說,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輸的啞口無言。

      6、產品化程度

      用Java做開發,幾乎沒有一個程序員會從底層寫起,因為都是即有封裝的類。這其實是導致Java很難產品化的一個重要原因。因為幾乎所有的程序員可以做 的都是比較淺層的應用開發。而就Java的類而言,放到互聯網上,那只有一個沉重可以形容。而唯一讓Java一直宣稱的跨平臺的優越性,其實那也是對于初 學程序者的一種宣傳,對于資深程序員那就是一個笑話,一條雞肋。經歷了很多大項目的資深開發者都知道,開發伊始,程序需要跑在什么平臺上,都是確定的了。 越是大型項目,越是確定的明確,而且輕易不會考慮平臺的移植。即便需要在其他平臺架設新服務,也是在新平臺上進行增項的開發,與即有產品之間也可以通過 Webservice解決。而數據庫是無所謂的。我想不會有人用ACCESS來做大型商業程序的開發吧!

      隨著大多數業務應用程序包括CRM、ERP、報表、文檔管理等等也都轉向了Web,放眼望去,PHP的產品,琳瑯滿目,在互聯網應用方面,可以負責的說, 涵蓋率在99%以上。雖然眾多產品的質量也是參差不齊,但是每個方向及領域都是有那么一些代表產品的。能舉出范例的有Wordpress, Drupal, mediaWiki, osCommerce, SugarCRM,Discuz, QeePHP,ShopNC等等。

      產品化程度是直接佐證了工業化程度的一個重要數據。不能工業化的工具,其實其本身是有著非常大的悲哀的。

      這一回合,Java輸的體無完膚。

      7、開發及后續維護成本比較

      既然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方面。我還是要為自己的陣營搖旗吶喊!

    熱帖推薦

    • 成都地址:成都市武侯區科華北路62號力寶大廈N(北樓)18樓
      面授課程:iOS課程培訓、Android課程培訓、HTML5課程培訓、UI課程培訓
    • 北京天豐利校區:北京市海淀區寶盛北里西區28號天豐利商城4層
      北京沙河校區:北京市昌平區沙陽路18號北京科技職業技術廣場服務樓2層、南區服務樓2層
      咨詢電話:400-654-7778 010-82790226-801
      面授課程:iOS培訓、Android培訓、HTML5培訓、UI培訓、PHP培訓、JavaEE培訓、好程序員
    • 深圳科技園校區:深圳市南山區科苑南路高新技術產業園R3-B棟5層
      深圳大學城校區:深圳市南山區留仙大道1201號大學城創客小鎮16棟2樓、3樓
      深圳西部硅谷校區:深圳市寶安區寶安大道5010號西部硅谷B座A605-619
      咨詢電話:0755-86681178/9-801
      面授課程:iOS培訓、Android培訓、HTML5培訓、UI培訓、PHP培訓、JavaEE培訓、好程序員
    • 上海地址:上海市寶山區同濟支路199號智慧七立方3號樓2-4層
      咨詢電話:400-627-7899 021-65025129-602
      面授課程:iOS課程培訓、Android課程培訓、HTML5課程培訓、好程序員
    • 鄭州地址:鄭州市金水區緯五路21號河南教育綜合樓(經緯中學樓)6/7/8層
      咨詢電話:0371-55911950 400-654-7778
      面授課程:iOS課程培訓、Android課程培訓、HTML5課程培訓、UI課程培訓
    • 廣州地址:廣州市天河區元崗路310號智匯park創意園E座5層
      咨詢電話:020-22119207 400-654-7778
      面授課程:iOS課程培訓、Android課程培訓、HTML5課程培訓
    • 大連地址:大連市甘井子區軟件園路2號B8座二樓
      咨詢電話:0411-39026086 400-654-7778
      面授課程:iOS課程培訓、Android課程培訓、HTML5課程培訓
    • 武漢地址:武漢市東新區光谷大道77號金融港B26棟9樓
      咨詢電話:027-59905909 027-59905908 027-59905902
      面授課程:iOS課程培訓、Android課程培訓、HTML5課程培訓
    • 西安南二環校區:西安市二環南路西段60號永安大廈4層
      西安科技園校區:西安市雁塔區高新六路52號立人科技園C座西區4層
      咨詢電話:029-85260160 029-85261030 029-85260960
      面授課程:iOS課程培訓、Android課程培訓、HTML5課程培訓
    • 杭州地址:浙江省杭州市江干區九堡旺田書畫城A座4層
      咨詢電話:0571-86893632 010-82790226-801
      面授課程:iOS課程培訓、Android課程培訓
    • 青島校區地址:青島市市南區金壇路17號青島職業技術南校區實訓樓A4層
      咨詢電話:0532-80910752/3 010-82790226-801
      面授課程:iOS課程培訓、Android課程培訓
    • 掃碼匿名提建議
      直達CEO信箱