
本文將對目前最常用的四種動(dòng)態(tài)網(wǎng)頁(yè)語(yǔ)言Perl(Practical Extraction and Report Language)、PHP(Hypertext Preprocessor)、ASP(Active Server Pages)、JSP(JavaServer Pages)進(jìn)行一些技術(shù)性的比較。
Perl
Perl(Practical Extraction and Report Language)是一種很古老的腳本語(yǔ)言。最初的Web應用大多是用Perl編寫(xiě)的,Perl很像C語(yǔ)言,使用非常靈活,對于文件操作和處理具有和C語(yǔ)言一樣的方便快捷。
也正是因為Perl的靈活性和“過(guò)度”的冗余語(yǔ)法,也因此導致許多Perl程序的代碼令人難以閱讀和維護,因此使用的人在逐漸減少,并且目前有被Python替代的可能。
另外Perl對于CPU的消耗似乎較高,效率似乎有一些不足。
Perl開(kāi)發(fā)的成功案例:
Movable Type — 世界上使用最多的Blog系統之一,功能強大的足以和一個(gè)CMS系統相比擬。
Awstats — 非常經(jīng)典的日志系統,速度極快,功能也非常強大。
結論:Perl在部分應用中能發(fā)揮很大優(yōu)勢,但其維護性差使得其普及變得很困難。
PHP
PHP(Hypertext Preprocessor)是一種嵌入HTML頁(yè)面中的腳本語(yǔ)言。它大量地借用C和Perl語(yǔ)言的語(yǔ)法, 并結合PHP自己的特性,使Web開(kāi)發(fā)者能夠快速地寫(xiě)出動(dòng)態(tài)產(chǎn)生頁(yè)面。
PHP是完全免費的開(kāi)源產(chǎn)品,不用花錢(qián),Apache和MYSQL也是用樣免費開(kāi)源,在國外非常流行,PHP和MYSQL搭配使用,可以非??焖俚拇罱ㄒ惶撞诲e的動(dòng)態(tài)網(wǎng)站系統,因此國外大多數主機系統都配有免費的APACHE+PHP+MYSQL。通常認為這種搭配的執行效率比IIS+ASP+ACCESS要高,而后者的使用還必須另外交錢(qián)給微軟。
PHP的語(yǔ)法和Perl很相似,但是PHP所包含的函數卻遠遠多于Perl,PHP沒(méi)有命名空間,編程時(shí)候必須努力避免模塊的名稱(chēng)沖突。一個(gè)開(kāi)源的語(yǔ)言雖然需要簡(jiǎn)單的語(yǔ)法和豐富的函數,但PHP內部結構的天生缺陷導致了PHP不適合于編寫(xiě)比中小型業(yè)余網(wǎng)站更大的網(wǎng)站。
PHP開(kāi)發(fā)的成功案例:
MediaWiki — 著(zhù)名的維基百科(Wiki)程序,如此龐大的條目居然只用PHP+MYSQL就能夠支持,真是不可思議。
WordPress — 著(zhù)名的Blog系統,功能上絲毫不輸于Movable Type,不少用戶(hù)都紛紛從Movable Type轉移到了WordPress。
結論:PHP語(yǔ)法簡(jiǎn)單,非常易學(xué)易用,很利于快速開(kāi)發(fā)各種功能不同的定制網(wǎng)站,PHP因為結構上的缺陷,使的PHP在復雜的大型項目上的開(kāi)發(fā)和維護都比較困難。
ASP
ASP(Active Server Pages)微軟的Windows IIS系統自帶的腳本語(yǔ)言,利用它可以執行動(dòng)態(tài)的Web服務(wù)應用程序。ASP的語(yǔ)法非常類(lèi)似Visual BASIC,學(xué)過(guò)VB的人可以很快上手,ASP也是這幾種腳本語(yǔ)言中最簡(jiǎn)單易學(xué)的開(kāi)發(fā)語(yǔ)言。但ASP也是這幾種語(yǔ)言中唯一的一個(gè)不能很好支持跨平臺的語(yǔ)言。
因為ASP腳本語(yǔ)言非常簡(jiǎn)單,因此其代碼也簡(jiǎn)單易懂,結合HTML代碼,可快速地完成網(wǎng)站的應用程序。
ASP在國內異常流行,因為國內大多使用的是盜版的Windows和盜版的SQLServer,而ASP+COM+SQLServer實(shí)際上也是一種不錯的搭配,其性能也不輸于PHP+MYSQL,特別是Windows系統和SQLServer都有圖形界面,比APACHE和MYSQL易于維護,因此對于不重視知識產(chǎn)權的國家來(lái)說(shuō)也是一種不錯的選擇。
不過(guò),正因為ASP很簡(jiǎn)單,所以單純使用ASP所能完成的功能也是有限的,好在COM(Component Object Model)技術(shù)拯救了ASP,微軟提供了COM/DCOM技術(shù),極大拓寬了ASP的應用范圍,使得ASP幾乎具有無(wú)限可擴充性。
結論:和PHP一樣,ASP簡(jiǎn)單而易于維護,很適合小型網(wǎng)站應用,通過(guò)DCOM和MTS技術(shù),ASP甚至還可以完成小規模的企業(yè)應用,但ASP的致命缺點(diǎn)就是不支持跨平臺的系統,在大型項目開(kāi)發(fā)和維護上非常困難。
JSP
JSP(JavaServer Pages)是Sun公司推出的一種動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)。JSP技術(shù)是以Java語(yǔ)言作為腳本語(yǔ)言的,熟悉JAVA語(yǔ)言的人可以很快上手。
JSP本身雖然也是腳本語(yǔ)言,但是卻和PHP、ASP有著(zhù)本質(zhì)的區別。PHP和ASP都是由語(yǔ)言引擎解釋執行程序代碼,而JSP代碼卻被編譯成Servlet并由Java虛擬機執行,這種編譯操作僅在對JSP頁(yè)面的第一次請求時(shí)發(fā)生。因此普遍認為JSP的執行效率比PHP和ASP都高。
JSP是一種服務(wù)器端的腳本語(yǔ)言,最大的好處就是開(kāi)發(fā)效率較高,JSP可以使用JavaBeans或者EJB(Enterprise JavaBeans)來(lái)執行應用程序所要求的更為復雜的處理,但是這種網(wǎng)站架構因為其業(yè)務(wù)規則代碼與頁(yè)面代碼混為一團,不利于維護,因此并不適應大型應用的要求,取而代之的是基于MVC的Web架構。MVC的核心思想是將應用分為模型、視圖和控制器三部分。模型是指應用程序的數據,以及對這些數據的操作;視圖是指用戶(hù)界面;控制器負責用戶(hù)界面和程序數據之間的同步。通過(guò)MVC的Web架構,可以弱化各個(gè)部分的耦合關(guān)系,并將業(yè)務(wù)邏輯處理與頁(yè)面以及數據分離開(kāi)來(lái),這樣當其中一個(gè)模塊的代碼發(fā)生改變時(shí),并不影響其他模塊的正常運行,所以基于MVC的Web架構更適應于大型應用開(kāi)發(fā)的潮流。
因此,不少?lài)獾拇笮推髽I(yè)系統和商務(wù)系統都使用以上的MVC架構,能夠支持高度復雜的基于Web的大型應用。
結論:JSP對于網(wǎng)站開(kāi)發(fā)來(lái)講不像PHP和ASP那樣易學(xué)易用,支持JAVA的主機也少于支持PHP的主機,這從一定程度上限制了Java技術(shù)在網(wǎng)站上的發(fā)展,不過(guò)在企業(yè)軟件應用上來(lái)講,MVC還是擁有相當大的優(yōu)勢的,雖然其配置和部署相對其他腳本語(yǔ)言來(lái)說(shuō)要復雜一些,但對于跨平臺的中大型企業(yè)應用系統來(lái)講,基于JAVA技術(shù)的MVC架構幾乎成為唯一的選擇。

