文章

簡潔對彈性 – Ruby VS Java

最近 Ruby on Rails 出了一篇blog,講的是一個 Java vs Ruby 例子。事源有 Java Programmer Geert Bevin,為了看看 Java 寫出來的 Web Application 是否比起 Ruby 要多出很多行,所以寫了一個妨照 Ta-da listBla-bla list ,用了 Java RIFE Web Framework 和 Laszlo 技術。

Ruby on Rails 的開發者則回應了,並拿兩組同樣功能的 Code 來比較,結果當然是 Ruby on Rails 那一篇的 code 少許多。

這篇帶來了兩個陣形的激烈討論,有人認為 Code 太少反而不能知道真正的 Program 在做什麼,也有人認為 Ruby 的 Code 直達核心,讓 Rails 做了一些資料庫連接、限制等等設定,讓工作簡單了許多。

這就是 Flexibility 與 terseness 的限制。想寫得越 Flexible,就會變得 複雜。想寫得Terse,就會變得沒有那麼 Flexible。當然,這也得看Framework設計上有沒有考慮這兩點。

而實際上,沒有什麼誰對誰錯,只是大家喜歡以什麼方法去做事。有人喜歡 Java 夠嚴謹,一切都可以在自己的掌握之中,儘管那是複雜。有人喜歡 Ruby 的簡單潔有力,不過就會很依賴 Framework 去為你做事,少了彈性。

我自己則比較喜歡 Ruby on Rails 的理念:Do not re-invent the wheel,直接想解決的辦法,而不是糾纏於架設環境之上。這種思考模式,也比較靠向Business Layer,也正是懶懶 Programmer 不想應付繁複工作的籍口 LOL。當然,Flexibility 和 Terseness 兩者蒹得最好,我想「中庸之道」才是王道。

相關討論的小總結: Ruby vs. Java: A matter of taste

*