PHP versus ASP
Thu, Aug 17, 2000; by John Lim.
序:
微軟的ASP是一項強大的動態WEB頁面技術,我已經使用了一年的ASP,用它建立了許多的WEB網站,但是現在我的公司正想轉向另一項叫PHP的INTERNET技術,來進行以後的WEB網站開發。
問題是我們已經習慣於使用ASP,並且喜歡用它,為什麼我們要轉向PHP呢?
開放源碼運動
首先,我們認識到,開源運動使我們獲得了強大的支援人員和免費的代碼供應。例如:在ASP中,上傳檔案、加密密碼、發送郵件都需要第三方的商業軟體的支援,是要收費的;但在PHP中,這一切是免費的!
但這還不足以說服我們轉向PHP,因為我們已經投入了大量的時間和金錢在這些必需的商業軟體工具上。
INTERNET程式和LINUX
我有一個夢想,我希望在將來每一個程式都是一個INTERNET程式。不用再需要購買軟體包,不要再去安裝它,它們能在INTERNET上得到,並且已經是安裝好的,我們只要在瀏覽器中運行程式,這不會需要太多的配置。
大部分的網路應用程式都運行在LINUX和PHP上。它們通常不使用ASP,有一種軟體叫Chilisoft ASP,它能在LINUX上運行ASP,但它是要錢的,同時它也不支援最新版的ASP,更重要的是建立高效能ASP網站所用的好的第三方DLL都不能運行在LINUX上。
於是,為了實現我們的INTERNET軟體夢想,我們決定尋找一種更好的,接近於ASP的技術來替代它!
ISAPI的支援
ZEND團隊正在開發的PHP核心引擎中就包括一個ISAPI引擎。
ISAPI是一種MICROSOFT的INTERNET WEBSERVER API,它的應用,使我們這些習慣於在WINDOWS下開發程式的程式員有了一條通向LINUX的捷徑。
技術分析
每個人都聲稱自己的產品最快,這不是我真正關心的---我只關心“足夠快”,對我來說,PHP足夠快!
ASP支援多種程式語言。這種體系使得程式天生就帶有慢和多記憶體佔用,它的每一種語言解析就相當於一個PHP編譯,(就是說,當ASP開始解析一條代碼時,它相當於同時開動多個PHP),當ASP解析到一個ASP開始標記(<%)時,它需要跳出HTML解析進程而去選擇另一個適當的解析進程,當它解析到一個ASP結束標記時,它又得退回到HTML解析進程。
同時,ZEND打算髮布一個可以保護我們原始碼的編譯器,以及各種不同的最佳化技術(Zend Cache and Optimizer),甚至於實現PHP在WINDOWS下的良好應用,無疑,PHP在這一方面又將強於ASP!
一個使用PHP的商業決定
相對於PHP來說,這裡有許多其它的開放源碼選擇,比如說perl,python/zope and jsp/tomact。對我來說,PHP最接近於ASP,同時也易於轉換!
Perl: 一種不適用於大項目的語言.
Python/Zope:一種很好的語言,但它的體系不如PHP那般的接近ASP.
JSP/Tomcat: 我認為,比起指令碼語言來,type-safe, type-bound, type-checking Java 不太好操作!
代碼
我們注意到,我們用PHP開發的代碼比用ASP開發的要短,這是因為,在PHP中HTTP GET和POST變數自動建立為全域變數,這樣我們就不要再花費太多的時間去分析ASP REQUEST對象了。
同時PHP的include()函數非常好,我們能有條件的include代碼,以使我們的代碼盡量精簡,更加易懂!
PHP有著相似於ASP的COOKIE和SESSION管理功能。
結論:
我現在還在使用PHP,在所有的地方使用“$”這個符號,它是非常酷的,同時它也是我最喜歡的一個符號!:)