フレームワークの見極めどころ
皆さんはWebアプリを開発するとき、どんなフレームワークを使っていますか?
自分の長く使ってきたもの?最近流行のもの?
人それぞれ好みはあると思いますが、今後のWebフレームワークについて思うところを書きます。
フレームワークは適材適所
これに尽きます。では、どういう基準があるのでしょう?
- かなりお堅いシステム要件である
- 周りの人の技術スキルセット
- 開発スピードが求められる
- Web アプリのみでいいのか、スマホもいつか対応するのか
- 大人数がアクセスされる可能性があるのか
他にも基準があればキリがないですが、代表的なところはこんなところでしょうか。特に人数の入れ替わりの激しい組織であったりすると、もうその時点でマイナーなフレームワークは却下される訳です。そうなると・・どうせ Java か PHP あたりw
ただ、個人的にどっちも経験あるんですけど、もう時代遅れ感がすごいあるんですよね。。もちろん Play! framework や PhalconPHP などといったそういった言語でも比較的あたらしめだったらモチベーションのそこらもあるんですが、ふるーいやつを今からやれと言われても面白くも何ともない訳です。
もちろん、好みの問題だけじゃないです。
今後期待される Web フレームワークとは
今までは HTML の作成までが Web フレームワークの役割でした。それが最近は AngularJS, Backbone.js, Ember.js といったFrontend MVC とスマートフォンアプリの台頭で、一気に変わり始めてます。
これがどういうことを意味するかというと、今までほとんどのフレームワークに搭載されていたHTMLレンダリング機能がいらなくなり、それよりももっと大事なことが出てきたということです。
それがAPI化、それと同時アクセスに強いものです。
WebフレームワークはもはやAPI だけの役割を持てばよくなります。今後は、そのAPI機能に特化したフレームワークがメインとなってくることでしょう。
APIは今までのWeb開発に比べると出力がオブジェクトをjsonやxmlに変形して返せばいいだけなので、シンプルになります。
だからこそ、フルスタックでレスポンスが遅めのWebフレームワークであるRuby on Rails より、そのAPI機能に特化して負荷に強い Node.js である Restify などの思想はとてもよく理解できます。
Web用のサーバと、API用のサーバを切り分ければ確かに今までのフレームワークでも通用します。しかし、Webだけサーバ内に特別に用意するなんて開発時間とサーバリソースの無駄です。
結論
今後はスマホやその他新デバイスの登場により、Web HTML をメインにしてきたフレームワークはいらなくなる
APIに特化したWebフレームワークこそ、今後注目していくべき
ということでした。