前幾天看一篇文章在對jsp與php做比較
對這二種語言做比較發現jsp的速度比php快上很多!
還講了很多jsp與php的優缺點
我是覺得jsp唯一的缺點就是第一次執行時要編譯速度會變慢
還有需要比較多的資源!
也說目前大型的電子商務網站都是用jsp寫的!因為jsp比較適合
可是我看台灣像01這種大型的論壇…為何都是用php寫的呢?
我本來想去學php的!因為我覺得php功能強大而且又有很多人用
但看到那篇文章似乎又止住了…
請問到底是怎麼回事?
以N-tier的架構來說, JSP後面通常還有Servlet, JSP 基本上就是Servlet, compile之後都是servlet class. 這兩個整合起來就是presentation tier. 也就是展示層. 然後後面通常會有Business Logic-tier (商業邏輯層), Data Storage-Tier (資料儲存層) ....etc的基本架構. 而光是JSP 跟Servlet之間的資訊傳輸方法就有很多了, 有些技術例如, STRUTS, Sprint...etc 變化很多. 而JSP本身也可以直接沿用Java Bean, 用Bean class來做些事情. 可說是變化性蠻大的. JSP可以做的應用在某些層次面來說, 比PHP強大.
PHP對我來說, 比較像是Script, 還沒有到語言的地步. 而且光是執行方式就不太一樣了.
Java在第一次compile之後, 就可以一直用同一個servlet class(JSP compile之後的東西 )一直執行.
PHP則是, 當你call他的時候, 他才load, and initialized. 而且每次call他就要每次load.
再來就是Connection pool的問題, Java在這方面會比PHP強. 印象中, PHP是有Connection pool 的機制但是不完善. 而且不建議使用. Java比較沒有這種問題. 而Java可以玩MultiThread, 繼續使用同一個instance 除非VM掛了或是你把instance結束掉, PHP不行. 不過PHP有性能上的優勢, 幾乎在所有的情況下, PHP的執行速度會把JAVA巴死死的(不知道你是在哪邊看到JSP 比較快的, 可不可以說一下資訊來源, 我想參考一下). 而且架設PHP的環境會比架設JAVA的環境容易些.
其實, 兩種語言各有千秋, 看你在什麼情況下使用. PHP比較屬於橫向式, 而Java比較屬於縱向式(不知道這樣說你看不看得懂.) 如果只是單純的Web系統, 單然用PHP比較快速, 而且開發上比較容易. 但是如果牽扯到後端平台, 還有延展性. 那我會比較偏向Java.
以上是小弟的看法, 參考參考. 如果有錯誤, 還請指正
雅痞 wrote:
前幾天看一篇文章在對jsp與php做比較
對這二種語言做比較發現jsp的速度比php快上很多!
還講了很多jsp與php的優缺點
我是覺得jsp唯一的缺點就是第一次執行時要編譯速度會變慢
還有需要比較多的資源!
也說目前大型的電子商務網站都是用jsp寫的!因為jsp比較適合
可是我看台灣像01這種大型的論壇…為何都是用php寫的呢?
我本來想去學php的!因為我覺得php功能強大而且又有很多人用
但看到那篇文章似乎又止住了…
請問到底是怎麼回事?
就我之前看到的比較, 似乎都是 PHP 比較快.
前一陣子 TheServerside.com 有討論過這個問題 PHP v.s. JAVA
討論的重點主要在 CMS (Content Management System) 目前似乎絕大部分都是以 PHP 來寫的.
其實也不單單是 CMS 啦, 在 OpenSource 裡面, 比如說像 Forum, Photo Gallery 等等, 你也可以看到這個現象.
我個人是覺得 PHP 的最大優勢就是很好上手. 但是在 code maintain 上, PHP 就比較不容易一點.
JSP 如果你只是使用 scriptlet, 那大概是被 PHP 巴好玩的, 這樣的情況下, 我是覺得 PHP 會好很多.
如果你是要使用 JAVA 來開發 Web Application, 你就得要搭配一個 Framework, 才能加速你的開發速度, 以及降低 code 的 maintain 複雜度.
我個人是覺得也就是這樣子, 提高了 JAVA 的進入門檻, 也降低了大家去使用的意願. 相對來說, PHP 實在是太好上手了.
我自己是比較喜歡 JAVA, 但是我有時候也覺得你想要把 JAVA 學好, 難度上高很多
我們現在使用 JSF 開發系統 (全部都是 JSF + taglib), 我是覺得你要是真的熟悉了一個 framework, 對於 code reuse 跟 maintain 真的是幫助很大.
現在比較熱門的開發方式:
struts
spring
JSF
struts + spring + hibernate
...
選擇性滿多的, 你可以根據自己的需求來選擇.
有時間學的話, JAVA 是不錯的選擇.
但是如果只是單以 script 語言來看的話, 我個人是會投 PHP 一票的.
My Blog - http://webapp-tech.blogspot.com/
jackyliu兄, 看到你寫Strust + spring + hibernate. 突然很好奇. 你有碰過hibernate performance 上的問題嗎? 我之前有個專案, 有碰到hibernate會沒代沒誌搞掛DB connection的問題. 重起之後就好了. 有點好奇你們有沒有碰到那樣的問題, 怎麼解決的.
如果方便的話, 我的MSN asimo118@hotmail.com 可以MSN聊一下嗎?
Asimo118 wrote:
喔... 原來這邊也有同行的.... 呵呵...
jackyliu兄, 看到你寫Strust + spring + hibernate. 突然很好奇. 你有碰過hibernate
performance 上的問題嗎? 我之前有個專案, 有碰到hibernate會沒代沒誌搞掛DB connection的問題.
重起之後就好了. 有點好奇你們有沒有碰到那樣的問題, 怎麼解決的.
如果方便的話, 我的MSN asimo118@hotmail.com 可以MSN聊一下嗎?
我沒有使用過 strust + spring + hibernate :)
我現在主要使用的是 JSF EA, 等這陣子口試完, 會先專心研究一下 JSF 最新版本的東西
Hibernate 我也只是稍微拿來玩看看而已, 在拼今年畢業, 沒太多時間玩這個.
JSF 跟 strust 算是比較相像的東西.
只是說 JSF 是由 Sun propose 的, 會變成 J2EE 的 standard
而 strust 則大概是目前 java web application 最多人使用的 framework
當初我們使用 JSF 的時候, 還在 EA 階段, 算是很早使用 JSF 的人了.
最主要考量到的就是 standard 問題
現在的 JBuilder 2005 也將 JSF 列入 support 了.
雖然很多人都覺得 JSF 的出現主要是為了達到拖拉的方式來建構 web application 目標,
但是我個人是覺得 tool 其實還好, 直接去編輯, 就很足夠了
My Blog - http://webapp-tech.blogspot.com/

JSF 還沒去玩... 倒是hibernate用了不少. 是比較方便使用, 可是hibernate的performance issue, 還有一些設定的問題. 有點難搞. 而且, 他的query language語法, 有些就是怎麼試都試不出來. 太複雜的query就會有點難用了. 尤其碰到join table, 我還沒有成功的試出left join, or inner join 在hibernate下跑過
hibernate對DB設計也是要求很高. DB也不能隨便亂動, 一有修改, 牽扯就很大了. table relationship變得很重要. 一要按照規矩正規化, 不然hibernate會給你臉色看. 呵呵...
PS: 原來這位朋友也是用JBuilder的喔, 我以前也是超愛用Jbuilder的, 現在慢慢轉用Eclipse. 在performance上來說, Eclipse比較沒那麼吃資源, 而功能上跟JBuilder差不多, 就算沒有的功能, 也有plug-in可以找. 相當不錯用. 不過得花點時間適應一下就是了. Jbuilder好用, 但是很吃資源. 參考參考摟
Asimo118 wrote:
恩, 我也是, 我反而討厭那種拖拉的編輯, SWING我也不是很喜歡. 我比較喜歡自己去coding. 就拿strust來說好了.
我其實很討厭strust. 設定繁雜就算了, 如果用到tag lib, 綁手綁腳的有些時候反而把事情弄得很複雜, 反而難寫程式了.
我還是比較喜歡用JSP+Servlet自己來控制比較快. 雖然 code reuse的能力降低了, 但是至少, debug的時候快速多了.
之前常常碰到debug老半天, 最後發現, 原來是strust config 檔一個大小寫錯誤... 差點把電腦給摔了....
JSF 還沒去玩... 倒是hibernate用了不少. 是比較方便使用, 可是hibernate的performance issue,
還有一些設定的問題. 有點難搞. 而且, 他的query language語法, 有些就是怎麼試都試不出來.
太複雜的query就會有點難用了. 尤其碰到join table, 我還沒有成功的試出left join, or inner join
在hibernate下跑過
hibernate對DB設計也是要求很高. DB也不能隨便亂動, 一有修改, 牽扯就很大了. table relationship變得很重要. 一要按照規矩正規化, 不然hibernate會給你臉色看. 呵呵...
PS: 原來這位朋友也是用JBuilder的喔, 我以前也是超愛用Jbuilder的, 現在慢慢轉用Eclipse.
在performance上來說, Eclipse比較沒那麼吃資源, 而功能上跟JBuilder差不多, 就算沒有的功能,
也有plug-in可以找. 相當不錯用. 不過得花點時間適應一下就是了. Jbuilder好用, 但是很吃資源. 參考參考摟
Eclipse 我也用過. Eclipse 的前身 VisageAge For Java 當時可是我最喜歡的 IDE.
有時候寫簡單的東西, vim 我還比較喜歡一點.
吃資源的問題我知道. 本來想說用 notebook + eclipse 來寫會不會比較好. 發現掛上 Tomcat 以後, 效率也不好 (在 notebook 上).
後來乾脆還是回到用遠端桌面連到桌上型電腦來寫, 1 GB RAM + 7200 轉的硬碟, 效率上我還可以接受. 不過 Eclipse 使用的人數應該是比 JBuilder 多很多.
Hibernate 現在 resource 應該很多, 大陸那邊有一群人專門在研究 Hibernate.
有 Hibernate 牛人在那邊...:) 我想你應該可以在那邊找到答案.
My Blog - http://webapp-tech.blogspot.com/
內文搜尋

X