Ruby on Rails(RoR)是全棧、開源的 Web 框架,以「慣例優於設定」聞名。官方宣稱開發效率達傳統 J2EE 的 10 倍,雖有爭議,但其核心價值在於:極少代碼構建真實應用,XML 設定幾乎為零。Ruby 由松本行弘 1993 年發布,吸收 Perl、Smalltalk 特性,完全物件導向、語法優雅、跨平台、自由開源。
RoR 與 Java 的關係:非敵非友,而是互補
- O'Reilly 等 Java 派大佬開始出版 Ruby 書,不代表拋棄 Java
- Gosling(Java 之父)呼籲停止無謂語言戰爭:「將 Java 對立 PHP/Ruby 是無意義的」
- Java 仍主導企業級應用,但動態語言在 JVM 上的崛起(JRuby、Groovy)是趨勢
- RoR 擅長:Web 站點快速開發、資料庫驅動應用、豐富 AJAX 介面
兩大核心差異帶來的開發體驗落差
- 單一核心平台:RoR 只有「一個」核心 Web 開發平台,無需在 Struts/Tapestry/JSF/Spring MVC 中選擇
- 內建 AJAX 框架整合:Prototype + Scriptaculous 核心,Rails 透過 RJS(Ruby 生成 JavaScript)讓你幾乎不用寫 JS 即可實現 Autocomplete、拖拉排序、局部更新
Ruby 語言特性帶來的生產力來源
- 動態型別 + 開放類別:執行期修改類別、Mixin、
method_missing 元編程
- 區塊與閉包:
each { |x| ... } 風格極簡化集合操作
- ActiveRecord 慣例映射:類別名單數 → 表名複數,主鍵
id,外鍵 model_id,零設定檔
- Scaffold 脚手架:一行指令生成 CRUD 原型
- Rake 建構系統:Ruby DSL 撰寫部署腳本,字串/檔案/正則處理極強
中國社群現狀與未來
早期國內討論多集中於「Ruby 取代 Java」偽命題,實際上:
- Ruby 不會取代 Java,但在 Web UI + 胖資料庫 場景極具優勢
- 國內採用度較低,主因:歷史包袱、企業標準化傾向、人才養成週期
- JRuby 讓 Ruby 跑在 JVM 上,可無縫調用 Java 庫,是企業級落地關鍵
快速上手:六步驟建立最小應用
rails new myapp
cd myapp
# 編輯 config/database.yml
rails generate scaffold Post title:string body:text
rails db:migrate
rails server
# 瀏覽 https://localhost:3000/posts
結語
RoR 不是銀彈,但它重新定義了 Web 開發的「預設值」。對 Java 開發者,學習 Rails 不只是多一門語言,而是體驗「慣例優於設定」、「測試驅動開發」、「領域特定語言」等現代工程文化。無論最終選擇何種技術棧,這段經歷都會讓你成為更好的工程師。