フレームワークの動向
最近のフレームワークの動向について、再びRubyを基に考察します。
RubyのRuby on Rails(RoR)はWebサービスにおける「アジャイルソフトウェア開発手法」の寵児のようなフレームワークになりました。RoRはWebアプリケーション開発に必要なほとんどの機能を内包しているため、規模の大きいサイトであっても、今までよりも短い期間で構築を可能にしました。しかしながら、その膨大な機能を統合するために定義された制約によって柔軟性を失ったため、サイトの規模に応じたカスタマイズやチューニングをすることが容易ではなくなりました。
Rubyの次世代フレームワークMerbの作成者であるEzra Zygmuntowicz氏は、自身のWebサイトで昨年末に次のようなアナウンスをしました。
「Merb is Rails」
私たちは、お互いの違いはいったん脇において、
全体の利益のために一緒にやれないかどうか話し合いをはじめました。
ロードマップを明確にして、Merbのよくできているフィーチャのうちから、
どれをどうやってRails 3.0に統合するのかを決めました。
この計画は素晴しいものになったと思います。
Railsは現存するフレームワークのなかで最高のものになるでしょう。
Merbを開発して気づいたさまざまな利点を取り入れつつも、
みんなが気に入っているRailsのセンスの良いところは依然として保たれたままになるのです。
【参照元URL】
・Merb *is* Rails:Brainsql.at
・MerbはRails 3.0にマージされる:InfoQ(日本語訳)
Web 2.0が提唱され、多様化するWebサービスに対応するために、RoRではMerbの軽量性・カスタマイズの自由度を取り入れた次世代のものを目指しているようです。
MerbはRubyの豊富な機能ゆえに存在する柔軟性・拡張性という面での欠点を解決するために作られたフレームワークです。Rails 3.0にMerbが統合されるというのは、1つのフレームワークで“大規模⇔小規模”に関係なく適応できる柔軟性を持たせたい、つまり1つのフレームワーク内で多様化するニーズに対応できるようにしたいという意図があります。
この動向はRubyだけの試みだけではなく、この連載で取り上げているPHPやPerlなどの言語でも同様に、「必要十分な機能を備えたもの」に対する回答として軽量なフレームワークを開発しようという流れがあります。
つまりWebアプリケーション開発では、フレームワークを使用して基本機能を構築するという思想が定着してきていることを示唆しています。
