Google マップショック以降のフロントエンド技術を世代分けするなら、
第1 世代がprototype.jsやjQuery といったDOM 操作を中心に据えたユーティリティライブラリ、
第2 世代がAngularJS に代表されるMV *アーキテクチャを採用したmodel とのデータバインディングを行うためのフレームワーク
第3 世代の技術とは、React およびReact に影響を受けたコンポーネントベースアーキテクチャなフレームワークたち( React、Angular、Vue.js )
Angular
- Java 好きなGoogle らしいプロダクト
- コンポーネントベースといいながら他にもモジュール、サービス、プロバイダなどおぼえないといけない概念がやたら多い
- DI コンテナを始めとする、Java フレームワークにありがちなあの厳格な世界が好きな人にはいいのかも。Google ブランドに安心を感じられる人など
- Angular を採用する最大のメリットは、フレームワークとしてひととおりのものがフルスタックで提供されているところ
Vue
- AngularJS から派生したフレームワーク
- 多すぎるAngularJS の機能から不要なものを削ぎ落とし、データバインディングを始めとする必要最低限の機能にしぼった軽量なフレームワーク
- view のフランス語に相当する『vue』の名前
- Vueで評価されてるSFC(Single-File Component)163 も長期的に見ればコンポーネント
の再分割を難しくし、リファクタリングの障害となる。
- Vueが日本で人気なのはRails が強いせいで、サーバサイドのパラダイムから頭を切り替えられない人が多いから