
今天看了 dlee 在 csdn 發(fā)表的一篇文章 http://blog.csdn.net/mozilla/archive/2007/07/22/1702365.aspx 。 覺得很有意思。以前我在 javaeye 就看過他的很多文章, 很有見地。 最近他的很多言論都是圍繞 rest 的, 把 rest 的地位抬的很高。 我個人倒是覺得 RIA 相對而言對于 web 開發(fā)更具革命性一些。
如果采用 RIA 開發(fā)網(wǎng)站,和傳統(tǒng) web 開發(fā)有兩點很大的區(qū)別,一是:對于服務(wù)端 View 層的依賴就沒有了, 二是: 不需要在 server 端保存 session 信息。 無論是 rails, 還是 php, python, java 的各種 web 框架,session 和 server view 都是必須的, 從上個世紀(jì)中期到現(xiàn)在10年多的時間里, web 的發(fā)展和 http 本身無狀態(tài)的特點使得我們無法脫離這兩點來開發(fā)網(wǎng)站, 幾乎所有web 框架都會涉及到它們, 但是都會采用各自的方法來解決, 每個方案都沒有本質(zhì)的不同,卻在形式上差別很大,服務(wù)端 view 技術(shù)可能是每個框架中最麻煩的部分。 REST 本身并沒有改變這種開發(fā)現(xiàn)狀,但是 RIA 卻在試圖打破這個局面。 一旦采用了 ria , 你會發(fā)現(xiàn),各種框架其實在編寫業(yè)務(wù)邏輯和服務(wù)方面(ORM 層, Router)并沒有什么顯著的不同,單從 Controller 和 Model方面考慮,腳本語言 web 框架還是有一定的敏捷優(yōu)勢的,但是 java 框架已經(jīng)和它們相差不多了,但是 java 在縱向擴(kuò)展性,執(zhí)行效率,靜態(tài)檢查,組件等很多方面具備腳本語言所沒有的優(yōu)勢。所以如果一旦未來的 java web 框架簡化到一定程度,java web 開發(fā)的優(yōu)勢就會顯現(xiàn)出來,所以我個人感覺 RIA 的出現(xiàn)對于 java 可能是一個轉(zhuǎn)機(jī)。 當(dāng)然這要取決 RIA 的接受程度。 GWT 就是一個好的開端, 不過我更喜歡基于 flash 的解決方案。 成熟高效的 runtime, flash 插件龐大的市場占有率,跨平臺,跨瀏覽器,Actionscript 已經(jīng)發(fā)展到第三版, 優(yōu)良的組件編程, 多媒體的支持。 所有這些似乎都預(yù)示著 flash ria 有著良好的前程,但是事實也不是這樣的。對于一種新技術(shù)的采納,并不是那么簡單。 更多的人是在觀望, flash ria 有學(xué)習(xí)成本,熟悉的人不多, 資料也少; 搜索引擎優(yōu)化也是一個問題, 而且在開發(fā)效率上也不見的高(這的確需要實踐一下)。
最近我打算開始研究一下 flex , 以前我總覺得 flex 是 Macromedia(adobe) 兜售的一種服務(wù)端技術(shù),自從adobe 推出了 apollo 后,我覺得 flex 變成了一個開發(fā)客戶端應(yīng)用的平臺。 http://pownce.com/ 網(wǎng)站上那個 apollo air 的小應(yīng)用,讓我看到了學(xué)習(xí) flex 的必要。 本來 flex 是一個服務(wù)端應(yīng)用技術(shù), 現(xiàn)在 air 的出現(xiàn), Adobe 又回到了客戶端的老路上來了。 Macromedia,adobe 總是想把自己在桌面的優(yōu)勢發(fā)展到服務(wù)端,盡管推出了很多服務(wù)端產(chǎn)品,但是到了最后,它們又回歸了客戶端.
dlee 在最后列舉了幾個從Java轉(zhuǎn)到 Ruby有幾個強(qiáng)有力的理由:(實際上這里他混淆了 rails 和 ruby)




對于第一點: 我完全同意, 我一直認(rèn)為面向解決方案,而不是面向編程語言,是一個開發(fā)人員應(yīng)有的思路
對于第二點:正確, rails 的確簡化了 ajax , 盡管我個人認(rèn)為 ajax 只是一個過度的技術(shù)
對于第三點:部分認(rèn)同,REST的確在Web開發(fā)方面會越來越重要,但是 Rails 是最早提供REST支持的框架,未必就是最好的,后來者居上的例子很多了,相信 java 在這方面還是有優(yōu)勢的。
對于第四點:Sun 支持 Jruby 只是吸引rails 開發(fā)人員將程序移植到 java 平臺, 而不是反方向。 而且 jruby , jpython 等技術(shù)只是在集成上有優(yōu)勢, 對于 web 開發(fā)或者不打算將應(yīng)用移植到 java 平臺的人沒什么吸引力。