Ruby on Railsの前バージョンのリリースから1年もたたないうちに、4000以上のソースコードコミットを経て、Rails 3.0がリリースされた。
Rails 3はただの機能拡張ではなく、Rails 2.3とかつてのライバルMerbとをマージしたものであり、両者の優れた点を合わせたものとなっている。まさに、2.3から3.0へのメジャーバージョンアップに相応しい。
Merbチームが我々の仲間に加わり、フレームワーク不可知主義、内部のスリム化と高速化、少量の魅力的なAPIといった、様々な優れたアイディアをもたらしてくれました。
内部をクリーンアップしたことに加えて、もちろん新たに追加された機能もある。リリースノートによれば、新機能には次のようなものがある。
- RESTfulな宣言に重点を置いた新たなルータ(詳しくはYehuda Katz氏のブログを参照)
- Action Controllerをモデルにした新しいAction Mailer API(詳しくはMikel Lindsaar氏のブログを参照)
- 線形代数にもとづいて構築された、Action Recordのチェイン可能なクエリメソッド(詳しくは新APIのページを参照)
- Prototype、jQueryなどのドライバを使ったUnobtrusive JavaScriptヘルパー(インラインJSの終焉)
- Bundlerによる、明示的な依存関係の管理
それ以外に注目すべき点としてはセキュリティがある。Yehuda Katz氏はSD Timesのインタビューで次のように述べている。
我々は、Twitterでの'Railsのセキュリティツールは、今のところとても手作業が多い'という話をもとに、まだ残っているセキュリティ上の脆弱性について検討しました。[クロスサイトスクリプティングを防ぐために..] 我々は、ほとんどのケースで、Railsユーザが何もする必要がないように、Railsの内部でフォームのタグをエスケープするようにしました。[..] Rails 3では、偶発的なクロスサイトスクリプティング攻撃はほぼ不可能です。
Rails 3.0をより詳しく知りたい場合は、前のバージョンからの変更を極めて詳細に取り扱っているリリースノートを参照して欲しい。また、Yehuda氏もこの一年を振り返ってというブログを書いている。これは、リリースノートと比べると、変更の概要を俯瞰した内容になっている。Jeremy McAnally氏は、彼のブログで"スキルとコードをRails 3に対応させる"ための連載を始めた。最初の投稿は、Railsにどんな変更があったのかについての外観、その次の投稿は、アップグレードのアプローチに関する内容になっている。その他にも、RubyInsideにはRails 3に関する36のリンクが掲載されている。
Rails 3.0はRuby 1.8.7、1.9.2、およびJRubyで動作する。しかし、IronRubyのメインブランチ(それは、もうすぐIronRuby 1.0としてリリースされる予定)はRuby 1.8.6のサポートに焦点を合わせているため、IronRubyではまだ動作しない。IronRuby 1.0リリース後、IronRubyプロジェクトはRuby 1.9系のサポートにシフトし、Rails 3に対応することになるだろうが、目下のところ、Rails 3を動かすためにIronRuby 1.0でRuby 1.8.7をサポートするかどうかについて、IronRuby-coreメーリングリストで議論されている。
あなたのアプリケーションをRails 3.0にアップグレードできるかどうか、RailsPlugins.orgを調べてみて欲しい。このサイトでは、Railsプラグインと、それが3.0と互換性があるかどうかといった情報を管理している。
Rails 3の最終リリースの日付は、まだアナウンスされていない。あなたはRails 3についてどう考えているだろうか?アプリケーションをもうRails 3にアップグレードしてみただろうか?