原帖由 Gundamdriver 於 2008-12-21 00:16 發表 
據我所知...
JSP較Advance,有Java底可以快D上手;
PHP開法速度快,易學。
如果要揀JSP或PHP鑽研,JSP係咪會好D?
響技術層面,JSP係咪會高深/ 成熟過PHP?
Thanks for reading...
表面上JSP 同 PHP 有好多相類之處, 但現代化既JSP (2.0) 係唔鼓勵你放Java code 係JSP, 亦唔鼓勵你係JSP 做 updating 既動作. 於是JSP 只作為一個template language, 而唔係完整既programming language. 某程度上, JSP 應該同ASP 比較而唔係同PHP. 所以如果要比較既話會比較Java + JSP vs PHP.
單純以一個web application 而論, PHP language 因為佢scripting 既性質而簡單D, 要做比較大規模既web site, 亦有唔少framework, library, 同埋成功既事例, 成熟既PHP application 會將application setup 都成為application 既一部份, 呢點係Java web application 就無咁簡單啦, 因為Java web application 既設計理念就係要將application setup 排除係applicaion design 之外, 我時常都希望可以將一個java web app 既setup 做到好似discuz, gallery, durpal, wordpress 之類既PHP 咁簡單, 但要做到咁既程度就無可避免要做一D違反J2EE 規範既野. Java web application 有咁既設計係從cross platform (唔單止唔同OS, 重唔同application server) development 既考慮.
另一方面,要對PHP web application 作少量簡單修改的確要比Java web application 容易,因為java application 將成個web app 打包,好多時改少少都要成個web app 重新deploy.
有幾種情境係Java web application 比較容易做到, 但對PHP 就會變得相當困難
- Multithreading. 當然, 即使係PHP, 唔同既HTTP request 都可以由唔同既Thread 既執行, 但對PHP 黎講, 要係一個request 入面開一條新Thread, 或Thread 之間既synchronization 就相當困難, 最近我要係一個Java web app 入面對另一個server 做async request, 就要依賴Java language 所提供既concurrency 功能. PHP係語言上缺乏multithreading 功能,就算係library 幫到一部份,都好難做得好完美。
- Transaction. 係PHP 唔係話唔可以就一堆database access 組合成一個database transaction, 但呢樣野好依賴特定database 既寫法,亦好難做得OO, 或難以正確地處理nested transaction. 無nested transaction (如Spring frameork 或EJ B 提供既方式,就好難reuse 呢D transactional 既code. 呢點亦係PHP 不流行於enterprise development 既最大原因。
- web application 以外既配套。好多時一個web application唔單止係web application. 有時重要做一D batch job 用既program, 或其他唔係web application 範圍入面行既program. 呢方面Java 可以提供到更大既重用能力,將web application 入面既business logic 直接俾其他application 使用。
- Testability. PHP 不提供簡單既Unit Test 設備,要對個別module 做Unit Test 比較困難,要將成個web application 起動先可以測試細部既code 並不太方便。(不過PHP 既快速deploy 既能力稍稍舒緩呢個問題) |