2020.12 追記
今と状況が違いすぎるので読まないでください!参考にしないでください!
Vue3サイコー
試用内容
- それぞれで、サーバー側のプログラム(api)を使った動的webサイトを開発。
- 全て内蔵のルーターや推奨ルーターを用いたSPA。
- Angularは2系、Riotは3系、Vue.jsは2系を利用。
Angular
機能性や安全・安定性に関してはなかなかよい。
複雑で大規模なサイトを作るならアリかもしれない。
ただ、自分のプロダクトで使いたいかと言われれば微妙。
設計はMVCフレームワークに馴染みがある人ならしっくりくると言うか、違和感なく理解できると思う。
TypeScriptも、JAVAやCなどの経験者なら特に学習は不要だし、純粋なJavaScriptよりも安全に書けてよい。
静的型付けなので問題有りな代入などはコンパイルで弾いてくれるし、テキストエディタのリアルタイムチェックもがっつり受けられる。
人数の多い開発の場合、今回比較する3つの中で最も破綻しづらいかもしれない。ただ、メンバーのレベルにバラつきがあると最初がつらそう。
学習コストの大部分は、MVCの仕組み、JSより厳格なTypeScript、のような理解に関する部分であり、既に近い技術の知見があるならその点での学習は不要になる。
(ここで「Angular難しい/そうでもない」派に別れるのだと思う)
ng-cliという開発を便利にするcliツールがある。逆に自力で開発環境を整えるのは相当しんどそう。
Riot
あまりのシンプルさと簡単さに驚き。
導入もjQueryのように読みこむだけ。
導入コストに関しては間違いなく一番。
Viewのみを担当するライブラリなので、例えばデータの取得はjQueryのajaxを使うなりFetchを使うなりして自分で組んでいく必要がある。
(場合によってはメリットになりうる)
コンポーネントを別ファイル化しつつscriptタグのsrc属性で読み込むことができるので、ビルドの仕組みを一切導入しなくても使える。
riot独自のルールを覚えなければいけない機会は限りなく少ない。
それなりに大きなプロダクトを作ろうとすると色々辛くなってくる。
あと、他の2つに比べると知名度が低く、検索で得られる情報は少ない。
「riot ほげ
」と調べれば「もしかして: react ほげ
」と言われてしまう。
ほんとにちょっとしたときに使うには手軽でよい。
Vue.js
Angularにちょっと似ていると思った。
Riotよりも高機能で、Angularほど大げさでもない。
一通りこなせるし、一番バランスがとれている。
最近は人気も高く、情報もしっかり得られるしアップデートも盛ん。使えれば仕事でも有利だと思う。
vue-cli経由で環境構築すると、かなりいい感じで必要なものが揃う。
Hello,worldレベルならRiotのようにソースを読みこむだけで使えるが、素直にvue-cliに頼るのがよさげ。
本格的なことをやろうとするとライブラリを選んで導入していかないといけないReactに比べ、vueは単体・またはvuexやvue-routerといった公式の拡張で一通りのことができる。
総評
基本的にはVue.jsがおすすめ。
Angularと比べても守備範囲に不足ないうえ、Angularより手軽で自由だと思います。
Riotは耐えうるプロダクトが限られているように思うし、残念なことに最近は名前すら聞かない…。
Reactは今から選ぶには後発のライブラリと比べてメリットが少ないように思えて触ってみる気になれなかった。