明けましておめでとうございます。
エンジニアの松浦です。
今回はJavaScript Rising Stars2024をタネに2024年に流行したJavaScriptライブラリについて紹介したいと思います。
ちなみに去年も書いており2023年版はこちらです。
JavaScript Rising Starsとは
前回の記事でも書いているのですが、もちろんこの記事を読む人が必ずしもJavaScript Rising Starsのことを知っているわけではないと思うので簡単に解説します。
JavaScript Rising Starsとは、JavaScriptライブラリのトレンドを紹介しているbestofjs.orgが、毎年最もホットであったJavaScriptライブラリのランキングを発表しています。(2024年で第9回目)
選考基準としては1年間で増えたライブラリのスターの数です。
スターとは以下画像のように各ライブラリのGithubページにある星マークのことです。
累計数ではなく、1年間で増えた数のためJavaScript Rising Starsをチェックすると1年間のトレンドがわかるのが特徴です。
2023年の振り返り
2024年の結果を知る前に2023年の結果を振り返っていきましょう。
2023年のTOP5は以下でした。
みなさんどうでしょう?使ったことはありますか?
私は去年記事を書いてからshadcn/ui, Bun, Next.jsを触りましたので解説していきたいと思います。
shadcn/ui
shadcn/uiはReactのUIライブラリなのですが私はこれまでMUIを使用していたのですがこれから徐々にshadcn/uiを使おうかなと思うくらいいいライブラリでした。
このライブラリを使うメリットはshadcn/uiは従来のUIライブラリと違いインストールした時にnode_modulesに取り込まれるのではなく、ソースコードのcomponent/uiディレクトリ上に直接取り込まれます。
tailwindCSSを用いて容易にスタイルをカスタマイズができることや、shadcn/uiのソースコードを直接変更することができるので自由にカスタマイズできることから拡張性が他のライブラリと比べて高いなと感じました。
デメリットというか気になったところを上げるとすると、取り込まれたcomponent/uiの中身のコードを見るとわかるのですが一部のコンポーネントはradix-uiなど別のUIライブラリに依存しており、UIライブラリ(shadcn/ui)を使用しようと取り込んだら別のUIライブラリ(redix-ui)がそのコードの中で使われているという入れ子構造にはなっていてこれはshadcn/uiの設計思想的にはOKなのかな?とは思いました。
具体的にどんなコードが取り込まれるのか確認したい方は例えばButtonコンポーネントを取り込んだ場合にはこちらのページのInstallation/manualの欄の2番目に実際のコードが載っているので参照してみてください。
Bun
BunはNodeやDenoと同じようなJavaSctriptランタイムです。
以前の私の記事でBun Shellという機能を利用してJavaScriptの構文のままシェルスクリプトを書けることについて紹介したので気になる方は是非読んでいってください。
Next.js
Next.jsはもう言わずと知れたReactのフレームワークですね。
Reactはv18系からReact Server Components(以下RSC)という機能をリリースしましてこれまでのReactの設計思想とは大きく異なる転換期を迎えました。
RSCはサーバーサイド上でコンポーネントを生成しレンダーする仕組みですがv17系以前のReactはクライアントサイドで全て処理してしまおうという設計思想でした。
1 2 3 4 5 |
<script src="https://unpkg.com/htmx.org@2.0.4"></script> <!-- have a button POST a click via AJAX --> <button hx-post="/clicked" hx-swap="outerHTML"> Click Me </button> |
ここで実装されているボタンを押下すると、/clicked に AJAX リクエストを発行し、ボタン全体を HTML レスポンスに置き換えます。
私は専らフレームワーカーなので全ての記述をHTML属性で記述することに現状はあまりモチベーションがないのですが人間は思想がコロコロ変わるものなので1年後2年後には考えが変わっているかもしれないなと思うくらいには設計思想に納得できます。
React
フロントエンド部門の2位はReactになりました。
Reactは遂にv19がリリースされ今後も進化が期待できそうです。
React v19で追加された要素の中でカスタム HTML 要素が注目されています。
Reactの公式声明としてReactの将来のバージョンにはカスタム要素に対するより包括的なサポートが含まれる予定ということが示唆されています。
React の将来のバージョンには、カスタム要素に対するより包括的なサポートが含まれる予定です。
React パッケージを最新の実験バージョンにアップグレードして試すことができます。
react@experimental
react-dom@experimental
React の実験バージョンにはバグが含まれている可能性があります。本番環境では使用しないでください。
Rising Starsのコメントではこのような動きがあったことを記載していました。
Solidの作成者であるRyan CarnatoはWeb コンポーネントが未来ではない理由 について書き、物議を醸しています。この投稿では、Lea Vera が興味深い回答を寄せており、「最も生産的だと思うツール」を使用すべきだと結論付けています。
Ryan Carnatoの投稿およびコメント欄の議論は読んでおくと今のフロントエンド技術の最先端ではどんなことが議論されているのか確認できるのでいいかもしれません。
Svelte
今年のフロントエンド部門3位はsvelteでした。
Svelteもバージョン 5でメジャー リリースされました。目立った変更点は、リアクティブ状態を宣言するための明示的なメカニズムである「ルーン」の導入です。Svelte がState of JS の結果で最も高い肯定的な評価を得ていることは特筆に値します。
State of JS 2024を見るとこのようになっています。
ただ、Usageの項目はやはりReactが突出しているのが見て読み取れるかと思います。
2024年バックエンド/フルスタック部門
Next.js
Next.jsは4年連続で1位になりました。
上記で私からのコメントは記載してしまったのでRising Stars公式のコメントを記載しておきます。
Next.js は4 年連続で最も人気のあるフルスタック フレームワークの地位を維持しています。バージョン 15リリースでは React 19 がサポートされ、新しい Cache API を活用してパフォーマンスが向上し、ビルド ツールとして Turbopack が全面的に採用されたことで開発者エクスペリエンス (DX) が強化されています。
Hono
今年の2位はHonoでした。
Honoは炎から命名が来ているみたいですね。
2年前くらいから盛り上がっているのを感じてきていますがいつか触りたいなと思いつつ触れていないフレームワークです。
以下にRising Stars公式のコメントを記載しておきます。
このカテゴリーの新参者はウェブサーバーHonoで、2位を獲得しました。Express (15年の歴史があるにもかかわらず15位にランクイン) の現代的な代替品と見なすことができ、 Node.jsはもちろん、Deno、Bun、LambdaやCloudflare Workersなどのサーバーレス環境など、複数のJavaScriptランタイムで実行できます。フットプリントが驚くほど小さいのが目立ちます。作成者によるストーリーをお読みください。
Expressからの世代交代が言及されていますね。
Astro
今年の3位はAstroでした。
Astro はコンテンツの多いアプリケーションを構築するための多目的ソリューションになりました。バージョン 5リリースでは、新しいコンテンツ レイヤーが導入され、ファイル システムや外部 API など、あらゆるソースから型安全なデータ取得が可能になりました。
私はこのサイトを構築するために Astro を使用しましたが、DX (宇宙飛行士と呼ぶ CLI がとてもかわいい!) とそれが提供する優れた Web パフォーマンスに感銘を受けました。
最後に
ここまでご覧いただきありがとうございました。
私はJavaScript Rising Starsを題材にアウトプットをするということを3年やっていて大分JavaScriptのフレームワークに関する知識がついてきたなと感じてきています。
初回はギークフィードに入社したての時に自己紹介も兼ねたLTをやるということでいい題材がないかなと題材選びしていたのが最初で、去年今年はブログの題材にしています。
ここで紹介しているフレームワークの大半は自分で使ったことがあるというわけではありませんがそれぞれの設計思想やどういうことが得意なのかがわかるようになってきてアウトプットをすることの大切さを実感しています。
言うなれば本は読んだことがないけどそれぞれの本の関係性や主張を抑えている司書さんというところでしょうか。
他にも技術ブログをあげているのでそちらもよろしければ見ていってださい。
また、株式会社ギークフィードでは開発エンジニアなどの職種で一緒に働く仲間を募集しています。
弊社に興味を持っていただいたり、会社のことをカジュアルに聞いてみたいという場合でも、ご気軽にフォームからお問い合わせください。その場合はコメント欄に、カジュアルにお話したいです、と記載ください!
- 去年1年間で最も勢いのあったJavaScriptライブラリを見ていく【JavaScript Rising Stars 2024】 - 2025-01-09
- Next.jsでAmazon Connectの標準CCPを埋め込み動的データを取得する方法 - 2025-01-06
- Twilio Flex v2.x.x系でLINE連携を実装する方法 - 2024-12-23
- AWS Bedrockを活用したAI生成テキスト評価と再生成の実装技法 - 2024-06-17
- AWSから公開されたJavaScriptランタイム「LLRT」を使ったLambdaをAWS CDKで構築する方法 - 2024-02-19