開発

JavaScriptのフレームワーク3種類を比較。フリーランスが案件を獲得するために最も有利なのは?

更新日:

JavaScript

JavaScriptのフレームワークと言えば、少し前まではjQueryの知名度が圧倒的でした。

ところがいつの間にか「jQueryはもう古くてちょっとダサいからあまり使いたくないかも」的な扱いに。

現在、開発現場で使われることが多くなってきたのが下記3つのJavaScriptのフレームワークです。

Angular
React
Vue.js

このまま消えると思われたjQueryですが、DOM操作にはやはり便利なので少し見直された結果、この3つと併用するケースも増えています。

Angular

Googleとそのコミュニティによって開発されているので安心感があります。

ただし、使用言語がTypeScriptなので3つの中で一番学習するのが難しいというもっぱらの評判です。

他の2つと違って仮想DOMという技術を使っていないため、パフォーマンスはやや劣る可能性があるようですが、実際には大きな差はありません。

堅牢で厳格なシステムが作れることもあって、この中では比較的規模の大きいプロジェクトに向いています。

個人的には未だにIonic v1系の開発を続けていることもあってAngularJSとAngularの互換性の無さについて下記のような感情を抱いているため、残念ながらあまり積極的に選びたいという気持ちになれません。

・Ionic, v1.3.1の開発言語はAngularJS v1.5.3です。Ionic2へのバージョンアップに伴って開発言語もAngular2へとなりました。
・AngularJS(AngularJS v1系)からAngular(Angular2以降)へと名称を変更し、互換性が無くなってしまいます。
・Ionic1(AngularJS)からIonic2(Angular2)へのバージョンアップはほぼ作り直しとなるため、規模が大きくなってしまうとかなりの工数がかかります。Ionic2で作っておけばIonic4などへのバージョンアップも不可能ではありませんが、アプリ開発をはじめたタイミングが悪いと手遅れとなってしまいます。
・だいぶ完成に近付いているという印象の現在のAngularが今後、互換性を無くすような大幅な変更をリリースする可能性は低いものの、前科があるので場合によってはあっさり切られてしまうというリスクもゼロとは言い切れません。
・結果的にAngularに対する不信感は大きく、今後は絶対に他のフレームワークを選ぼうと心に決めています。この事件は決して個人的なことではなく、同じような経験をした人やこの話を聞いた人がAngularを敬遠することで需要にも影響を与えているはずです。

React

Facebookという大きな会社とそのコミュニティが開発しています。

ReactはJSXと呼ばれる独自タグを使わなければならないなど若干のクセはあるものの、基本的にはJavaScriptで書けるため、Angularに比べると難易度的には少し下がります。拡張すればTypeScriptを使うこともできます。

仮想DOMという技術を使っているため、パフォーマンス面も期待できそうです。

この中ではAngularに次いで2番目に堅牢さや厳格さを持ち合わせているので中~大規模のプロジェクトに向いています。

Vue.js

元AngularJS開発チームに所属していた人物とそのコミュニティによって開発されています。そのため、他の2つに比べて開発スピードはやや劣るかもしれません。

日本語のドキュメントが充実しているので調べものをする際に便利です。

従来のHTML、CSS、JavaScriptで書けるので親しみやすく、フロントエンドエンジニアにとっても取り組みやすいのが大きなメリット。

素のHTMLが使えることもあってこの中では一番学習しやすいと言われています。敷居を下げることも考慮されつつ、厳密に書こうとすればReactと同じようにJSXを使ったり、TypeScriptを使うこともできます。

よく言えば柔軟性があって悪く言えば曖昧になってしまっているといった状況がコードの書き方を含め、設計にも現れているのかもしれません。

その分、規模感や堅牢さは他の2つに比べて若干落ちるという印象です。

React同様、仮想DOMという技術を使っているため、パフォーマンスも期待できます。

アプリ開発について

Ionicを使ったアプリ開発をおこなう場合はAngularとセットになっているというイメージがありますが、今ではReactでもVueでもアプリ開発ができるようになりました。

この場合はApache Cordovaというフレームワークを使ったWebViewのハイブリッドアプリとなります。

Ionic1ではAndroidのWebViewがもっさりし過ぎてCrosswalkというプラグインを入れることで何とか使えるレベルになったということもありました。

現在は改善されてはいると思いたいですけど、WebViewにはやや不安が残ります。

その点、Reactにはネイティブアプリが開発できるReact Nativeというものが用意されています。

これはiOSとAndroid両方のプラットフォームで動くアプリを作ることができる仕組みでWebViewではなく、ネイティブで描画されるため、速度的にも期待が持てそうです。

React Nativeを使いたければReactしか選択肢がないのでJavaScriptのフレームワーク選びで迷わなくて済みます。

また、最近ではGoogleからFlutterというDart言語のアプリ開発フレームワークが登場し、こちらもiOSとAndroidで動作するネイティブアプリが開発できます。

案件を獲得するために最も有利なJavaScriptのフレームワーク

ここまではJavaScriptのフレームワークを比較してきましたが、仕事を受注したいフリーランスにとっては学習コストとか堅牢性とかよりも結局のところ需要が全てです。

ということでフリーランススタートでの求人数を比較してみました(2019/8/28現在)。

・Angular(AngularJSタグにて検索):全81件
・React:全339件
・Vue.js:全208件

上記の結果からReact > Vue.js > Angularの順に需要が高いことが分かりました。

ここでのAngularの低さは途中で互換性を無くしたことが影響しているかどうかは不明です。

ちなみにJavaScriptの募集は全1931件となります。

まとめ

これまでの内容をまとめると下記のようになります。

学習コストの低さ:Vue.js > React > Angular
日本語ドキュメントの豊富さ:Vue.js > Angular > React
堅牢性、厳格性:Angular > React > Vue.js
開発規模の大きさ:Angular > React > Vue.js
需要:React > Vue.js > Angular

これによると、一見Reactが有利なようですが、Vue.jsはその柔軟性の高さから今後は伸びるだろうという予測もあります。

バリバリのプログラマーはAngularかReact、UI/UXやCSSなどのデザイン寄りの作業と並行して開発する人はVue.jsといった選択も考えられます。

フリーランスのエンジニアは常に新しい技術をチェックしておかないと死活問題にも繋がりかねません。

個人的にはAngularJSを今でも使い続けているので、次に取り組むJavaScriptのフレームワーク選びは失敗しないようにしたいところです。

-開発
-,

Copyright© Workerブログ|仕事を続けるための工夫 , 2020 All Rights Reserved Powered by STINGER.