1. 程式人生 > 實用技巧 >PHP.vs.JAVA

PHP.vs.JAVA

2019獨角獸企業重金招聘Python工程師標準>>> hot3.png

23230642_7IRu.jpg23230642_vcyk.jpg

現在市場上的OA基本上可歸結為兩大陣營,即php陣營和java陣營。但對接觸Oa不久的使用者來說,看到的往往只是它們的表相,只是明顯的價格差異,卻很難看出它們之間的實際差異。其實,PHP+MYSQL不值錢不僅僅侷限於oa軟體,而是整體上PHP+MYSQL開發的軟體都不如java開發的軟體值錢。為什麼PHP+MYSQLOA為什麼不值錢呢?首先得明白phpjava之間的差異才行。

  1、系統的技術架構比較

  分層是將系統進行有效組織的方式,分而治之的思想是計算機領域中非常重要的思想。在好的分層思想引導下,便能實現“高內聚、低耦合”,也能將具體的問題割裂開來,易於控制、易於延展,更易於分配資源。PHP

只能實現簡單的分散式兩層或三層的架構,而JAVA在這方面就十分強大,可以實現多層的網路架構。運用MVC的設計模式,可使oa系統具有更加高效、合理的系統架構。技術架構的落後,使運用php編寫的oa軟體系統先天不足,而後天又無法補足其先天上的劣勢。使得系統在可拓展性、需求應變性上與JAVA編寫的oa軟體系統的差距越來越大。架構的差距,註定了php做的oa充其量是個小家碧玉,始終無法和java這種大家閨秀同臺競技。

  2、資料庫訪問比較

  PHP可編譯成具有與許多資料庫相連線的函式。將自己編寫外圍的函式去間接存取資料庫。通過這樣的途徑當更換使用的資料庫時,可以輕鬆地修改編碼以適應這樣的變化。但

PHP提供的資料庫介面支援彼此不統一,比如對Oracle,MySQLSybase的介面,彼此都不一樣。由於PHP對於不同的資料庫採用不同的資料庫訪問介面,所以資料庫訪問程式碼的通用性不強。

  而Java通過JDBC來訪問資料庫,通過不同的資料庫廠商提供的資料庫驅動方便地訪問資料庫,訪問資料庫的介面比較統一。如果同樣是將開發的web應用從MYSQL資料數轉到ORACLE資料,PHP需要做大量的修改工作,而且比較繁瑣。但JAVA開發的便只需要很少的更改便能實現。

  資料庫訪問方式的差異,奠定了php開發出的oajava開發出來的oa是馬車和火車的差距,前者只能亦步亦趨而且額度有限,後者卻是工業化的結晶,不僅能夠包容萬物而且速度上穩步提升。

  3、安全性對比

  在同是開源和跨平臺的java面前,php丟掉了很多的優勢。在程式碼的安全性上尤為突出。php的開發程式在別人拿到程式碼後,可以很容易的進行修改。而java開發的程式由於無法看到完整的原始碼,只能看到一些編譯好的類檔案,所以安全性較高。加之系統架構的優勢,在安全性上phpjava是相去甚遠。

  如果非要將phpjava在安全性上做個比較的話,同一個小偷光顧php那是隨便拿來隨便改,想拿什麼拿什麼,拿的高興還能大筆一輝某某到此一遊。而光顧java的時候,便會發現警察把守,內設自動報警裝置,即便突破重重阻擾後進入居室。那值錢的東西都放在加密後的保險櫃中,只能望洋興嘆、鎩羽而歸。

  4、前瞻性和拓展性

  從整體來說,php適用於中小型系統,而java適用於大型系統。Php能夠將單一的事件做好,但卻不適合完成整合度較高的多項併發事件。為什麼說php適合中小型系統而不適合做大系統呢?

  首先,php缺乏多層結構支援。而對於大型的系統負荷站點,只能採用分佈計算。將資料庫、應用邏輯層和表示邏輯層彼此分開,並將同層的根據流量分開,組成二維陣列。而php恰恰缺乏這種支援。

  其次,PHP提供的資料庫介面不統一,要將多個不同的資料庫資料統一需要花費很大的力氣。而JAVA則沒有這種缺陷,可通過SUNJavaJavaClassEJB獲得規模支援,通過EJB/CORBA以及眾多廠商的ApplicationServer獲得結構支援。如IBMEbusiness,它的核心是採用JSP/ServletWebSphere,是通過CGI來提供支援的。

  如果將Php比作將才,具備獨擋一方的能力。那麼java便是帥才,具有較好的前瞻性和拓展性,整體佈局和協同能力強。能夠指揮千軍萬馬,最後逐鹿中原。

  5、開發成本比較

  既然php在諸多方面都不如java優異,那麼php開發出的oa產品何以與java產品競爭呢?在於Php陣營普遍走的是低端路線,而java陣營走的是中高階路線。兩者之間交叉的區域較小。

  軟體價格的高低很大程度上和自身成本和功能相掛鉤。php的入門門檻較低,絕大多數學過c的程式設計師都很容易轉型為php程式設計師,這使得php程式設計師的泛濫成災的同時,低成本的php軟體產品也層出不窮。以PHP最經典的組合PHP+MySQL+Apache為例,由於所有軟體都是開源免費的,所以投入並不高。

  而java開發需要特定的環境,成長為一個合格的java程式設計師需要一定的時間,java程式設計師的成本也是php成本的幾倍。Javaweb應用伺服器免費的有TomcatJBoss等,而要想具有很好的商業化服務便必須選用WebSphereWeblogic。這其中投入的成本無形中便超是php成本的N倍。所以,java開發oa的成本要遠遠高於php開發出來的同類軟體產品。但也正由於java開發的成本較高,很難實現抄襲和短期內逾越的可能,也使得java用開發出的產品門檻更高。

  不怕不識貨,就怕貨比貨。Php開發出來的產品也能用,但是和java開出的同類產品是沒法比較的。正因為php開發的產品整體效能和java開發的相去甚遠,所以php運用低成本的低價優勢和同類的java產品抗爭,以價格落差來平衡購買者的心態。所以,PHP+MYSQLOA不值錢也就不足為怪了

轉載於:https://my.oschina.net/ichaoge/blog/146576