HTML5Experts.jpのエンタープライズ特集第三弾として 酒巻瑞穂 氏による「エンタープライズで使える!実践から学ぶJavaScript MVCフレームワークの選び方」が掲載されました。同氏のハック能力については天才的なスキルを有するエンジニアです。
テーマがJavaScriptフレームワーク選びですが、各地でセミナー等で比較するイベントが開催されているように「何を使えば良いのか分からない」といった声を確かに良く聞きます。
JavaScriptフレームワークの比較指標
「JavaScriptフレームワークの5つの指標」を上げられていました。
- 学習コスト
- 開発の容易性
- コードの統一感
- ロックイン
- 運用コスト
問題はこうした指標を取り上げて比較する意味が本当にあるのだろうかということです。フレームワークでもライブラリでもそうですが「学習」というのは必ずしなければなりませんし、自分達がコーティングしたモジュールの一部分がJavaScriptフレームワークなので当然ロックインされます。
ここで書かれている「運用コスト」というのがよくわかりません。調べると一般的には次のような定義として記載されています。
運用コストとは、コンピューターの機材やシステムを保守、管理するために必要となる費用のことである。総じて、運用のための維持費のこと。
「機能から見る、フレームワークの責任とコスト」から運用コストはフレームワークに対する次のことのように思えますが、そうすると余計に意味がわからなくなりました。
- バージョンアップ/パッチ対応に対する費用
- 不具合時に掛かる費用
フレームワーク選びに関して重要なのは「5つの指標」ではなく最後に記載されている「Web標準とJavaScriptフレームワーク」です。
重要なことは
現在我々が開発しているHTMLはWeb上の文書を記述するためのマークアップ言語でありもともと「アプリケーション」を作るものではありませんでした。JavaScriptを使ってDOMを操作することでアプリケーションのような振る舞いを持たせる努力が行われています。今回上げられたJavaScriptフレームワークの位置づけも「アプリケーションのような振る舞いを持たせるもの」を効率良く開発するためのものです。
将来的な方向性としてはGoogle I/Oでも取り上げられた
- Web Components
- Object.observe()
から理解できるように、HTMLは文書を記述するためのものではなくアプリケーションを作るためのものに変化しようとしています。ようやく本物のアプリケーションツールになります。そうすると必要となるフレームワークも変化していきます。
過去優れていたフレームワークはこれからも優れている保証はどこにもないし、今優れていても将来優れているかは不明です。
ただ、先に上げた「Web標準」というものを意識すると、選ぶべきフレームワークは何が良いのかというのが見えてくると思います(マネージメントレベルの話になるとまた別の考えがあるかもしれませんが)。
最後に
何はともあれ「色々考えるよりもいいからさわってみて」が本音ですのでハンズオンイベントやもくもく会などに足を運び「コードを書く」ということを多く経験するのが良いかと思います。