Webアプリケーションフレームワーク

フレームワークを採用すると、ある特定のジャンルに強くなる代わりに他のことに弱くなる。しかしジャンルごとにラージスケールのフレームワークを作るわけにはいかないので、その中でも共通モジュールとなるもの*1をコアとする。フレームワークはレイヤーで分離しなければいけない。と考えてました。

例えば、30フレーム未満のFPSと、60フレームの1on1対戦格闘では求められているロード時間、グラフィックやアニメーションの精度、コリジョンやAIが全然変わります。そんな中で共通に用意できる下位機能はおのずと限定され、モジュールの再利用を促すランタイムシステムが重要になってくる。それをうまく作ることでオールジャンルの下支え構造ができる。

……という話なんですけど、はたと気づいたんですが、Webアプリケーションってそれ自体がひとつのジャンルなんですね。だからみんなフレームワークフレームワークって言ってるんだ。こんだけフレームワークがあっても設計がほとんど同じだし、RubyRailsだけで済んでる理由もそれか。

*1:例えばメモリアロケータや数学ライブラリ