2023年フロントエンドプログラマーになりたいあなたへ伝えたい記事
こんにちは、フロントエンドプログラマーのぴろです。
ほぼ 4 ヶ月ぶりにまともに記事を書くということで、久しぶりに原点回帰し、2023 年 7 月現在、自身が把握している範囲でフロントエンド界隈の浅い話を書いていこうと思います。
これからフロントエンドプログラマーを目指される方は、ぜひぜひ一読していただいて損はないかと。
日本のフロントエンドの状況について
まず大きな枠組みの話から始めると、日本と海外、とくにアメリカや中国とではフロントエンドにおける技術力に大きな差があると思っています。
アメリカや中国で生まれた Web サービスやフロントエンドに関する技術がどんどん日本にインプットされる一方、日本から海外へ向けたアウトプットは寂しいものがあります。
そういう自分も大して海外へアウトプットはしていないので大口は到底叩けないのですが…。
そこで、まずは日本のフロントエンド情勢について書いていこうと思います。
フレームワークについて
現在の日本の開発において、もっとも使用されているフロントエンドフレームワークはやはり Next.js な印象があります。
つまり React のリリースからはや数年が経ち、Vue.js や Svelte などのフレームワークも台頭してきた中で、なんだかんだでまだまだ React が使用されているということです。
自身もフロントエンドプログラマーに転身して 6 年?7 年ほど経ちましたが、99%くらいは React しか書いていません。
また React のフレームワークとして Remix も生まれましたが、こちらもなかなか Next.js を追い抜くことができず、もう少し Next.js 一強状態は続くのかなーと思っています。
とはいえ React も Next.js もフレームワークとしては少しずつレガシーになりつつあるのも事実です。
いつまでも React や Next.js 一強時代が続くのかと言われると…どうなんですかね?
個人的にはパフォーマンスどうこうよりは、書きっぷりと周辺パッケージの面で React が勝っている印象があるので、ここの牙城はまだ崩れないのかな?とも思いつつ。
これからフロントエンドプログラマーを目指される方は、まずは React(Vite)で書きっぷりやエコシステムをしっかりと学び。
その後 Next.js へと歩を進めるのが無難なのかなと思います。
スタイリングについて
以前は Styled Components や Chakra UI あたりを耳にすることが多かったですが。
現状はフレームワークを使用するのであれば Tailwind 一強、使用しないのであればなんだかんだで CSS Modules なのかなーという印象です。
日本人のフロントエンドプログラマーはとくに CSS に弱いため、個人的にはあいも変わらず CSS Modules 推しではありますが。
エコシステムについて
Redux は死にました、Redux に類似するパッケージも使う必要はまったくありません。
とはいえ最近はフロントエンドとバックエンドの距離が近いため、これといった強い選択肢がある印象もないです。
どちらかといえばバックエンド側から提供されている SDK に型を当て込んで使用するパターンが多いような気がします。
無難に作るなら SWR や React Query、Applo Client あたりを使用しておけば、多少レガシーさは感じるものの、無難に開発はできるかなと。
デプロイ環境について
体感としては、趣味の開発であれば Vercel、仕事の開発であれば AWS を選択しているケースが多いのかな?という印象です。
趣味の開発であればデプロイ先はもちろんのこと、DB を含めたバックエンド周りも自由に選択して良いと思います。
一方仕事となると、やはり Amazon の安心感は強いのか、すべての実装感を AWS に寄せるケースが多いのかなという印象です。
とはいえフロントエンドプログラマーを目指すのであれば、最低限 Next.js で Node を使用した Api の実装を行える状態まで持っていくことは必須だと思いますので、以前よりもフロントエンドプログラマーになるためのハードルはグッと上がっていると思います。
そういえば数年前は BFF がどうこうみたいな話も耳にしましたが、ここ最近はさっぱり聞きませんね…。
自分であれば Next.js の Api Routes から Prisma を介して DB にアクセスする実装感が楽でオススメかなと思いますが、AWS を使った実装感だと少し厳しいような気もしつつ…。
バックエンド環境について
バックエンド側もほぼ Node 一択な時代がついに来ているなと感じます。
まだまだ求人上では Go や Rails といった選択肢も強いですが、正直それらを学ぶのは個人的にはオススメできません。
フロント側が JavaScript で書けるのであればバックエンド側も JavaScript で書けたほうが楽じゃん理論は、間違いなく正しいのかなと。
とくに Nest.js(Next.js ではない)については、おそらく今後もしぶとく使われるのかなと個人的には思っているので、勉強して損はないかと。
プロトタイピングツールについて
Figma 一強状態が続いているので、触れて損はないと思います。
他のプロトタイピングツールについてはまー名前を聞かなくなりました。
逆に Web サービスを展開している求人で、Figma を使用していなければ避けても良いほど Figma が強い状態かと。
個人的にも Figma は良いツールだと思っているので、まだまだ使われていくのかなーと思います。
日本と海外を比べて
日本と海外では技術力に大きな差があると書きましたが、ここからは具体的にどういうところで差があるのか書いていこうと思います。
フレームワークなどを開発している会社やコミュニティが存在しない
React であれば Facebook(現 Meta)、Angular であれば Google、TypeScript であれば Microsoft のように、大手のフレームワークは会社規模での開発および保守が海外では当たり前のように行われています。
一方で日本となると、個人単位でコミットを行ったり、個人単位でパッケージの開発を行われている方はちらほら見かけるものの。(Rails とかその最たる例ですよね)
会社での開発と比較するとどうしても太刀打ちできない現状があります。
Web サービスですら海外展開に長年苦しんでいる日本企業ですが、フレームワークのような話になってくると、技術者もいなければ発想もアイデアも存在しないため、多分今後も衰退の一途を辿っていくと思われます。
デザイン面がとかく弱い
日本では UIUX デザイナーの育成がまったく進んでおらず、待遇も改善されないためどこの現場もプロトタイプがひどい有様です。
またフロントエンドプログラマーについても、数は多いものの技術力を持ったプログラマーは本当に少なく、今後も海外に通用する Web サービスは生まれてこないかなぁといった感じです。
加えて仕事ができて行動力があるプログラマーは少しずつアメリカに移住しつつあるので、やはり日本のお先は真っ暗です。
あくまで主観による内容なので、もしかしたら大きくズレている部分もあるかもしれないです。
個人的なまとめとしては以下のような感じです。
- フロントエンドプログラマーを名乗る人はかなり増えてきている
- 一方できちんとフロントエンド開発ができるプログラマーは本当に数が少ない
- フロントエンドプログラマーが対応しなければいけない範囲が数年前と比べかなり広くなっており大変
- 日本ではいろいろと厳しい
そんな感じです。