7回目のJavaScript ライジングスターにようこそ!

毎年恒例、2022年の12か月におけるJavaScriptエコシステムのトレンドプロジェクトを紹介していこうと思います。

今年の覇者は、笑顔の入ったおいしいパンです! 一年を笑顔で始められるのは、とてもよいことですね!


以下は、2022年の1年間で増加したGitHubのスター数によるランキングです。Webプラットフォームに関するベストプロジェクトを集めたリストであるBest of JSからの一年間の分析です。各プロジェクトをクリックすると、より詳細な情報を閲覧することができます。

目次

  1. 総合ランキング
    BunTauriReactNext.jsVitetRPCAstroVS CodeTabbyPlaywright
  2. フロントエンドフレームワーク
    ReactQwikSolidSvelteVue.js 2
  3. React エコシステム
    Next.jstRPCMantineExcalidrawZustand
  4. Vue エコシステム
    SlidevNuxt 3Vue Element AdminAutoAnimateHeadless UI
  5. バックエンド/フルスタック
    Next.jstRPCAstrocreate-t3-appRemix
  6. ビルドツール
    ViteTurboreposwcNxRome
  7. モバイル
    React NativeExpoReact Native SkiaIonicQuasar
  8. CSS in JavaScript
    UnoCSSvanilla-extractStyled ComponentsStitchesEmotion
  9. テストツール
    PlaywrightStorybookCypressPuppeteerVitest
  10. デスクトップ
    TauriElectronNativefierNeutralinoelectron-builder
  11. 静的サイトジェネレータ
    Next.jsAstroDocusaurusNuxt 3Nextra
  12. 状態管理
    ZustandPiniaJotaiXStateRecoil
  13. GraphQL
    TanStack QueryDirectusRedwoodHasura GraphQL EngineGatsby
  14. おわりに

総合ランキング

1
Bun

Bun

Incredibly fast JavaScript runtime, bundler, transpiler and package manager – all in one.
+36.6k☆

2022年の推移

80
40
116
104
99
6.9k
21.7k
3.7k
1.3k
1.2k
697
716
1月
2月
3月
4月
5月
6月
7月
8月
9月
10月
11月
12月

GitHub情報

作成日
2021-04
累計スター数
37.4k☆

リンク

GitHub
oven-sh/bun
WEB サイト
bun.sh
Best of JS
bestofjs.org/projects/bun
2
Tauri

Tauri

Build smaller, faster, and more secure desktop applications with a web frontend.
+30.5k☆
3
React

React

A declarative, efficient, and flexible JavaScript library for building user interfaces.
+19.8k☆
4
Next.js

Next.js

The React Framework
+19.4k☆
5
Vite

Vite

Next generation frontend tooling. It's fast!
+15.5k☆
6
tRPC

tRPC

Move Fast and Break Nothing. End-to-end typesafe APIs made easy.
+15.2k☆
7
Astro

Astro

A website build tool for the modern web — powerful developer experience meets lightweight output.
+15.0k☆
8
VS Code

VS Code

Visual Studio Code
+15.0k☆
9
Tabby

Tabby

A terminal for a more modern age
+14.4k☆
10
Playwright

Playwright

A framework for Web Testing and Automation. It allows testing Chromium, Firefox and WebKit with a single API.
+14.3k☆

優勝: Bun 🏆

今年の総合優勝は、Bunです!

パフォーマンスとDXにこだわった新しいJavaScriptランタイムであるBunは、2022年夏のベータ版リリース直後から人気沸騰しました。 一か月で20000以上のスターを獲得しましたが、Best of JSがプロジェクトのトラッキングを始めて以来、これほどの爆発は見たことがありません。

しかしいったい、何がBunをこれほど特別に押し上げたのでしょうか? Bunは、2年前の総合優勝であるDenoと同じくTypeScriptをナチュラルにサポートしています。

さらにBunはただのランタイムではなく、以下のような機能も持っています。

  • パッケージマネージャ(Yarn、npm、pnpmのような)
  • ビルドツール(Webpack、ESBuild、Parcelのような)
  • テストランナー
  • その他諸々

Bunはpackage.jsonから依存関係をインストールすることができます。 Bunはスクリプトを実行することができます。 そして、他のランタイムよりも高速に、それらを行うことができます。

Bunは、JavaScriptエコシステムにおいて、パフォーマンスに焦点を合わせた新たな試みです。

Fetchなどの標準的Web API、およびNode.js APIの多くをサポートしており、またほとんどのnpmパッケージとも互換しています。 まだプロダクションレベルにまでは達していないかもしれません(特にWindowsのサポートがない)が、非常に将来有望なツールです。 Denoに比べると歴史は浅いですが、早々とフレームワークElysiaが登場しており、最速のHTTPフレームワークであると主張しています。

Bunの最も驚くべきところは、作者のJarred Sumnerが、全ての機能をZigという低水準言語でゼロから実装したというところです。

これ以上詳しく知りたければ、A Complete Overhaul of the JavaScript Ecosystemを読むとよいでしょう。

Tauri

2021年は5位だったTauriは、2022年には新たに3万人の星をみるひとを獲得し、人気を広げつつあります。 これはRust製のデスクトップアプリケーション作成ツールであり、Web技術を使って製作できることが特徴です。

2022年6月にはついにバージョン1.0に到達しました。

セキュリティとパフォーマンスに重点を置いて作られています。 競合のElectronと比べると、使用するAPIや機能などを開発者が指定する必要があるかわりに、フットプリントが小さくて済みます。

React and Next.js

3位のReactと4位のNext.jsは同じくらいの数値であり、共に2万人を獲得しました。

2022年10月にリリースされたNext.js 13.0においては、React 17で導入されたReact Server Componentsがフル活用されています。

ReactのメンテナのひとりAndrew Clarkは、Server Componentsの将来についてこちらで大胆に語っています。

Server ComponentsはReactの未来であり、我々の目標はこのアーキテクチャをReact全体に広げることである。

Vite

5位のViteは、最もトレンドなアプリケーションビルドツールであり、素晴らしい開発者体験を提供します。 2022年は6月のv312月のv4と2回のメジャーアップデートが行われました。

SvelteKitQwikといったフレームワーク、はたまたテストツールVitestなど多くのプロジェクトと力を合わせています。

フロントエンドフレームワーク

1
React

React

A declarative, efficient, and flexible JavaScript library for building user interfaces.
+19.8k☆
2
Qwik

Qwik

The HTML-first framework. Instant apps of any size with ~ 1kb JS
+12.8k☆
3
Solid

Solid

A declarative, efficient, and flexible JavaScript library for building user interfaces.
+11.1k☆
4
Svelte

Svelte

Cybernetically enhanced web apps
+10.0k☆
5
Vue.js 2

Vue.js 2

A progressive, incrementally-adoptable framework for building UI on the web
+9.7k☆

2022年はReactが頂点に立ちました。 なお、Vue.jsはv2とv3のリポジトリに分かれているため、合算すれば近いくらいの力関係となります。

目新しいところとしては、Qwikが2位に上昇しました。 QwikはReactに比較的似ており、テンプレートをJSXで書きますが、主な違いは、ブラウザに送られるJavaScriptの量を最小限にすることにフォーカスしているところです。

これは"ゼロベースJavaScript"と呼ばれるトレンドのひとつです。 最近のWebサイトやWebアプリケーションは、ブラウザのパフォーマンスに影響を与えるほどJavaScriptの重さが肥大化することがよくあります。 たとえサーバサイドレンダリングを使ったとしても、JavaScriptをロードし、解析し、実行するまでユーザは待たされます。

SSRでレンダリングされたページにインタラクティブ性を与える方法として、Qwikはhydrationではなく、Resumabilityという技術を用いています。 状態をHTML内にシリアライズすることで、極めて高速な初動を実現します。

このプロジェクトはAngularJSの開発者であるMiško Heveryによって進められています。 AngularJSのスローガンが『HTMLをWebアプリのために強化する』であるのに対して、Qwikは『HTMLファーストのフレームワーク』であり、即ち古き良きHTMLの上にアプリを構築するという意図を持っています。

React エコシステム

1
Next.js

Next.js

The React Framework
+19.4k☆
2
tRPC

tRPC

Move Fast and Break Nothing. End-to-end typesafe APIs made easy.
+15.2k☆
3
Mantine

Mantine

React components library with native dark theme support
+12.8k☆
4
Excalidraw

Excalidraw

Virtual whiteboard for sketching hand-drawn like diagrams
+12.8k☆
5
Zustand

Zustand

Bear necessities for state management in React
+12.5k☆

ゲストライター: Lee Robinson

VercelのDeveloper Experience部門ヴァイスプレジデント。開発者・ライター・クリエイター。

Guest Writer leerob

2022年は、Reactのこだわりがより強くなった年でした。

Reactは今でもどんなWebページにでも適用できるライブラリです。 しかしReactはさらに、インタラクティブで応用性がありパフォーマンスの高いフロントエンドを実現するためのアーキテクチャに進化しています。

3月にリリースされたReact18では、フレームワークのアーキテクチャを刷新する機能とAPIが同時に提供されました。 React Server Componentsも、新しいアーキテクチャパターンと連動するように設計されています。

use clientなど幾つかの規約がフレームワーク間で標準化されつつあり、またasync/awaitなどその他についてもベータ版などを通じてブラッシュアップが図られています。

2023年は、React個々の新機能によるイノベーションだけではなく、より広くReactエコシステムそのものにも大きなイノベーションが起こることでしょう。 UIコンポーネントだけではなく、型安全性を向上させるライブラリも成長し続けます。

Vue エコシステム

1
Slidev

Slidev

Presentation Slides for Developers
+7.2k☆
2
Nuxt 3

Nuxt 3

The Intuitive Web Framework, based on Vue 3.
+7.0k☆
3
Vue Element Admin

Vue Element Admin

A magical vue admin
+6.8k☆
4
AutoAnimate

AutoAnimate

A zero-config, drop-in animation utility that adds smooth transitions to your web app. You can use it with React, Vue, or any other JavaScript application.
+6.4k☆
5
Headless UI

Headless UI

Completely unstyled, fully accessible UI components, designed to integrate beautifully with Tailwind CSS.
+5.9k☆

ゲストライター: Anthony Fu

vuejs・ViteNuxtのコア開発者。VueUseSlidevの作者。

Guest Writer antfu

2022年はVueのメジャーアップデートが多数ありました。 Vue2.7ではComposition APIがネイティブサポートされ、<script setup>構文がVue2にバックポートされました。

これによって、Vue3への移行がよりスムーズになります。 <script setup>はStableとなり、さらにDXを強化するためのReactivity TransformがExperimentalとして利用可能です。 Vueチームはまた、Solid.jsに触発された新しいレンダリング戦略、"Vapor mode"に取り込んでいます。 これによってVueはさらに高いパフォーマンスを発揮できるようになるはずです。

Vueのエコシステムが十分に成熟しつつあることは、Nuxt 3Vuetify 3のStableがリリースされたことからもわかるでしょう。 Viteはこの一年で倍に成長し、そしてcreate-vue、Nuxt、QuasarAstroといった数々の新しいフレームワークが多くのユーザに採用されつつあります。

Viteのおかげで、VueユーザはVitestHistoireといった良い開発体験を得ることができました。 さらにvue-termuiのような、独創的すぎるVueの使い方も現れています。

今年はDXにとって、なんとも素晴らしい年です。 これらのツールでワークフローをこれまで以上に向上できることを願っています。 そして、次に何が来るかを楽しみにしています。

バックエンド/フルスタック

1
Next.js

Next.js

The React Framework
+19.4k☆
2
tRPC

tRPC

Move Fast and Break Nothing. End-to-end typesafe APIs made easy.
+15.2k☆
3
Astro

Astro

A website build tool for the modern web — powerful developer experience meets lightweight output.
+15.0k☆
4
create-t3-app

create-t3-app

The best way to start a full-stack, typesafe Next.js app
+12.4k☆
5
Remix

Remix

Build Better Websites. Create modern, resilient user experiences with web fundamentals.
+11.4k☆

フロントエンドがこれまでより多くのことをサーバ上で行うようになってきているため、フロントエンドとバックエンドのフレームワークの境界は徐々に曖昧になってきています。 そこでこのセクションでは、フルスタックフレームワーク、メタフレームワーク、バックエンドフレームワークについて紹介します。

Next.js

前回と同じく、Next.jsがこのセクションの覇者になりました。 バージョン13では、React Server Componentsや、appディレクトリという新しい機能が追加されました。 開発者は各機能を使うことにより、ネストされたルートを強力に処理することができるようになります。

tRPC and the create-t3-app

このセクション最大の変化は、tRPCが2位に上がってきたことです。 REST VS GraphQLのことはいったん忘れてください。 tRPCを後押しするJSON RPC 2.0プロトコルも存在します。 サーバで定義された型をクライアントでインポートすることで、E2Eの型安全性を実現する機能が非常に秀逸です。

4位のcreate-t3-appを、tRPC・Next.js・Tailwind CSSと組み合わせたスタックは人気のあるボイラープレートになっています。

Astro

3位のAstroは2021年に現れた静的サイトジェネレータであり、パーシャルハイドレーションという概念を世に知らしめました。

Astroチームは快適な開発者体験を実現することに注力しており、Astro 1.0のリリースにおいてもそのことが強調されています。

新しいSSRのサポートと、ReactやSCSSといった多くのフロントエンドツールを巻き込んだ統合により、Webアプリ開発が極めて容易に感じられることでしょう。

Remix

5位のRemixは急成長を続けています。 2021年にオープンソース化されたのち、わずか1年でShopifyに買収されました。

Kent C. Doddsによるブログ記事、The Web Next Transitionにおいて、Remixが画期的である理由が明快に示されています。

静的生成だけに頼るのではなく、分散コンピューティングやネイティブブラウザの機能も活用することで、優れたパフォーマンスと素晴らしい開発者体験の両方を提供します。

ビルドツール

1
Vite

Vite

Next generation frontend tooling. It's fast!
+15.5k☆
2
Turborepo

Turborepo

Incremental bundler and build system optimized for JavaScript and TypeScript, written in Rust – including Turbopack and Turborepo.
+13.9k☆
3
swc

swc

A super-fast compiler written in rust
+6.4k☆
4
Nx

Nx

Smart, Fast and Extensible Build System
+6.0k☆
5
Rome

Rome

Unified developer tools for JavaScript, TypeScript, and the web
+5.1k☆

ゲストライター: Sébastien Lorber

Reactのアーリーアダプタ。FacebookのOSS、Docusaurusに従事。

ReactとReact Nativeに関するニュースレター、This Week in Reactを発行している。

Guest Writer slorber

2022年もViteが勢いを保ち続け、最もポピュラーなフロントエンドツールのひとつになりました。 その前身であったSnowpackは既にメンテナンスされておらず、公式にもViteの使用が推奨されています。 Viteの採用はVueエコシステムに留まるわけではありません。 SvelteKitStorybookVitestをはじめ、Create-React-Appの代替にすら使われます。

モノレポのためのビルドツールとして、NxTurborepoが台頭しつつあります。 Nxの開発元であるNwrlはLernaの運営を引き継ぎ、Nxに最適化されたLerna 6をリリースしました。

Babelは依然として人気を保っていますが、swcesbuildといったツールが多くの新しいプロジェクトやメタフレームワークに採用されつつあります。 これら新しいツールは、ビルドとトランスパイルの性能を大きく向上させることができます。 またswcプラグインシステムを提供しているため、よりモジュール化を進められます。

Vercelは、新しいバンドルツール、Turbopackを発表しました。 これはWebpackの作者であるTobias Koppersが取り組んでいる、Rust製の非常に高速なバンドルツールです。

Rome初めての安定版をリリースしました。 興味深いリンターとフォーマッターを持っており、今のところ採用は控えめですが今後増えていくことが期待されます。

2023年は、Rust製のフロントエンドツールがたくさんニュースになることでしょう。

モバイル

1
React Native

React Native

A framework for building native applications using React
+6.5k☆
2
Expo

Expo

An open-source platform for making universal native apps with React. Expo runs on Android, iOS, and the web.
+2.9k☆
3
React Native Skia

React Native Skia

High-performance React Native Graphics using Skia
+2.8k☆
4
Ionic

Ionic

A powerful cross-platform UI toolkit for building native-quality iOS, Android, and Progressive Web Apps with HTML, CSS, and JavaScript.
+2.6k☆
5
Quasar

Quasar

Responsive Single Page Apps, Server-side Render Apps, Progressive Web Apps, Hybrid Mobile Apps (that look native!) & Electron Apps, all using the same codebase.
+2.5k☆

ゲストライター: Evan Bacon

Expoの開発者ツールのテックリード。iOSとAndroid開発者。Config PluginsとExpo CLI.の作者。

Guest Writer evanbacon

2022年は、ネイティブアプリをJavaScriptで構築する世界が大きな進展を見せました。 Replitモバイルアプリの登場や、ShopifyアプリをReact Nativeにするといった成功に代表されます。 実際React Nativeに関連するリポジトリがモバイルカテゴリのトップ10のうち7個を占めており、そしてReact Nativeは7年連続でモバイルカテゴリの1位に輝き続けています。

またReact Nativeの成功に加え、人気のあるWebパターンをモバイルに持ち込む傾向もみられました。 Tailwind CSSをモバイルアプリに広げるNativeWind、レンダリングのSkiaなどです。

Expoがファイルシステムベースのルーティングという、古典的なWeb機能を採用したことからも、ネイティブアプリの開発がウェブ開発のますます身近になりつつあることを示しています。

モバイルアプリの将来を予測することは困難ですが、この1年のことを考えると、2023年はウェブアプリとモバイルアプリの垣根がますます低くなっていくことでしょう。

Loading
Loading
Loading
Loading
Loading
Loading

おわりに

2022年は、非常に人気のあったライブラリが作者自らによって壊されるという波瀾から始まりました。 Faker.jsとcolors.jsのことです。

巨大なエコシステムの脆弱性は、モノレポツールであるLernaがもうメンテナンスしないと宣言したときに再び顕現しました。 このときはNxのバックにいるNrwlがLernaを引き継ぐことでなんとかなりましたが。

JavaScriptは世界を埋め尽くす。 2009年になされた、こんな予言を覚えている人もいるかもしれません。

JavaScriptで書くことのできるアプリケーションは、いずれJavaScriptで書かれるようになる。

13年の時を経て、この予言には少しばかり追記が必要になるかもしれません。 『もしくはTypeScriptで。』 DenoでもBunでも、Nex.jsでもViteでも、TypeScriptがJavaScriptを書くためのデファクトスタンダードになりつつあるからです。

コードベースやツールにおいてJavaScriptは、開発者とエンドユーザの両方に対して障害になっています。

  • 大規模なコードベースでは、ビルド時間が青天井になる。
  • JavaScriptのサイズは肥大化し続けており、パフォーマンスの低下を招いている。

2022年には、これらの問題を解決するために様々なレイヤで幾つものイノベーションが生まれました。

  • 今年のチャンピオンであるBunは、インストールやビルドにかかる時間を減らすため思い切ったアプローチをとりました。
  • ひとつのツールで全てを完結させるためにRomeは生まれました。
  • ビルドツールVite

ブラウザでのパフォーマンスについては、様々なアプローチが見られます。

  • ブラウザでJSをほとんど動かさない、ゼロベースJavaScript。Qwik
  • 静的ページにインタラクティブ性をPartial Hydrationする。Astro
  • 処理をサーバ側で行うReact Server Components。Next.js 13・Gatsby
  • 妥協せずに優れたDXとパフォーマンスの両方を追求するProgressively Enhanced Single Page Appsアーキテクチャ。Remix

静的な"ページ"から、完全に動的な"アプリ"まで、Webが担っている範囲はとても広いため、たったひとつで全てを解決する特効薬は存在しません。

かつてのJavaScriptは、一方では動きの異なる複数のブラウザ、もう片方では独自のモジュールシステムとAPIを持つNodeと、完全に分断されていました。 エッジコンピューティングの台頭により、標準化されたAPI(fetch・HTTP Request/Responseなど)をどこでも使いたいという強いトレンドが生まれつつあります。

ゲストライターのLee Robinsonが、Why I'm Optimistic About JavaScript's Future.という記事において、これらのトレンドについて素晴らしいまとめをしてくれています。

そして我々も、その気持ちを共有しています。

Web開発者であるということは、なんと素敵なことでしょう。

Japanese version

Rana Kualu

Houkago Atelier Toiro ha iizo

Authors

Available Translations

English

Español

中文