エンジニア採用担当者なら理解しておきたいJavaScriptの3大フレームワーク

本記事ではJavaScriptの3大フレームワークと言われる、「Angular」「React」「Vue.js」ついて解説します。

今日では、いずれかのフレームワークを採用している企業が増えてきています。一方で採用担当者は、どうしてそのフレームワークを採用しているのか、他のフレームワークに精通しているエンジニアが自社で活躍できそうか、などの疑問を抱えています。
本記事は、そのような疑問の解消を目的として、それぞれの特徴や違い、スキルチェンジについて紹介しています。

そもそもJavaScriptとは何か?

エンジニア採用の現場で、開発部署から上がってくる採用要件として、JavaScriptの経験者といものがよくあります。上に挙げた3つのフレームワークは、すべてJavaScriptのフレームワークです。まずは大前提となるJavaScriptを理解していないと、エンジニアのエントリーシートを見ても、どんなスキルを持っているのか分からないと思われます。

JavaScriptとは、動的なウェブサイト開発によく用いられるプログラム言語の1つ。HTMLで構成されたウェブページの中で、画像のスライドショーや上下に開閉するナビゲーションなどを見たことがあるはずです。こうしたページ上の機能(動き)を担当するのがJavaScriptです。
JavaScriptで動的なページを作りやすくするために様々なフレームワークが登場しました。その中でも代表的なのが「Angular」「React」「Vue.js」です。

「Angular」の基本的な特徴


Angularは一般的にアンギュラーと発音します。Googleと、個人や企業によって形成されるコミュニティで開発が進められています。Angularの最大の特徴は、フルスタックの開発フレームワークという点。フルスタックとは、必要な、又はいずれ必要になるであろう機能がほぼすべて初めから入っているということ。機能を追加するためのライブラリをいちいち調べる必要がないので、アプリ開発に専念できる点が、エンジニアにはメリットのようです。Googleが提供する各種サービス(Google Analytics、Google AdSenseなど)や、多くのウェブサイト開発で利用されています。

「React」の基本的な特徴


Reactはリアクトと発音します。Facebookと、個人や企業によって形成されるコミュニティで開発が進められています。Reactの最大の特徴は、なんといってもライブラリの豊富さ。その分本体の機能は最小限にとどめられており、自由に沢山のライブラリを組み合わせて好きな構成でアプリを作れる点がエンジニアには人気のようです。Facebookが提供する各種SNSサービス(Instagram、messengerなど)だけでなく、Netflixやニコニコ動画などの開発にも利用されています。

「Vue.js」の基本的な特徴


Vue.jsはビュー・ジェイエスと発音します。元GoogleのAngular開発エンジニアだったEvan Youさんを中心に開発が進められています。Vue.jsはAngularやReactが世に出て暫く立ってから登場したフレームワークで、AngularやReactと比べとても学習コストが低いフレームワークです。学習コストが低い分抵抗なく導入でき、最新テクノロジーの恩恵を受ける事ができます。また、日本語ドキュメントが充実しており、日本国内のコミュニティが活発で気軽に情報を取得したり相談できる相手が多い点は、それだけでも魅力的でしょう。中国最大のEC企業アリババが採用しているフレームワークとしても有名です。

各フレームワークで注意すべき点

いずれも多くのエンジニアに支持されるフレームワークですが、それぞれに注意すべき点があることも理解しておきましょう。

Angularには2つのバージョンがあります。一般的にAngularJSと呼ばれるバージョン1。これはSPA(シングル・ページ・アプリケーション)と言われるページ遷移を行わない単一ページの作成に向いているとされています。Web画面をひらいた際に、ほぼすべてのモジュールを読みこむため、ページ上でユーザーがなにかしらの操作をした場合でも、あらためてページを読みこむ必要がなく、ユーザーにストレスを与えない操作が可能になります。一方で、最初にページを開く際に時間がかかってしまう点や、検索エンジンにかかりにくいという弱点ももっています。
Angularのもうひとつのバージョンが、Angular2や、Angularと呼ばれるバージョン。上記のバージョンとはまったく別の新たなフレームワークですので、1から2へと簡単に移行することはできません。Angularと言ってもどちらの事を指しているのかを確認する必要がありそうです。

Reactの弱点と言われているのが、公式ドキュメント(取扱説明書のようなもの)が英語版しか存在しない点です。もちろんネット上には非公式の翻訳サイトが多数あるためあまり問題にはならないようですが、バージョンが変わったりした際にはすぐに対応できないというリスクもあるかもしれません。また、開発初期段階から高度なJavascriptのスキルと設計力が要求されます。

Vue.jsは個人のエンジニアが開発したフレームワークのため、大資本のバックアップがなく、サポート体制に不安があることが弱点と言われています。またReactやAngularのように初めから沢山の学習をしなくても作りたいものを「シンプルに、簡単に」作れるのを目指していると言われ、記述が簡単に感じるユーザーが多いようです。その分、他のフレームワークに移行する際、慣れるまでに時間がかかるという点も弱点かもしれません。

スキルチェンジは可能か

採用担当者として最も気になるポイント。それが各フレームワークのスキルチェンジは簡単に行えるものなのか、ということですね。

これらのフレームワークは、JavaScriptやTypeScript (※)を使用していますので、スキルチェンジにそう多くの時間は必要なさそうです。
一方でフレームワークごとに思想の違いがあるため、記述などの手法が違うことがあります。フレームワークごとの思想については、個別にキャッチアップが必要かもしれません。

※TypescriptはJavascriptにボキャブラリーを追加した完全上位互換の言語です。

いずれのフレームワークもより多くのエンジニアやユーザーに使用してもらうことを念頭に開発を行っているので、ハイレベルのエンジニアでないと使いこなせないものではありません。明日からでも即戦力として、開発チームの主力になってほしいというような求人でない限り、どのフレームワーク経験者でも、採用後にアンマッチを起こすということはないでしょう。

大切なのは学習意欲

なによりも大切なのは、そのエンジニアに学習意欲があるかどうかということ。いずれのフレームワークも、現在も開発がつづけられており、バージョンアップしつづけています。半年前とは仕様もトレンドもガラッと変わることもあります。そのためエンジニアは常にアンテナを張って、各フレームワークの技術を吸収しつづける意欲が必要です。
学習意欲の判断にはGitHubやQiita、個人ブログでのアウトプット量から推し量ることも可能です。またconnpassなどで公開されている勉強会への参加状況も参考になるでしょう。

この記事をシェアする
採用担当者様はこちら