多年來 Java 在企業級後端佔據統治地位,但在 Web 表現層開發卻顯得力不從心。主因在於:
若表現層必須在伺服器端渲染,RoR 的動態語言特性、慣例優於配置、極高開發效率,確實優於 Struts、Spring MVC、JSF 等 Java 框架。但這只是治標不治本。
核心概念:不再假設客戶端是「薄客戶端」,而是充分利用瀏覽器/AIR/Flex/Silverlight 的運算能力,將表現層「前推」至客戶端,伺服器端僅透過 REST 風格 API 提供資料服務。
架構優勢:
| 傳統集中式 | RIA + REST 分散式 |
|---|---|
| 伺服器端渲染 HTML | 客戶端渲染 UI,伺服器只回傳 JSON/XML |
| 交互體驗受限 | 豐富桌面級交互體驗 |
| 伺服器邏輯龐雜 | 伺服器專注業務邏輯與資料存取 |
| 前後端強耦合 | 前後端鬆耦合,可獨立演進 |
若 Java 卸下表現層負擔,專注於 RIA + REST + Java 架構:
REST 是連接客戶端與伺服器的紐帶,也是未來「面向資源的 Web 應用」核心。RoR 2.0 全面擁抱 REST 正是為迎接 RIA 時代。Java 陣營較遲緩(JSR 311 側重企業整合而非 RIA 應用),但已有 Restlet、Jersey 等框架支援,配合 Flex/AIR 即可落實。
支援 REST 對 Java EE 意義重大,關係到 Java 能否擁抱未來 Web 開發趨勢。RIA + REST + Java 是化解表現層劣勢、發揮後端優勢的最佳路徑。