當 Java 遇見 PHP

2006 年 八月 8 日 (星期二) 1:36 am
分類:電腦
標籤:,

正如之前所預告的,今天下午我會在 JavaTwo 2006 大會上演講〈當 Java 遇見 PHP〉。投影片和範例程式請到這裡下載。

這份投影片我做得非常愉快,也稍微實驗了一下高橋流簡報。不過想講的內容實在太多了,希望屆時忽快忽慢的節奏能夠拿捏得恰到好處;還有,希望現場 demo 能夠順利。

呼,終於可以喘口氣,好好整理整理希臘遊記了。


◤建議您一併閱讀以下文章:

18 項留言回應 給 “當 Java 遇見 PHP”

  1. 1 kiang 留言:

    感謝提供,訊息轉載於下面網址:
    http://twpug.net/modules/newbb/viewtopic.php?topic_id=1935

    希望未來能夠多與我們分享 PHP&JAVA 的技術 :)

  2. 2 stephen 留言:

    感謝今天上課的分享,
    剛好工作上遇到PHP與JSP之間整合問題,
    您的課程讓我受益良多。

  3. 3 JAVA TWO 2006(part1) 引用:

    [...] 葉秉哲所主講的當 Java 遇見 PHP,如果將php結合於java確實是滿新,不過還是看看就好了
    似乎還是有效率、整合的問題,當然java未來支援script language是必然的趨勢。 [...]

  4. 4 william 留言:

    個人認為,想在效率上匹敵 mod_php,還有一段路要走。畢竟 PHP 最佳化的步調並未停止(可參考〈PHP 加速器標準量度〉這篇文章),而 Resin 的 Quercus 還很年輕,似乎尚未針對 PHP 特性予以最佳化;先求有,再求好。

    至於我提到的某些 PHP 與 Java 的整合問題(一國兩制的 session、object model),或許是他們還沒「看到」這問題吧。 :D 我比較古怪,盡想些怪例子來測它。

    我期待看到 BEA WebLogic 的實作表現,更期待 JSR 292 的落實,畢竟 “choice is good”。

  5. 5 william 留言:

    在 JavaWorld 討論區回覆一位聽眾的留言,轉貼如下。

    jk47 wrote:
    第二堂 當 JAVA 遇見 PHP

    原則上講的不錯, 不過講師動機似乎不純潔, 但是還是希望有達到他的目的.

    回到主題. 原則上 PHP 要跟 JAVA 互通似乎還有段距離, 需要等待 RESIN 那邊將模組進一步修正, 才可能期待 互通.

    不過不知道 .NET 跟 JAVA 是否有這問題. 本來是打算去聽 8/9 的 IKVM 那場, 但是身體不適, 有點無奈 (王建興先生本人也有來聽這一場)

    其實當我在規畫「當 Java 遇見 PHP」內容時,面臨很大的取捨交戰。

    我很不希望給聽眾一種「打著紅旗反紅旗」的印象,但是長久以來,對於 Java 陣營在 Web app development 的發展,一直很不滿意,我一直認為:應該有更好的 programming model。

    在接觸到 Ruby on Rails,以及看了 Beyond Java 之後,這種感覺更是強烈。

    既然 JRuby(在 Java 平台上執行 Ruby)還不成熟,而 Resin Quercus 已經能成功執行幾個指標性的 PHP 系統,所以我原本打算以 Resin Quercus 為引子,再花一半的時間好好介紹受 Rails 影響的 PHP 框架,讓大家在熟悉的平台上,試驗一些不一樣的思考方向。就像我往年的主題:用 JUnit 介紹 unit testing in Java 觀念,用 AspectJ 介紹 AOP 觀念,用 java.util.concurrenct 介紹 multi thread 觀念。我無法滿足於只示範功能而不引介或釐清些進步的深層觀念。

    不過這回有點不同,講太多 Ruby on Rails 的觀念,會太過於「打著紅旗反紅旗」了,而且 Resin 對於 PHP 的支援仍有相當的改善空間,所以我將 CakePHP 的時間縮短到 1/4。

    原本也考慮介紹些 JSR 292,不過相關資訊仍然不足,且 Resin 並不是用這招來實作,所以… 列入明年的觀察名單。

    其實對於 PHP 與 Java 互通的議題,如果不考慮太過極端的情況(像我舉的某些例子),我認為 Resin 的現況應該還算可以接受。尤其是當你只是以 PHP 做為小型應用的 presentation tier 時,真正會去介接到 Java 的場合,多半可以用一層 wrapper 去避開 object model 及 session 的問題。

    至於 IKVM.NET 與 Java 的互通,我用幾個 Java SE 的例子問過王建興,據他說都沒問題。不過這也很正常,畢竟兩方面的 object model 本來就很類似,而且 GNU Classpath 也是相當活躍的開放源碼計畫。

    至於 Java EE,大概……

  6. 6 Boss Yang 留言:

      當天聽了william精采的簡報,回來後趕緊上來葉大師的部落格找資料,在這裡學了不少東西,非常感謝。
      我之所以參加這個講次是因為自己有協助公司內PHP team的程式開發,不過先前受過Java洗禮,因此對於php的撰寫風格有些感冒,在聽了CakePHP的介紹後,才知道還是有分層良好,易於且快速開發的框架可用。

  7. 7 anthonychen 留言:

    這次雖然沒有聽到william的場次,不過有幸能在第二天與william共進晚餐,聊得十分愉快,只可惜我有事先離席…Orz

    平常都在william兄的blog潛水偷看,這次還是希望可以偷看到william兄的希臘遊記 XD

  8. 8 william 留言:

    講的內容對聽眾有幫助,哪怕只是一小群聽眾,就足夠讓我開心了。

    對 PHP 新一代的框架感興趣的,不妨多比較、多試驗看看。畢竟受到 Ruby on Rails 的啟迪與刺激之後,現在這領域可說是百家爭鳴(Akelos Framework 的作者甚至稱之為 “framework war”)。

    再列兩篇文章給各位參考:

    像這種「受 Ruby on Rails 啟發/刺激而新興的 framework war」,短期之內大概不太容易出現在 Java 陣營吧,畢竟 Java 不夠動態,也欠缺夠彈性的 meta-programming 的機制。要有革命性的 RAD framework,恐怕還得等好一陣子。

  9. 9 koji 留言:

    sails
    http://trac.opensails.org/sails
    grails
    http://grails.codehaus.org/
    只看過沒用過, 但應該可以算是?
    只是感覺還非常陽春 :P

    對了, 如果我直接從外面的 link 連到\r
    http://william.cswiz.org/blog/
    會出現\r
    Can’t check for blacklist entry.
    SQL Error: Table ‘wordpress.ref_karma’ doesn’t exist

    可是直接打 url 在 browser 又可以囉~

  10. 10 jameschih 留言:

    JAVA 跟 PHP 也有另一種作法:
    http://blog.xuite.net/jameschih/java/5551154#3044297
    http://blog.xuite.net/jameschih/java/7684705

  11. 11 william 留言:

    @jameschih:

    PHP/Java Bridge 的主要問題在於:透過 XML-based network protocol 做為橋接的中介,從理論上來說,在無縫互通性、耗用資源、效能等方面都比不上 full Java solution。

    @koji:

    天哪,一堆專案不僅在學 Ruby on Rails 的內涵,連名字也在模彷… 謝謝你提供的資訊。

    Sails 算是 Java 陣營開始模仿 Ruby on Rails 的一個動作,只不過資歷還很淺,有待觀察。

    Grails 也是非常新的專案,尤其又是動用到尚不具說服力、前途未卜的 Groovy 語言(儘管 Groovy 有 JSR 241 加持)。這得看看曾死過一次、去年重生的 Groovy 是否能成得了氣候吧。不過 Groovy 的頭頭 Guillaume Laforge 倒是很看好 Grails 的喔!

  12. 12 William’s Blog » 高橋流簡報的實踐偶得 引用:

    上個星期二 Java 2006 的演講〈當 Java 遇見 PHP〉,是我首度、而且又是在大型場合實驗「高橋流簡報」風格,有點興奮,又有點戒慎恐懼。 [...]

  13. 13 william 留言:

    對 Xexex 的〈日常小工具 - 訂便當管理系統〉一文留了一些話,把其中感觸較深的部份貼在這裡。

    ↓↓↓

    原本想針對幾點回應,不過你的一句話「如果你熟悉一個平台,自然會開發很快,語言/平台倒不是很重要的因素」,讓我又多思考了一下。

    Lock-in 效應的優點,的確讓 Java platform 成為一個綜合指標居高不下的方案(如你所說的「就簡單、實用、管理等綜合來看,Java 無愧為世界第一」)。只不過在個別項目當中,漸漸有些積重難返的技術包袱或文化包袱;漸漸的,不再只是零零星星的個別項目,問題開始匯集起來,讓某些人開始反思:哪裡出了錯

    剛剛在老貓的文章〈社會能量、百萬人民倒扁與經典行銷案〉當中讀到一段話:

    辨認這個社會是否正在醞釀一個重大的能量庫,可能不是太難,難的是你能不能找到一個「對的缺口」,做對事,打開它。那幾乎就是考驗行銷高手畢生功力的地方了。

    我也還沒選定下一個答案,充其量只有觀察名單;但我的確看到了困擾多時的缺口,也希望 Java 能正視這個缺口。

  14. 14 William’s Blog » 技術對談:看 Google 怎麼用 Java 引用:

    在今年 Java 2006 大會的頭一天中午,一群講師及專家,應主辦單位及 iThome 之邀,與來自 Google 的兩位貴賓 Joshua Bloch 及 Neal Gafter 共進午餐,並會談了近一個小時。 [...]

    由於我主講的場次〈當 Java 遇見 PHP〉是排在下午第一場,中午的會談我並沒有多發言;反正王建興也問了許多我感興趣的問題,在下就省點力氣啦。會談背景及內容,請見 [...]

  15. 15 william 留言:

    補充一則 JRuby 的最新動態:

  16. 16 William’s Blog » 幾則關於動態型別語言的事件 引用:

    在過去,動態型別語言 (dynamically-typed languages) 一向被主流陣營視為次等公民。在主流陣營裡,不管是理論派還是實務派,多半都傾向於靜態型別系統的編譯期檢驗措施,以及連帶而來的 up-front design 思維。儘管 OO 將部份動態觀點帶入主流語言陣營,reflection、AOP 等 metaprogramming 思維也激起部份漣漪,但整體而言,主流觀點仍然是:能夠靜態就不要動態,能集中於一處 model 出來就不要將 model 散布各處。 [...]

  17. 17 william 留言:

    CakePHP 使用手冊 (繁體中文版) 出爐了。

  18. 18 william 留言:

    看到一個很有趣的做法:Running Quercus, A Pure Java PHP Engine, inside Weblogic Server

    以前 Quercus 只能在 Resin 執行(畢竟這是它的出生地),沒想到現在居然也能安裝到 WebLogic 了。真是令人佩服啊…

    看樣子,我也該試試去年在 JavaTwo 2006 所把玩的一些例子了,順便也看看其他的 Java app server(像 Tomcat)是否也能如法炮製。

留言回應

[檢核碼]  


Allowed XHTML tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

本站已啟用 spam 防護機制。為避免系統誤判,請在按下按鈕之前,先備份您的留言,以防不測。如果您一直無法順利留言,請改用 email 方式。
此外,如果您想留的言與本篇文章及討論串無關,也請轉而點選這裡。謝謝您!