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




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


