データベース機能をフル活用しないことが長所

Rails開発者のインタビュー記事

注目はここ

もっともHanssonは、ストアドプロシージャなどのプログラムをはじめとする、データベース機能をサポートしなかった点にこそRubyの価値があり、主流に逆うことで革新性を実現できると考えている。

railsのActiveRecordsでは、テーブルメタデータを利用して、命名規則や特定のカラム(idなど)を束縛し、それに合わせてテーブル設計をすることで記述量を減らしている。つまり、オブジェクト定義という場面で、いわゆるデフォルト値のアプローチを採用しているのである。また、テーブル間の連携のような制約については、DBMSに依存させずにruby側で記述することで、sqliteを含むさまざまなRDBMSでも利用可能になっている。join?なにそれ。このへんは、既存のO/Rマッピングのアプローチとは一線を画している。

railsは確かに処理負荷が高いかもしれないが、表示系のCGIで遅ければ、リバースプロキシ+キャッシュをかますのが一番単純だと思う。設計を犠牲にするようなコードチューニングは最終手段だ。