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

JavaScript疲れから逃れるためにここに来たみなさん、ちょうどいいところに来ましたね。

今回はメタフレームワーク、速度の必要性、界隈のオールスターがテック企業にジョインした話などの話題があります。

しかし、まずはチャンピオンの話です。 今年は誰もが予想していなかった新しい覇者が誕生しました! しかもそれは、なんとコマンドラインツールです!


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

目次

  1. 総合ランキング
    zxViteNext.jsReactTauriTailwind CSSVS CodeSlidevNocoDBVue.js
  2. フロントエンドフレームワーク
    ReactVue.jsSvelteAngularSolid
  3. Node.js フレームワーク
    Next.jsNestStrapiRemixNuxt
  4. ビルドツール
    ViteesbuildswcTurborepoNx
  5. Vue エコシステム
    SlidevVue Element AdminHeadless UINaive UIvue-next
  6. React エコシステム
    Next.jsAnt DesignMaterial UIRemixreact-use
  7. CSS in JavaScript
    vanilla-extractStyled ComponentsStitchesTwinEmotion
  8. テストツール
    PlaywrightStorybookCypressPuppeteerJest
  9. モバイル
    React NativeIonicExpoQuasarFlipper
  10. デスクトップ
    TauriElectronSvelte NodeGUINodeGUINeutralino
  11. 静的サイトジェネレータ
    Next.jsAstroDocusaurusNuxtNuxt 3
  12. 状態管理
    ZustandXStateJotaiRecoilPinia
  13. GraphQL
    PrismaHasura GraphQL EngineRedwoodGatsbyGraphQL Code Generator
  14. おわりに

総合ランキング

1
zx

zx

A tool for writing better scripts
+24.3k☆

2021年の推移

N/A
N/A
N/A
N/A
11.6k
1.1k
934
3.5k
1.2k
299
374
519
1月
2月
3月
4月
5月
6月
7月
8月
9月
10月
11月
12月

GitHub情報

作成日
2021-05
累計スター数
25.0k☆

リンク

2
Vite

Vite

Next generation frontend tooling. It's fast!
+21.4k☆
3
Next.js

Next.js

The React Framework
+19.7k☆
4
React

React

A declarative, efficient, and flexible JavaScript library for building user interfaces.
+18.5k☆
5
Tauri

Tauri

Build smaller, faster, and more secure desktop applications with a web frontend.
+18.0k☆
6
Tailwind CSS

Tailwind CSS

A utility-first CSS framework for rapid UI development.
+18.0k☆
7
VS Code

VS Code

Visual Studio Code
+17.2k☆
8
Slidev

Slidev

Presentation Slides for Developers (Beta)
+16.9k☆
9
NocoDB

NocoDB

Open Source Airtable Alternative
+15.6k☆
10
Vue.js

Vue.js

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

トップ3

2021年、最もトレンディだったプロジェクトは、Googleによる全く新しいツールです。 JavaScriptやTypeScriptでシンプルなコマンドラインスクリプトを書くことができるzxです。

基本的な使い方としては、コードにbashコマンド(lscatgitなど…なんでも!)を埋め込むことができ、さらにそれをテンプレートリテラルawaitすることもできます。

また、有名なパッケージも幾つか含まれています。

  • node-fetch ブラウザのfetch APIと同じことができる。
  • fs-extra ファイルシステムの操作ができる。
  • globby ユーザフレンドリーなパターンマッチングができるglob。

2位はViteです。 これはesbuildコンパイラを使用し、優れたパフォーマンスを示すビルドツールです。 当初はVue.js専用として誕生しましたが、現在ではReactSvelteLitなど主なフレームワークと連携が可能です。

3位のNext.jsは、Reactをリードするメタフレームワークとしての地位を盤石なものにしています。

Tauri

5位に入ったTauriは、Web技術を用いてデスクトップアプリケーションを構築するソリューションです。

Electronと比べると、Rustで書かれており、実行環境にNode.jsが必要ないのが特徴です。 5月にバージョン1.0のベータ版がリリースされました

ピックアップ

トップ10には入っていませんが、Astroは今年よく注目されたプロジェクトのひとつです。 より少ないJavaScriptで、より高速なローディングを実現するツールです。

コンセプトはSSGに近いですが、Astroでは"islands"と呼ばれる動的な部分をページに含めることができるところが特徴です。 また、クライアントサイドで動的コンポーネントをレンダリングする際に、複数の戦略を取ることができます。

  • ページが読み込まれたとき
  • アイドル状態のときに、優先順位の低いコンポーネントを読み込む
  • Intersection Observer APIを使用した監視

そしてAstro最大の特徴は、React・Vue.js・Svelteなど、あらゆるフレームワークとの組み合わせが可能ということです。

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

1
React

React

A declarative, efficient, and flexible JavaScript library for building user interfaces.
+18.5k☆
2
Vue.js

Vue.js

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

Svelte

Cybernetically enhanced web apps
+13.6k☆
4
Angular

Angular

The modern web developer’s platform
+9.3k☆
5
Solid

Solid

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

JavaScript Rising Stars が始まって以来初めて、ReactがVueを退け、フレームワークの頂点に立ちました。 とはいえ、Vueはバージョン2(Vue.js)とバージョン3(vue-next)の2リポジトリに分かれているため、実質的にはVueが1位といってもいいでしょう。

大きな変化としては、SvelteAngularを下して台頭してきたことです。 Viteなどを始め、ターゲットフレームワークにSvelteを含めるツールやコンポーネントも増加しています。

大きな話題のひとつとして、Svelteの開発者であるRich Harris氏が、Next.jsを提供しているVercelに入社したことが挙げられるでしょう。 Svelteも、Next.jsのようなアプリ構築のためのメタフレームワーク、SvelteKitを持っています。

5位に入ったSolidは、Reactに替わる選択肢として興味深いものです。 コンポーネントはReactのようにJSXで記載しますが、しかしVirtual DOMには依存しません。

Solidはmitosisにも影響を与えました。 Mitosisは、コンポーネントをあらゆるフレームワーク向けにコンパイル可能にしようという野心的なプロジェクトです。

Node.js フレームワーク

1
Next.js

Next.js

The React Framework
+19.7k☆
2
Nest

Nest

A progressive Node.js framework for building efficient, scalable, and enterprise-grade server-side applications on top of TypeScript & JavaScript (ES6, ES7, ES8)
+10.1k☆
3
Strapi

Strapi

Open source Node.js Headless CMS to easily build customisable APIs
+9.6k☆
4
Remix

Remix

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

Nuxt

The Intuitive Vue(2) Framework
+6.2k☆

主なUIフレームワークは、モダンでスケーラブルなアプリケーションをビルドするための独自メタフレームワークを持っています。 これらはルーティング、サーバサイドレンダリング、SSG、最適化ビルドなどの機能を提供しています。

  • Reactにはこの分野のパイオニアと言えるNext.jsがあり、そしてカテゴリの勝者である。
  • VueにはNuxtがあるが、バージョン2用とバージョン3用で別物となっている。
  • Svelteには SvelteKitがある。

2021年に登場した新参であるRemixは、Reactアプリを構築するフルスタックフレームワークであり、そして一番の話題作です。

このプロジェクトはReact Routerの作者による新作で、10月までは有料サポーターのみが利用可能でした。 公開後も多くの支持を得続けており、ファンドで300万ドルもの資金を獲得しました。 プロジェクトのモットーは、"Webの基礎、モダンなUX"と明確であり、APIはできるかぎりWeb標準に準拠しています。

私が気に入った2つの例を紹介したいと思います。

フォームを送信するには……フォームを送信すればいい。 当たり前のことにしか見えませんが、しかし開発者はフォーム送信を避けるためにevent.preventDefault()を書くことに慣れきってしまっています。 それに、JavaScriptが無効な環境でもフォームを送信できたほうがいいに決まっています。 Remixは、我々が当たり前だと思っていたことに挑戦し、ユーザと開発者双方の体験を重視した新しいアプローチで、古い原則を"remix"しています。

もうひとつ、Remixはネストしたルーティングを非常にうまく処理することができます。 無限のHTTPリクエストを生成して画面をローディング中で埋め尽くすことなく、必要なコンポーネントの必要とするデータだけを効率的に読み込むことができます。

2位のNestは、特定のフレームワークに縛られないオーソドックスな、サーバサイドNode.jsフレームワークの王者です。

3位のStrapiはヘッドレスCMSのトップです。 ヘッドレスCMSは、データを管理するための高機能なダッシュボードと、データを提供するAPIのみを提供するアプリケーションです。 Strapiの最新バージョンでは、Reactコンポーネントで構築されたデザインシステムを提供しています。

ビルドツール

1
Vite

Vite

Next generation frontend tooling. It's fast!
+21.4k☆
2
esbuild

esbuild

An extremely fast JavaScript and CSS bundler and minifier
+12.9k☆
3
swc

swc

A super-fast compiler written in rust
+8.8k☆
4
Turborepo

Turborepo

The High-performance Build System for JavaScript & TypeScript Codebases
+4.5k☆
5
Nx

Nx

Smart, Fast and Extensible Build System
+4.3k☆

Guest Writer: Sébastien Lorber

Reactのアーリーアダプタであり、FacebookのDocusaurusで働いている。

ReactとReact Native関連の週刊ニュースレター、This Week in Reactを発行している。

Guest Writer slorber

2021年は、既存のトレンドが強化された年でした。

ネイティブES modulesの採用が続き、Viteは広く受け入れられました。 一方Node.jsエコシステムにおいてもVitestのようなES modulesフレームワークが作られつつありますが、こちらは一筋縄ではいきません。 TypeScriptに至ってはES modules対応を延期したほどです。

JavaScript以外の言語で作られたフロントエンドツールが増えつつありますが、これは主にパフォーマンスの理由からです。

Lee RobinsonがRustはJavaScriptインフラの未来だという記事を書いています。 Rustの興味深い点は、その素晴らしいパフォーマンスと、JavaScriptとの親和性の良さです。 NAPI-RSはシリアライズ無しにJavaScriptとRust間の通信を行うことを可能とし、Next.jsはSWCにその将来を賭けました

Parcel2はRustコンパイラをひっさげて登場しました。 Rome全面的にRustに移行するということでしたが、創業者のひとりであるJamie Kyleは何の情報もないまま会社を離れました

Rustは非JS言語の代表格ですが、決して唯一ではありません。 素晴らしいパフォーマンスを発揮する言語は他にもあり、BunはZigで書かれており、TurborepoesbuildはGo製です。 そういえばEvan WallaceがFigmaを去ったのは、esbuildの開発に時間を割けるようになったからかもしれません。

monorepo分野ではLernaが最も使われていますが、既にあまり保守されていません。 次を狙って、ビルド時間を大幅に短縮できるモノレポツール Nx急成長しています。 さらにライバルであるTurborepoが、Vercelに買収された直後から攻勢を仕掛けています。

Vue エコシステム

1
Slidev

Slidev

Presentation Slides for Developers (Beta)
+16.9k☆
2
Vue Element Admin

Vue Element Admin

A magical vue admin
+9.7k☆
3
Headless UI

Headless UI

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

Naive UI

A Vue 3 Component Library. Fairly Complete. Customizable Themes. Uses TypeScript. Not too Slow.
+7.3k☆
5
vue-next

vue-next

Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
+6.7k☆

Guest Writer: Anthony Fu

Vue.jsViteNuxtのコア開発者であり、VueUseSlidevの産みの親。

Guest Writer antfu

Vue3が正式リリースされてから1年が経ち、多くの革新的な技術が出揃い、エコシステムが急激に成長していることがわかります。

Vue3の新しい<script setup>のような構文は、コンポーネントの開発体験を新しいレベルへと引き上げてくれます。 VS CodeエクステンションVolarは、VueにファーストクラスTypeScriptサポートをもたらし、Composition APIで一から構築されたステート管理ツールPiniaはVuexの後継者となります。

VueのデフォルトツールがViteになったことにより、Nuxt 3QuasarVitePressといった多くのフレームワークもデフォルトでViteを使うようになりました。 これによって開発者のエクスペリエンスが大幅に改善され、イノベーションの扉が開け放たれました。

またコミュニティは、Vue2のDXをVue3へと揃え、よりスムーズに移行プロセスが成功するように多大な努力を払いました。 2021年はVue開発者にとって、アプリのDXとパフォーマンスの両方において多くの改善を得ることのできた素晴らしい年でした。 2022年にはどんなことがおこるのか、今から楽しみですね。

React エコシステム

1
Next.js

Next.js

The React Framework
+19.7k☆
2
Ant Design

Ant Design

An enterprise-class UI design language and React UI library
+10.9k☆
3
Material UI

Material UI

A robust, customizable, and accessible library of foundational and advanced components, enabling you to build your own design system and develop React applications faster
+10.0k☆
4
Remix

Remix

Build Better Websites. Create modern, resilient user experiences with web fundamentals.
+9.4k☆
5
react-use

react-use

Collection of essential React Hooks
+9.3k☆

Guest Writer: Manuel Vila

JS/TSエンジニアであり、OSSコントリビュータ。 LayrCodebaseShowの制作者。

Guest Writer mvila

まもなくReact18がリリースされます。 既にRC版を触ることは可能で、Automatic Batchingによるレンダリング削減や、SSRのSuspenseサポートなど、すぐに利用できる改善がいくつもあります。

React18は待望のConcurrent Renderingが実装され、大きな破壊的変更なしにSuspenseが刷新されました。 startTransitionなど一部の機能は18.0リリース当初から使用可能になる予定です。 しかし、昨年のRising Starで紹介したServer Components等については、もう少し待つ必要がありそうです。

Reactはブラウザでもサーバでも進化を続けており、React Nativeのプラットフォーム構想も進行中で、ますますユビキタスな存在になろうとしています。

CSS in JavaScript

1
vanilla-extract

vanilla-extract

Zero-runtime Stylesheets-in-TypeScript
+4.4k☆
2
Styled Components

Styled Components

Visual primitives for the component age. Use the best bits of ES6 and CSS to style your apps without stress
+3.5k☆
3
Stitches

Stitches

CSS-in-JS with near-zero runtime, SSR, multi-variant support, and a best-in-class developer experience.
+2.8k☆
4
Twin

Twin

Twin blends the magic of Tailwind with the flexibility of css-in-js (emotion, styled-components, stitches and goober) at build time.
+2.3k☆
5
Emotion

Emotion

CSS-in-JS library designed for high performance style composition
+2.0k☆
Loading
Loading
Loading
Loading
Loading
Loading

おわりに

モダンなサイト作成は、メタフレームワークの時代に突入したようです。 Next.js、Nuxt、SvelteKit、そして期待の新星Remix等が鎬を削っています。

JavaScriptコミュニティの高名なメンバーの多くは、様々なソリューションに取り組むため技術企業に参画しました。

  • Kent C. DoddsはRemixのチームに加入しました。 Remixを「素晴らしいユーザ体験をもたらし、コードに満足する」ことを可能にすると高く評価しています。

  • Vercelは多くのメンバーを雇いました。 Svelteの開発者Rich Harris、ReactコアチームのSebastian MarkbågeにJared Palmer、そしてTurborepo。 まるでドリームチームです。

ツールに目を向けると、その多くが速度を求めてJavaScriptからRustやGoといった言語にシフトしました。

Lee RobinsonはRustの台頭について、RustはJavaScriptインフラの未来だと幾度となく力説しました。

swcは、2020年の当ランキングで優勝したサーバサイドランタイム、Denoでも使われています。 そしてDenoは当時よりさらに進化しています。 Deno Deployが公開され、これはサーバレスにデプロイするソリューションです。

サーバレスといえば、エッジコンピューティングも2021年の重要なテーマでした。 Vercel Edge FunctionsCloudFlare WorkersNetlify Edgeといった、ユーザのそばでバックエンドコードを実行するソリューションが多数現れました。 Next.jsやRemixといったメタフレームワークはエッジコンピューティングを活用し、バックエンドコードとReactアプリケーションの統合を容易にしてくれます。

2022年、我々はJavaScriptフルスタックアプリケーションの黄金時代に突入するのでしょうか?

Japanese version

Rana Kualu

Houkago Atelier Toiro ha iizo

Authors

Available Translations

English

Español

한국어

中文