Microsoft ASP 是一項強大的動態網頁技術,筆者使用 ASP 開發網站已有一年,但公司正考慮轉向 PHP 進行未來的 Web 開發。問題是:我們已習慣並喜愛 ASP,為什麼要轉向 PHP?本文將從開源生態、跨平台能力、效能架構、開發效率等面向深度剖析。
首先,開源運動讓我們獲得強大的技術支援與免費的程式碼供應。以 ASP 為例,檔案上傳、密碼加密、發送郵件都需要購買第三方商業元件;但在 PHP 中,這一切都是免費內建的!雖然我們已在商業工具上投入大量時間與金錢,但長遠來看,開源生態系統的彈性與成本優勢不容忽視。
筆者有一個願景:未來每一個程式都是網際網路程式,無需購買安裝軟體包,只要在瀏覽器中即可運行。大多數網路應用程式運行在 Linux + PHP 環境下。雖然有 Chilisoft ASP 可在 Linux 上運行 ASP,但它是收費的、不支援最新版 ASP,且建立高效能 ASP 網站所需的優質第三方 DLL 皆無法在 Linux 上運行。為了實現「網際網路軟體夢」,尋找更接近 ASP 且跨平台的技術成為必然選擇。
Zend 團隊正在開發的 PHP 核心引擎包含 ISAPI 引擎。ISAPI 是 Microsoft 的 Internet Web Server API,其應用讓習慣 Windows 開發的程式員擁有一條通往 Linux 的捷徑,降低遷移門檻。
每個廠商都宣稱自家產品最快,但筆者只關心「夠不夠快」。對我來說,PHP 完全夠快!
ASP 支援多種程式語言,這種架構導致天生的效能劣勢:每種語言解析器相當於一個 PHP 編譯器同時運作。當 ASP 解析到 <% 時,需跳出 HTML 解析流程選擇適當解析器;解析到 %> 時又需退回 HTML 解析。這種頻繁的上下文切換嚴重拖慢效能並佔用大量記憶體。
Zend 計畫發布可保護原始碼的編譯器,以及各種優化技術(Zend Cache and Optimizer),更將實現 PHP 在 Windows 下的良好應用。在這方面,PHP 將再次強於 ASP。
| 技術 | 評價 |
|---|---|
| PHP | 最接近 ASP,轉換容易,開發效率高 |
| Perl | 不適合大型專案,維護困難 |
| Python/Zope | 優秀語言,但架構不如 PHP 接近 ASP |
| JSP/Tomcat | 型別安全、檢查嚴格的 Java 相比腳本語言操作性較差 |
我們發現 PHP 開發的程式碼比 ASP 更短,原因在於:
include() 支援條件式引入,讓程式碼更精簡易懂。現在我全面使用 PHP,到處使用 $ 符號,它非常酷,也是我最喜歡的符號!:-)
核心結論: PHP 以開源免費、跨平台原生支援、輕量級架構、開發效率高等優勢,成為企業從 ASP 遷移的最佳選擇。雖然遷移有短期成本,但長期收益顯著。