サイトアイコン KOKENSHAの技術ブログ

JavaScript三大フレームワーク2018ファイナルアンサー:Angular 対 React 対 Vueどっちがいいか!

目次

宗教戦争!

そうです!プログラミングの世界では宗教戦争の世界です!笑。

Editorと言えば、

Vimなのか、Emacsじゃないのか

Atomなのか、Sublimeなのか, VSCodeなのか

精選!プログラマー秘宝Editor(2018)

ウェブアプリケーションでいうと、PHPのウェブアプリケーションフレームワークなのか、Ruby on Railsなのか

この記事で話すJavaScriptのフレームワークももちろん例外ないです!

(これから、明示的な説明がない限り、この記事ではJavaScriptフレームワークというのはフロントエンド用のJavaScriptフレームワークと言います。)

Angular.jsなのか、React.jsなのか、Vue.jsなのか

(1つお断りですが、私は、限られている時間とリソースの中で、可能な限り調べていますが、決して3つのフレームワークあるいはライブラリーに精通して、隅々まで全部把握しきている訳ではなく、仮にマスターしたとしても、JavaScriptフレームワークのエコシステムがものすごいスピードで進化していますので、少し時間が立つと、色々内容が変わってしまいます。なので、私の現段階の体験や理解の内容が多かったりします。その前提でご参考程度でお読みいただければと思います。)

(もちろん、他のJavaScriptフレームワークもいっぱいあります:Ember.js Riot.js, Knockout.js, Polymer.js etc.それぞれ性質が微妙に違ったりもします。フレームワークよりのものがあれば、ライブラリー寄りのものもあります。)

今日は、2018年です。そろそろファイナルアンサーを出したいと思います!(というより、ファイナルアンサーを出していただくための、参考材料を少し私的にご提供できればと思います。もちろん、全て正しい、あるいは絶対だというものではなく、あくまでも私の角度から見た一面にすぎません。)

一体、JavaScriptのフレームワークはどれがいいのか?

特に、これから、JavaScriptフレームワークを選定するIT担当者や、CTOにとって

どういった理由で、選ぶのかがとても重要で

いったん選んだら、しばらくそのフレームワークの上で、実装を展開しなければなりませんし

途中で切り替えるのが膨大はコストがかかりますし、そもそも納品日もありますから、そんな簡単に舵を切ることはできないはずです。

なので、選定の段階では、じっくり吟味したいですね。

この記事では、その選定の際に、少しでも有益な情報を提供できたらと思います。

また、この記事も、書いたら終わりではなく、常に最新の情報、知見を盛り込んで、内容の鮮度を更新していきたいと思います。(この記事というよりは、このブログサイト全体がそういうポリシーで運用しています。全ての記事を定期的に更新しています。)

知らないと始まらない

まずそれぞれのフレームワークを見て行きましょう。

JavaScript界隈ですと、最近のトレンドにすごく感心しているはずです。

数年前のウェブアプリケーション開発と言えば、PHP言語で開発するものあるいは、Ruby On Railsというウェブアプリケーションフレームワークで開発するものが多かったです。(もちろん、今も大きいなシェアになっています。)

JavaScriptと言えば、よく耳にするのはjQueryだという時代も過去になっています!(厳密に言えばライブラリーで、他のJavaScriptフレームワークと同じカテゴリーではありませんが、ここで比較のために、取り上げます。)

代わりに、モダーンな今風のセクシーなウェブアプリケーションフレームワークは何と言ってもJavaScriptでしょう!

合言葉はSPA(Single Page Application)です!笑(SEOに弱いのを置いといて。。。)

実は、

大体のことはみんな知っているはずですが、比較のために一回整理して行きましょう。


Angular.js

Angularと言っても、Angular.js(1.x)系 https://angularjs.org/

とその後の2.x系があります。https://angular.io/

記述の仕方も変更があったり、色々変わったことが多く、まるで別のフレームワークになっているようだという意見もあります。

Angularという言葉を聞くときに、それは1.x系なのか、2.x系なのかをご留意ください。

私が、JavaScriptフレームワークの中で一番最初に覚えた・たっぷり使ったものです。最初にAngular.js(1.x)を使ってウェブアプリ開発するのが楽しくて、喜びの連続でした!双方向データバインディングが感動でした!

双方向データバインディングとは、データの変更があればUIの表示を更新し、UIの変更があればデータの更新を自動的に行う機能を指します。

つまり、わざわざ、更新のロジックを書かなくてもいいです。今は当たり前ですが、同時最初にウェブの開発でこれができるのは魔法のように見えました!笑。


React.js

Facebookが相当注力しているJavaScriptのフレームワークです!

React Nativeとは何か?


Vue.js

アリババのが採用しているJavaScriptフレームワークです。

軽量で、APIがAngular.js(1.x)から影響を受けたものが多いです。双方向データバインディングのところがAngular.js(1.x)と似ています。Angular.js(1.x)に馴れ親しんだ私にとっては、Vue.jsもとっつきやすいです。

https://risingstars.js.org/2017/ja/#section-framework

vueの人気ぶりがすごいですね。大企業がバックアップしていなくてもこんなにコミュニティーの支持と人気を得られましたね。

結論

なかなか、どれが一番だということは言えませんが、皆さんのプロジェクトの状況に合わせて

お選びいただければと思います。

どれが一番優れているとか、どれが一番人気とかいうよりは

どれが一番今度のプロジェクトの適しているかが一番の重要なポイントかと思います。

プログラミング言語やフレームワークに私は特にこだわりがなく、どの言語も、どのフレームワークも、ユースケースに合えば、バリューの提供ができると思います。

JavaScriptフレームワークに限らず、世のかなの全てのものがどれも、一長一短があります。

短所ばかりのものもなければ、長所ばかりのものもありません。

適材適所で選びましょう。

(私個人的には勉強のために、vue.jsをこれから試してみたいと思います。)

弊社のところでは、一部React.js、ReactNativeがっつりやっております。 Angular.js(1.x)も使っています。

余談ですが、React Nativeで開発しているアプリは、こちらで公開しています。

https://hojokinreach.com/landing/

また、弊社が制作している数多くのサービスとウェブサイトがAngular.js(1.x)で書いています。

最近、SEOの重要性を痛感しまして、一部のサービスを学習を兼ねて、書き直そうかなと考えております。

(社内システムや、管理画面、などSEOの関係ない応用としては、最高に書きやすいフレームワークです!)

その時の、候補として、vue.jsをベースにしたNuxt.js にしようかなと考えております。

nuxt.js簡単に試せる!(ページを作るまで)超簡単手順

JavaScriptの世界の素晴らしさとサーバーサイドレンダーリングのパワーを手に入れたら、最高じゃないですか!笑。

特に私個人にとって、Angular.js(1.x)の双方向バインディングの「感覚」がそのまま「使える」のが大きいなメリットですね。

あと、軽量のところも注目しています。

今後、nuxt.jsを使った感想とかもここで皆さんと共有して行きたいと思います。

では、また!

Happy JavaScripting!

[amazonjs asin=”4863542453″ locale=”JP” title=”基礎から学ぶ Vue.js”]

[amazonjs asin=”B01MUS2RP9″ locale=”JP” title=”JavaScriptエンジニアが手っ取り早くReactの基礎を理解するための「超」入門書”]

[amazonjs asin=”4774191302″ locale=”JP” title=”Angularアプリケーションプログラミング”]

node.js+express.jsサーバーのmongooseで、async/awaitを使えるようにする!簡単確実!

モバイルバージョンを終了