アリスです。
変化の激しいWeb界隈。
特にフロントエンド(ユーザの目に見える部分)を作るためのプログラミング言語であるJavaScriptのフレームワークは15ほどあります。
なんでそんなにたくさんあるのか??
簡単に述べると、各々が「我こそがみんなを満足させる標準フレームワークを作ってやる!」
と開発にいそしんだ結果です。
2006年8月にJavaScriptのライブラリであるJQueryが発表されるのをきっかけとして、
JavaScriptの戦国時代が始まったのです。
今回JavaScriptフレームワークの中でも特に人気のReact(リアクト)、Vue(ビュー)、Angular(アンギュラー)について比較したいと思います。
人気度
下記の図は数値は人気度を相対的に表したものです。
絶対数ではないのでご注意ください。
実際に検索された数(検索ボリューム)から、人気度を測定しています。
これをみると、圧倒的にVueが人気ですね。
次がReact、そしてAnuglarが続きます。
Angularと比べると10倍の人気があるのが、Vueということになります。
下記のページで人気度を見ることができます。
日本人に人気のriot.jsや、Angular以前に流行ったBackbone.jsも入れています。
各フレームワークの作者
Vue(ビュー)
Googleで働いていたこともあるEvan Youという中国人によって作成されました。
2015年にバージョン1.0がリリースされました。
現在はEvan You及び、コミュニティによって開発されています。
React(リアクト)
FacebookのエンジニアのJordan Walkeというアメリカ人によって作成されました。
2014年にバージョン1.0がリリースされました。
現在はFacebookが開発及び、メンテナンスをしています。
Angular(アンギュラー)
Misko Heveryというアメリカ人の趣味のプロジェクトとして2009年に発表されました。
2012年にバージョン1.0がリリースされました。
現在はGoogleとコミュニティによって開発されています。
世の中の使用頻度
Angularは2012年~2014年にかけて様々なアプリケーションで使用されていたのですが、Angular2にバージョンアップしたことにより急速にフェードアウトしていきました。
Angular2で仕様が完全に変わってしまい、Angular1との互換性がなかったことが大きな理由です。
Angular1で作られたものをAngular2にバージョアップするにはソースコードを全て書き換えなければならなくなりました。
多くのユーザーが、どうせ書き換えるならReactに乗り換えようとした結果、Reactが一気に普及しました。
その結果、現在Reactで開発されているWebアプリケーションは非常に多いです。
また、2015年にReact Nativeがリリースされてからは、スマホアプリもReactで作れるようになり、さらに注目されています。
どれを使えばいいのか?
非常に難しい問題です。
AngularやReactは覚えることが多いです。中規模~大規模のアプリに向いています。
Vueはもっとも軽量で、学習コストも低いです。小規模アプリに向いていますが、中規模以上のアプリで使えます。
また、Vue以上にシンプルさや学習コストを下げたいのであれば、Riot.js(ライアット)というフレームワークもあります。
勉強するのであれば、Reactになるでしょうか?ただし、一つ問題があります。
Reactのオープンソース問題
2017年8月のことです。
Reactを使用するにあたってFacebookがつけている制約を解除しなければ、オープンソースとして認めないと業界から指摘されました。
指摘したのは、オープンソースソフトウェア開発プロジェクトを傘下に持つApache Software Foundationです。
Facebookがつけている制約というのは、「Facebookやその傘下の企業との間で特許紛争が発生している会社はそのソフトウェアを利用できない。」というものです。
しかし、指摘されたFacebookは、この制約は外さないと拒否しました。
このことが原因となり、Reactが下火となっていくのか?
注目です。
Angularの問題点
Googleが開発しているということで、安易にAngularの勉強を開始する人が多いです。
しかし、肝心のGoogleがAngularを使ってメジャーなアプリケーションを作成していないことは頭に入れておくべきです。
Reactを使ってガンガンアプリケーションを作成しているFacebookとは大違いです。
実際のメジャーなアプリ開発に使うことで、ユーザーからのフィードバックを反映して進化させることができるからです。
Vueの問題点
信頼できる大企業が中心となって開発されていないことです。
Angular、Reactと比べても、小規模なコミュニティーなので、中心人物の病気やケガなどにより、いきなり消えていく可能性もあります。
人気は高いので、引き継ぐ人はいるでしょうが、なんともいえません。
まとめ
10年後、上記3つのJavaScriptフレームワークは果たして生き残っているのか?
さらなる新しいフレームワークがでて、Reactなんて全然ダメだったね!といわれているのか?
はたまた、JavaScriptそのものが古い技術となり、新しい技術に置き換わっているのか?
Web業界のプログラミング技術には今後も目が離せません。