Perl、PHP、ASP、JSP技術比較
來源:互聯網
上載者:User
轉自:http://www.williamlong.info/archives/460.html文將對目前最常用的四種動態網頁語言Perl(Practical Extraction and Report Language)、PHP(Hypertext Preprocessor)、ASP(Active Server Pages)、JSP(JavaServer Pages)進行一些技術性的比較。 Perl Perl(Practical Extraction and Report Language)是一種很古老的指令碼語言。最初的Web應用大多是用Perl編寫的,Perl很像C語言,使用非常靈活,對於檔案操作和處理具有和C語言一樣的方便快捷。 也正是因為Perl的靈活性和“過度”的冗餘文法,也因此導致許多Perl程式的代碼令人難以閱讀和維護,因此使用的人在逐漸減少,並且目前有被Python替代的可能。 另外Perl對於CPU的消耗似乎較高,效率似乎有一些不足。 Perl開發的成功案例: Movable Type — 世界上使用最多的Blog系統之一,功能強大的足以和一個CMS系統相比擬。 Awstats — 非常經典的日誌系統,速度極快,功能也非常強大。 結論:Perl在部分應用中能發揮很大優勢,但其維護性差使得其普及變得很困難。 PHP PHP(Hypertext Preprocessor)是一種嵌入HTML頁面中的指令碼語言。它大量地借用C和Perl語言的文法, 並結合PHP自己的特性,使Web開發人員能夠快速地寫出動態產生頁面。 PHP是完全免費的開源產品,不用花錢,Apache和MYSQL也是用樣免費開源,在國外非常流行,PHP和MYSQL搭配使用,可以非常快速的搭建一套不錯的動態網站系統,因此國外大多數主機系統都配有免費的APACHE+PHP+MYSQL。通常認為這種搭配的執行效率比IIS+ASP+ACCESS要高,而後者的使用還必須另外交錢給微軟。 PHP的文法和Perl很相似,但是PHP所包含的函數卻遠遠多於Perl,PHP沒有命名空間,編程時候必須努力避免模組的名稱衝突。一個開源的語言雖然需要簡單的文法和豐富的函數,但PHP內部結構的天生缺陷導致了PHP不適合於編寫比中小型業餘網站更大的網站。 PHP開發的成功案例: MediaWiki — 著名的維基百科(Wiki)程式,如此龐大的條目居然只用PHP+MYSQL就能夠支援,真是不可思議。 WordPress — 著名的Blog系統,功能上絲毫不輸於Movable Type,不少使用者都紛紛從Movable Type轉移到了WordPress。 結論:PHP文法簡單,非常易學易用,很利於快速開發各種功能不同的定製網站,PHP因為結構上的缺陷,使的PHP在複雜的大型項目上的開發和維護都比較困難。 ASP ASP(Active Server Pages)微軟的Windows IIS系統內建的指令碼語言,利用它可以執行動態Web服務應用程式。ASP的文法非常類似Visual BASIC,學過VB的人可以很快上手,ASP也是這幾種指令碼語言中最簡單易學的開發語言。但ASP也是這幾種語言中唯一的一個不能很好支援跨平台的語言。 因為ASP指令碼語言非常簡單,因此其代碼也簡單易懂,結合HTML代碼,可快速地完成網站的應用程式。 ASP在國內異常流行,因為國內大多使用的是盜版的Windows和盜版的SQLServer,而ASP+COM+SQLServer實際上也是一種不錯的搭配,其效能也不輸於PHP+MYSQL,特別是Windows系統和SQLServer都有圖形介面,比APACHE和MYSQL易於維護,因此對於不重視智慧財產權的國家來說也是一種不錯的選擇。 不過,正因為ASP很簡單,所以單純使用ASP所能完成的功能也是有限的,好在COM(Component Object Model)技術拯救了ASP,微軟提供了COM/DCOM技術,極大拓寬了ASP的應用範圍,使得ASP幾乎具有無限可擴充性。 結論:和PHP一樣,ASP簡單而易於維護,很適合小型網站應用程式,通過DCOM和MTS技術,ASP甚至還可以完成小規模的公司專屬應用程式,但ASP的致命缺點就是不支援跨平台的系統,在大型項目開發和維護上非常困難。 JSP JSP(JavaServer Pages)是Sun公司推出的一種動態網頁技術。JSP技術是以Java語言作為指令碼語言的,熟悉JAVA語言的人可以很快上手。 JSP本身雖然也是指令碼語言,但是卻和PHP、ASP有著本質的區別。PHP和ASP都是由語言引擎解釋執行程式代碼,而JSP代碼卻被編譯成Servlet並由Java虛擬機器執行,這種編譯操作僅在對JSP頁面的第一次請求時發生。因此普遍認為JSP的執行效率比PHP和ASP都高。 JSP是一種伺服器端的指令碼語言,最大的好處就是開發效率較高,JSP可以使用JavaBeans或者EJB(Enterprise JavaBeans)來執行應用程式所要求的更為複雜的處理,但是這種網站架構因為其商務規則代碼與頁面代碼混為一團,不利於維護,因此並不適應大型應用的要求,取而代之的是基於MVC的Web架構。MVC的核心思想是將應用分為模型、視圖和控制器三部分。模型是指應用程式的資料,以及對這些資料的操作;視圖是指使用者介面;控制器負責使用者介面和程式資料之間的同步。通過MVC的Web架構,可以弱化各個部分的耦合關係,並將商務邏輯處理與頁面以及資料分離開來,這樣當其中一個模組的代碼發生改變時,並不影響其他模組的正常運行,所以基於MVC的Web架構更適應於大型應用開發的潮流。 因此,不少國外的大型企業系統和商務系統都使用以上的MVC架構,能夠支援高度複雜的基於Web的大型應用。 結論:JSP對於網站開發來講不像PHP和ASP那樣易學易用,支援JAVA的主機也少於支援PHP的主機,這從一定程度上限制了Java技術在網站上的發展,不過在企業軟體應用上來講,MVC還是擁有相當大的優勢的,雖然其配置和部署相對其他指令碼語言來說要複雜一些,但對於跨平台的中大型公司專屬應用程式系統來講,基於JAVA技術的MVC架構幾乎成為唯一的選擇。