經過多年演進,Java 的短板已清晰可見:Web 表現層開發效率低下。Web 需求變化頻繁,而 Java 這類靜態類型語言缺乏敏捷性,嚴重拖累開發效率。Java EE 試圖在服務端包辦一切(傳統集中式開發),導致自身陷入不擅長的領域——無論是語言特性,還是 Sun、IBM、BEA、Oracle 等主導廠商,都不擅長表現層構建。擅長此道的卻是 Adobe/Macromedia、Microsoft、Borland/CodeGear 等客戶端技術廠商。
標準 J2EE 三層架構(表現層、業務層、持久層)對傳統 HTML 表單應用或許合適,但面對現代豐富交互需求已顯落後。若在服務端硬做表現層,Ruby on Rails 等動態語言框架的優勢極其明顯:更靈活、學習成本更低、開發效率更高。
若不再假設客戶端是「薄客戶端」,而是充分利用 Ajax 組件庫、Flex、Silverlight 等 RIA 技術,將表現層前推至客戶端,通過 REST 風格 API 與服務端通信,服務端便轉型為專注於業務邏輯與數據服務的提供者。這種 RIA+REST 分布式開發模式,能讓 Java 退出不擅長的領域,專注於後端優勢領域。
集中式開發雖利於控制與安全,但犧牲了最佳交互體驗。RIA+REST 雖簡化了交互設計與服務端架構,卻增加了分布式系統的複雜性(控制力、安全性)。但 REST 是基於 Web 分布式應用的理想架構風格,優於 RPC、分布式對象等,且簡練實用,能大幅降低分布式複雜度。
經驗顯示,中小型項目中表現層開發量佔比超過 50%。傳統模式下 Java 與 RoR 效率差距可達 5-10 倍;採用 RIA+REST 後,差距可縮小至 2 倍左右。隨著代碼復用積累,Java 後端優勢將逐漸顯現。RoR 2.0 全面擁抱 REST,實為擁抱未來 RIA 做鋪墊——面向資源的 Web 應用將成未來技術熱點。Java 官方 JSR 311 侧重應用集成而非 RIA+REST,但社區已有成熟 REST 框架(如基於 Flex),Java 開發者完全可自主擁抱這一趨勢。
結論:支持 REST 對 Java EE 意義重大,關乎 Java 語言未來命運。