PHP.vs.JAVA
現(xiàn)在市場(chǎng)上的OA基本上可歸結(jié)為兩大陣營,即php陣營和java陣營。但對(duì)接觸Oa不久的用戶來說,看到的往往只是它們的表相,只是明顯的價(jià)格差異,卻很難看出它們之間的實(shí)際差異。其實(shí), PHP + MYSQL 不值錢不僅僅局限于oa軟件,而是整體上PHP + MYSQL開發(fā)的軟件都不如java開發(fā)的軟件值錢。為什么PHP + MYSQL 的OA為什么不值錢呢?首先得明白php和java之間的差異才行。
1、系統(tǒng)的技術(shù)架構(gòu)比較
分層是將系統(tǒng)進(jìn)行有效組織的方式,分而治之的思想是計(jì)算機(jī)領(lǐng)域中非常重要的思想。在好的分層思想引導(dǎo)下,便能實(shí)現(xiàn)“高內(nèi)聚、低耦合”,也能將具體的問題割裂開來,易于控制、易于延展,更易于分配資源。PHP只能實(shí)現(xiàn)簡(jiǎn)單的分布式兩層或三層的架構(gòu),而JAVA在這方面就十分強(qiáng)大,可以實(shí)現(xiàn)多層的網(wǎng)絡(luò)架構(gòu)。運(yùn)用MVC的設(shè)計(jì)模式,可使oa系統(tǒng)具有更加高效、合理的系統(tǒng)架構(gòu)。技術(shù)架構(gòu)的落后,使運(yùn)用php編寫的oa軟件系統(tǒng)先天不足,而后天又無法補(bǔ)足其先天上的劣勢(shì)。使得系統(tǒng)在可拓展性、需求應(yīng)變性上與JAVA編寫的oa軟件系統(tǒng)的差距越來越大。架構(gòu)的差距,注定了php做的oa充其量是個(gè)小家碧玉,始終無法和java這種大家閨秀同臺(tái)競(jìng)技。
2、數(shù)據(jù)庫訪問比較
PHP可編譯成具有與許多數(shù)據(jù)庫相連接的函數(shù)。將自己編寫外圍的函數(shù)去間接存取數(shù)據(jù)庫。通過這樣的途徑當(dāng)更換使用的數(shù)據(jù)庫時(shí),可以輕松地修改編碼以適應(yīng)這樣的變化。但PHP提供的數(shù)據(jù)庫接口支持彼此不統(tǒng)一,比如對(duì)Oracle, MySQL,Sybase的接口,彼此都不一樣。由于PHP對(duì)于不同的數(shù)據(jù)庫采用不同的數(shù)據(jù)庫訪問接口,所以數(shù)據(jù)庫訪問代碼的通用性不強(qiáng)。
而Java通過JDBC來訪問數(shù)據(jù)庫,通過不同的數(shù)據(jù)庫廠商提供的數(shù)據(jù)庫驅(qū)動(dòng)方便地訪問數(shù)據(jù)庫,訪問數(shù)據(jù)庫的接口比較統(tǒng)一。如果同樣是將開發(fā)的web應(yīng)用從MYSQL數(shù)據(jù)數(shù)轉(zhuǎn)到ORACLE數(shù)據(jù),PHP需要做大量的修改工作,而且比較繁瑣。但JAVA開發(fā)的便只需要很少的更改便能實(shí)現(xiàn)。
數(shù)據(jù)庫訪問方式的差異,奠定了php開發(fā)出的oa和java開發(fā)出來的oa是馬車和火車的差距,前者只能亦步亦趨而且額度有限,后者卻是工業(yè)化的結(jié)晶,不僅能夠包容萬物而且速度上穩(wěn)步提升。
3、安全性對(duì)比
在同是開源和跨平臺(tái)的java面前,php丟掉了很多的優(yōu)勢(shì)。在代碼的安全性上尤為突出。php的開發(fā)程序在別人拿到代碼后,可以很容易的進(jìn)行修改。而java開發(fā)的程序由于無法看到完整的源代碼,只能看到一些編譯好的類文件,所以安全性較高。加之系統(tǒng)架構(gòu)的優(yōu)勢(shì),在安全性上php和java是相去甚遠(yuǎn)。
如果非要將php和java在安全性上做個(gè)比較的話,同一個(gè)小偷光顧php那是隨便拿來隨便改,想拿什么拿什么,拿的高興還能大筆一輝某某到此一游。而光顧java的時(shí)候,便會(huì)發(fā)現(xiàn)警察把守,內(nèi)設(shè)自動(dòng)報(bào)警裝置,即便突破重重阻擾后進(jìn)入居室。那值錢的東西都放在加密后的保險(xiǎn)柜中,只能望洋興嘆、鎩羽而歸。
4、前瞻性和拓展性
從整體來說,php適用于中小型系統(tǒng),而java適用于大型系統(tǒng)。Php能夠?qū)我坏氖录龊?,但卻不適合完成集成度較高的多項(xiàng)并發(fā)事件。為什么說php適合中小型系統(tǒng)而不適合做大系統(tǒng)呢?
首先, php缺乏多層結(jié)構(gòu)支持。而對(duì)于大型的系統(tǒng)負(fù)荷站點(diǎn),只能采用分布計(jì)算。將數(shù)據(jù)庫、應(yīng)用邏輯層和表示邏輯層彼此分開,并將同層的根據(jù)流量分開,組成二維數(shù)組。而php恰恰缺乏這種支持。
其次,PHP提供的數(shù)據(jù)庫接口不統(tǒng)一,要將多個(gè)不同的數(shù)據(jù)庫數(shù)據(jù)統(tǒng)一需要花費(fèi)很大的力氣。而JAVA則沒有這種缺陷,可通過SUN Java的Java Class和EJB獲得規(guī)模支持,通過EJB/CORBA以及眾多廠商的Application Server獲得結(jié)構(gòu)支持。如IBM的E-business,它的核心是采用JSP/Servlet的Web Sphere,是通過CGI來提供支持的。
如果將Php比作將才,具備獨(dú)擋一方的能力。那么java便是帥才,具有較好的前瞻性和拓展性,整體布局和協(xié)同能力強(qiáng)。能夠指揮千軍萬馬,最后逐鹿中原。
5、開發(fā)成本比較
既然php在諸多方面都不如java優(yōu)異,那么php開發(fā)出的oa產(chǎn)品何以與java產(chǎn)品競(jìng)爭(zhēng)呢?在于Php陣營普遍走的是低端路線,而java陣營走的是中高端路線。兩者之間交叉的區(qū)域較小。
軟件價(jià)格的高低很大程度上和自身成本和功能相掛鉤。php的入門門檻較低,絕大多數(shù)學(xué)過c的程序員都很容易轉(zhuǎn)型為php程序員,這使得php程序員的泛濫成災(zāi)的同時(shí),低成本的php軟件產(chǎn)品也層出不窮。以PHP最經(jīng)典的組合PHP + MySQL + Apache為例,由于所有軟件都是開源免費(fèi)的,所以投入并不高。
而java開發(fā)需要特定的環(huán)境,成長(zhǎng)為一個(gè)合格的java程序員需要一定的時(shí)間,java程序員的成本也是php成本的幾倍。Java的web應(yīng)用服務(wù)器免費(fèi)的有Tomcat、JBoss等,而要想具有很好的商業(yè)化服務(wù)便必須選用Web Sphere和 Web logic。這其中投入的成本無形中便超是php成本的N倍。所以,java開發(fā)oa的成本要遠(yuǎn)遠(yuǎn)高于php開發(fā)出來的同類軟件產(chǎn)品。但也正由于java開發(fā)的成本較高,很難實(shí)現(xiàn)抄襲和短期內(nèi)逾越的可能,也使得java用開發(fā)出的產(chǎn)品門檻更高。
不怕不識(shí)貨,就怕貨比貨。Php開發(fā)出來的產(chǎn)品也能用,但是和java開出的同類產(chǎn)品是沒法比較的。正因?yàn)閜hp開發(fā)的產(chǎn)品整體性能和java開發(fā)的相去甚遠(yuǎn),所以php運(yùn)用低成本的低價(jià)優(yōu)勢(shì)和同類的java產(chǎn)品抗?fàn)?,以價(jià)格落差來平衡購買者的心態(tài)。所以,PHP + MYSQL 的OA不值錢也就不足為怪了
- 拋棄 PHP 代價(jià)太高
- 100行PHP代碼實(shí)現(xiàn)socks5代理服務(wù)器
- win7下搭建nginx+php的開發(fā)環(huán)境
- java解析php函數(shù)json_encode unicode 編碼問題
- wdcp添加tomcat,同時(shí)支持php和java教程
- java URL 獲取PHP JSON 數(shù)據(jù)
- PHPExcel筆記, mpdf導(dǎo)出
- php面向?qū)ο笾祮卫J?/a>
- PHP中的.htaccess偽靜態(tài)文件
- Centos安裝php高版本
- 微信公眾平臺(tái)DEMO(PHP)
- 100多行PHP代碼實(shí)現(xiàn)socks5代理服務(wù)器[2]
- win10環(huán)境PHP 7 安裝配置【教程】
相關(guān)文章
特轉(zhuǎn)載一高手總結(jié)PHP學(xué)習(xí)資源和鏈接.
特轉(zhuǎn)載一高手總結(jié)PHP學(xué)習(xí)資源和鏈接....2006-12-12PHP5.2下chunk_split()函數(shù)整數(shù)溢出漏洞 分析
PHP5.2下chunk_split()函數(shù)整數(shù)溢出漏洞 分析...2007-06-06javascript 小型動(dòng)畫組件與實(shí)現(xiàn)代碼
javascript 小型動(dòng)畫組件與實(shí)現(xiàn)代碼,想要學(xué)習(xí)js動(dòng)畫的朋友可以參考下。思路確實(shí)很實(shí)用。2010-06-06