フリーランスエンジニアの話

エンジニアとして日々感じてることを綴っています

VueとReact両方の案件を受注すべき?

前回のブログでバックエンドは色んな言語があるから大変という話をしました。

kenzotakahashi.hatenablog.com

 

フロントエンドでいうとTypescriptがありますが、これはJavascriptの延長なので一旦置いておきます。言語はJavascript一択で、フレームワークが数多くあります。

ここ10年でJSフレームワークが数多く生まれては消えていきましたが、今はReactとVue.jsの2強ですよね。そこにAngularが次いで、Svelteは徐々に人気を増しているという情勢です。

ReactとVue.jsをGoogle Trendで調べてみると、日本と中国と台湾でのみVue.jsの方が人気という興味深いデータが出ています。

Wantedlyで案件を検索しても、数年前よりReactとVue案件の数の差は縮まっており、今ではほとんど差がありません。

React vs Vue.jsについては星の数ほど記事が書かれているので、わざわざここで話しません。

僕はReactとVue両方業務で使ったことありますが、Vueの方が好きなのでVueの案件を優先して取っています。

エンジニアであればツールに好みがあるのは当たり前です。フロントエンドエンジニアは、どんなフレームワークの案件でも取るべきか、それとも自分の好きなフレームワークの案件だけ取るべきかについてお話しします。

ことReactとVueに関して言えば、どちらもバーチャルDOMを使ってるので、パラダイムは似ています。よって一つを学べばもう一つもある程度理解出来ます。それに最初の内はどちらが好みか分からないかもしれないので、どちらの案件も取っていくと良いと思います。

経験を積むにつれ好みが分かってきて、更により多くの案件を受注出来るくらい市場価値が高まってきます。その状態であれば、ReactかVueのどちらかに絞ることも可能になります。

僕は今その状態なので、Vueの案件だけ取ることにしました。最近ではReactの高単価の案件をお断りしました。そこまでVueが好きですね。やはりReactを書くのは結構しんどいです。

どちらもそつなく使うエンジニアからすれば「好き嫌いで選ぶなんて二流だ!」とか「プロジェクトによってどちらが適してるか変わるから一概に言えない!」と言いたくなるかもしれませんが、あるプロジェクトでどちらのフレームワークを使うかという技術選定の話をしてるわけではありません。あくまで、既存の案件でどちらを取るかという話です。であれば自分の好きなスタックの方が働いてて楽しいに決まってますよね。

ちなみに肌感覚で僕はVueの方がReactの2倍のスピードで書けます。勿論React2年に対してVueは4年近く書いてるので経験値の差もありますが、ここからReactだけゴリゴリ書いてもVueと同じ生産性を発揮出来る自信がないです。

AIの強化学習に学ぶ探索と活用のトレードオフ

僕は元々Web開発と同じくらいAIに興味があって、学生の頃から独学で機械学習を勉強していました。正社員時代はデータサイエンティストもしていました。ゲームAIでよく使われる強化学習に探索と活用のトレードオフというコンセプトがあります。探索というのは選択肢を比べてどちらが良いか見極めるというものです。活用というのはその中から選んだ選択肢をひたすら使い報酬を沢山得るというものです。

バンディットアルゴリズムというシンプルな例があります。スロットマシーンが2台あるとします。それぞれ勝率が違いますが、あらかじめ分かりません。スロットを何回も回せば回すほど勝率が高い精度で分かります。コイントスを3回だけしたら3回とも表になるかもしれませんが、1000回したら大体五分五分になりますよね。

この勝率が分からない2台のスロットマシーンを目の前にして、どういう順番でスロットを回せば一番儲かるかというのを計算するのがバンディットアルゴリズムです。

ちゃんと説明すると長くなるのでシンプルに要約します。

当然両方回してみなければどちらの勝率が高いか分かりませんから、最初の内は両方回します。回してる内に段々とそれぞれの勝率が分かります。そしたら勝率の高い方をより多く回します。でも完全に勝率の低い方を切ってしまうのはダメです。数多く回さないと正確な勝率が出ませんからね。

しばらく回すとより正確な勝率が分かりますから、そこからは探索する頻度を更に減らし、勝率の高い方をガンガン回します。これが活用です。

このアルゴリズムは3つ以上の選択肢にも使えます。人生の様々な意思決定において役に立つコンセプトです。

VueとReactを2つのスロットマシーンだと考えると、僕は最初の3年くらいは探索してました。そしてVueの方が生産性が高く尚且案件も安定して手に入ると分かったので、活用フェイズに入ったというわけです。

最後に

将来VueとReactがどうなっていくは分かりません。少なくとも向こう数年はどちらの案件も数多くある状態なので、ご自身の経験に応じて両方やるか一つに絞るか決めると良いと思います。