本文基於價格、速度和效率、安全性、開源與否這四個方面對PHP與ASP.NET的優劣勢進行了分析,作者認為PHP在價格、速度、效率、安全性、平台支援性和開源與否上的表現,它的強項是遠勝於弱點的。
不管你是不是已經選擇了PHP,根據它在如下表格中在價格、速度、效率、安全性、平台支援性和開源與否上的表現,我們都能判斷出它的強項是遠勝於弱點的。唯一不足的是缺少物件導向的支援。然而,這是個相對次要的缺陷,雖然不可忽視語言的結構,可是最終來說,優秀的編碼還是歸結於反覆實踐、執行、好習慣和紀律。
| |
PHP 4 |
PHP 5 |
ASP.NET |
| 軟體價格 |
免費 |
免費 |
免費 |
| 平台價格 |
免費 |
免費 |
$$ |
| 速度 |
強 |
強 |
弱 |
| 效率 |
強 |
強 |
弱 |
| 安全性 |
強 |
強 |
強 |
| 平台安全性 |
強 |
強 |
弱(IIS only) |
| 平台支援性 |
任意 |
任意 |
win32 (IIS only)) |
| 是否開源 |
是 |
是 |
否 |
| 異常機制 |
否 |
是 |
是 |
| OOP |
弱 |
強 |
強 |
價格:我不會單純考量首次投資的價格,拿PHP來說,顯然是免費的,但我們也要考慮開發、維護和調試的成本,你可能還要購買Zend最佳化引擎。對於ASP,你在一開始就要投資購買產品,而且你還會在額外的技術上開銷,比如購買圖形處理的類庫,或是其它。但從長遠來看,PHP不會要求你去繳納升級費用或是購買更多的license。任何曾經接觸過license的人都會知道公司往往會在確保產品的相容性上花費大量時間和金錢。此外,發現bug並得到修複的反饋處理情況也不盡相同,這其實也可換算為時間的消耗,進而影響到整個開發的成本。
速度和效率:就像我前面所提到的,ASP.NET是一個允許你使用多種不同程式設計語言的架構。此外,它還號稱擁有出色的物件導向編程模型。確實如此,可是這卻帶來了速度上的降低。談到它的這些優點,對於相同功能的頁面來說,比起PHP, 運行於ASP的頁面需要其伺服器分析、執行更多的代碼。而PHP是“快餐型”的解決方案,先將功能搞定,還有很多健壯性上的問題可以留到2.0或是3.0裡進行補充,而且它的核心代碼得到編譯的最佳化,程式可以高速運行。速度並非唯一的考量,記憶體的耗用也很重要。
安全性:ASP.NET運行於IIS之上,這是個曾無數次遭受攻擊的系統,幾乎每周IT的新聞上都會有類似訊息。實際上,它已成為一項負債,不管整個市場投了多少美元在上面,很多IT的專業人士已經拒絕將他們的網路暴露於IIS Web伺服器之下。而PHP與Apache工作在一起,它擁有良好的速度、可靠性的表現,還有過硬的安全性。
平台支援性:ASP.NET起初運行於IIS,現在也可以運行於Apache,而Apache能運行於所有平台。PHP天生就是設計運行於Apache上,所以你有很多被證明是可靠的平台去選擇。
開源與否:開源並非只是那些理想主義程式員們的專利,也不是那些想要在license上節省幾十美元的公司所特有的。當你碰到所購買的軟體本身的bug的時候,開源可就是天賜良品。
無論是用ASP.NET還是PHP,都可能有很多使用者用你的軟體並發現bug。對於ASP.NET,這些bug就要經過一個官僚的過程來告知,修複,驗證,然後再等到下一個補丁時發布。而PHP的修複和發布都很快。任何看過開源開發的人都知道新的產品發布或是補丁經常是幾天內的事情而不是商業軟體那樣的幾周或幾個月。如果你認為那還不夠快的話,如果你願意,你也可以自己直接修複。