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

このランキングのコンセプトは、昨年までと同じです。 すなわち、2020年の一年間でGitHubに追加されたスターの数を比較することで、どのプロジェクトが最も注目を集めたかを数字で確認します。


以下のチャートは、2020年の一年間にGitHubで増加したスターの数を比較したものです。Webプラットフォームに関するベストプロジェクトを集めたリストであるBest of JSを分析したものです。各プロジェクトをクリックすると、プロジェクトの詳細を閲覧することができます。

目次

  1. 総合ランキング
    DenoVue.jsReactPlaywrightVS CodeesbuildVue Element AdmineDEX-UINext.jsTailwind CSS
  2. フロントエンドフレームワーク
    Vue.jsReactAngularSvelteAlpine.js
  3. Node.js フレームワーク
    Next.jsStrapiNestNuxtBlitz
  4. React エコシステム
    Next.jsReact QueryRecoilAnt DesignReact Hook Form
  5. Vue エコシステム
    Vue Element AdminViteNuxtElement Plusvue-next
  6. Angular エコシステム
    ngx-adminMaterial Design for AngularScullyAngular CLING-ZORRO
  7. ビルドツール
    esbuildRomeViteSnowpackWebpack
  8. CSS フレームワーク
    Tailwind CSSBootstrapBulmanew.cssHalfmoon
  9. CSS in JavaScript
    Styled ComponentsTwinEmotionLinariaTheme UI
  10. テストツール
    PlaywrightStorybookPuppeteerCypressHeadless Recorder
  11. モバイル
    React NativeExpoQuasarIonicSonar
  12. JS コンパイラ
    TypeScriptswcBabelReasonFlow
  13. 状態管理
    RecoilXStateImmerZustandRedux
  14. GraphQL
    GatsbyHasura GraphQL EngineRedwoodPrismaApollo client
  15. 学習リソース
    JS Algorithms & Data StructuresNode.js Best PracticesYou Don't Know JSClean Code30 seconds of code
  16. おわりに

総合ランキング

1
Deno

Deno

A secure JavaScript and TypeScript runtime
+30.2k☆

2020年の推移

2.8k
1.5k
1.0k
1.3k
13.7k
3.0k
1.3k
897
836
742
912
1.2k
1月
2月
3月
4月
5月
6月
7月
8月
9月
10月
11月
12月

GitHub情報

作成日
2018-05
累計スター数
71.1k☆

リンク

GitHub
denoland/deno
WEB サイト
deno.land
Best of JS
bestofjs.org/projects/deno
2
Vue.js

Vue.js

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

React

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

Playwright

Node.js library to automate Chromium, Firefox and WebKit with a single API
+19.7k☆
5
VS Code

VS Code

Visual Studio Code
+19.1k☆
6
esbuild

esbuild

An extremely fast JavaScript bundler and minifier
+16.6k☆
7
Vue Element Admin

Vue Element Admin

A magical vue admin
+16.0k☆
8
eDEX-UI

eDEX-UI

A cross-platform, customizable science fiction terminal emulator with advanced monitoring & touchscreen support.
+15.7k☆
9
Next.js

Next.js

The React Framework
+15.5k☆
10
Tailwind CSS

Tailwind CSS

A utility-first CSS framework for rapid UI development.
+15.5k☆

2020年は様々な理由で特別な年になりました。 最も目を引くことは、これまで5年間首位を独走してきたVue.jsを抜き去り、Denoが一位になったことです。

DenoはNode.jsの生みの親Ryan Dahlによる新たなJavaScriptランタイムです。 Node.jsのこれまでの10年間の経験と反省を生かし、多くを改善しているため、Node.jsの後継と思われがちです。

主な機能としては、

  • デフォルトでTypeScript対応。ただしJavaScriptでコードを書くこともできる。
  • 一極集中したパッケージマネージャがなく、任意の依存関係を任意のURLから読み込むことができる。
  • Deno標準ライブラリは、Node.jsでは個別にパッケージをインストールしなければならなかったような一般的な用途のライブラリを最初から提供する。
  • Denoは可能なかぎりWeb標準に従っている。(例:Fetch API)
  • インポートはES Modulesを使用。
  • テストランナーやデバッガーを標準装備。

Denoのエコシステムはまだまだ発展途上ですが、Denoの話題性を考えると、今後大きく変化することが期待されます。

Denoの成長は、2つの大きなトレンドを裏付けています。

  • フロントエンドとクライアントサイドでのTypeScriptの台頭
  • Snowpackなどのソリューションによってオンザフライで提供されるES Modulesの成長。

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

1
Vue.js

Vue.js

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

React

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

Angular

One framework. Mobile & desktop.
+13.3k☆
4
Svelte

Svelte

Cybernetically enhanced web apps
+12.0k☆
5
Alpine.js

Alpine.js

A rugged, minimal framework for composing JavaScript behavior in your markup.
+11.5k☆

いつものようにVue.jsReactが頂上決戦を繰り広げています。

その後ろでは、2019年に3番手をSvelteに奪われたAngularが、ふたたびその位置を奪還しました。

ベスト5の新顔はAlpine.jsで、これはLaravel LiveWireの作者によって作られたミニマルなリアクティブフレームワークです。

Vue.jsとAngularの両方から、カスタムHTMLディレクティブや双方向バインディングといったアイデアを拝借しています。

HTMLに古き良き<script>タグを追加するだけで簡単に使うことができ、ビルドプロセスも不要で、HTMLマークアップだけで全てを動かすことができます。 本格的なフレームワークを導入することが困難な既存のWebページをさくっと強化する目的については、最も適切なソリューションであるかもしれません。

Webページにインタラクティブ性をもたらすだけの非常に軽量なソリューションであるため、Elixir Phoenixのようなフレームワークともうまく連携して同居できます。 Alpine.jsTailwind CSSを最初からまとめておいたPETALのようなプロジェクトも存在します。 こちらについては後ほど語りましょう。

Node.js フレームワーク

1
Next.js

Next.js

The React Framework
+15.5k☆
2
Strapi

Strapi

Open source Node.js Headless CMS to easily build customisable APIs
+11.8k☆
3
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.3k☆
4
Nuxt

Nuxt

The Intuitive Vue Framework
+8.2k☆
5
Blitz

Blitz

️The Fullstack React Framework — built on Next.js
+6.0k☆

Node.jsフレームワークには大きく2つの種類が存在します。

ひとつはNext.jsNuxtのようなフルスタックフレームワークで、ReactやVue.jsなどをサーバサイドに持ってくるアプリケーション構築方法については賛否両論があります。

もうひとつは昨年のチャンピオンNestFastifyなどが属する、サーバ側のみで動作する古典的なフレームワークです。

この分野では2018年にトップだったNext.jsが再びチャンピオンに返り咲きました。 当初はReactをSSRするだけのソリューションとして名を上げましたが、今ではReactでフルスタックWebアプリケーションを構築するソリューションの筆頭になっています。

最新バージョンでは動的ページと静的ページの垣根を取り払うIncremental Static Regenerationにも対応し、多くのユースケースで最適な選択肢になりつつあります。

フルスタックといえば、BlitzRedwoodは、それひとつだけで完全なWebアプリケーションを構築できるという最高の開発者体験を提供することを目的としたプロジェクトです。

それにしても浮沈の激しいJavaScriptの世界で、11年前に誕生したExpressがいまだに一定の地位を保っているのは興味深いですね。

React エコシステム

1
Next.js

Next.js

The React Framework
+15.5k☆
2
React Query

React Query

Hooks for fetching, caching and updating asynchronous data in React
+13.6k☆
3
Recoil

Recoil

An experimental state management library for React apps
+11.1k☆
4
Ant Design

Ant Design

A UI Design Language and React UI library
+10.9k☆
5
React Hook Form

React Hook Form

React Hooks for forms validation (Web + React Native)
+10.8k☆

ゲストライター: Lee Robinson

Lee Robinsonは、Vercelでソリューションアーキテクトとして働いている開発者・ライター・クリエイターです。

Guest Writer leerob

2020年のReactエコシステムのテーマは安定性でした。 React17では破壊的変更を行わず、将来に向けての布石を仕込みました。 それがReact Server Componentsです。

React Server Componentsはクライアントのバンドルサイズを縮小し、起動にかかる時間を改善します。 さらにデータの取得、データベースやファイルシステムなどデータソースへのアクセスも簡単になります。

Next.jsは、Reactアプリケーションを構築するための最も有名なソリューションに成長しました。 React Server Componentsの最初のアプリになることでしょう。

React QueryRecoilReact Hook Formといったサポートライブラリは、hooksを主軸に進化、円熟してきました。 それぞれがReact開発の一部を簡素化してくれます。

これらのコンポーネントライブラリを組み合わせることで、React開発者はこれまで以上に多くのツールを手に入れることができるでしょう。

Vue エコシステム

1
Vue Element Admin

Vue Element Admin

A magical vue admin
+16.0k☆
2
Vite

Vite

Next generation frontend tooling. It's fast!
+14.1k☆
3
Nuxt

Nuxt

The Intuitive Vue Framework
+8.2k☆
4
Element Plus

Element Plus

A Vue.js 3.0 UI Library made by Element team
+7.3k☆
5
vue-next

vue-next

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

2020年のVueコミュニティ最大のニュースは、Vue3のリリースです。

Vue2に存在した幾つかの問題を解決するために、Composition APIという仕組みが導入されました。

  • コンポーネント内の論理的な繋がりによってコードを整理することが難しかった。
  • コンポーネントをまたいだコードの再利用が容易になる。 (Vue2のmixin、mixing factory、scoped slots等では不十分だった)
  • TypeScriptサポートが改善された。

バージョン3で導入された変更については、マイグレーションガイドをチェックしてみてください。

2020年には新たなWeb構築ツール、Viteが誕生しました。 ES modulesに対応し、コマンドラインからVueアプリケーションを構築する最速の方法です。

Angular エコシステム

1
ngx-admin

ngx-admin

Customizable admin dashboard template based on Angular 10+
+2.5k☆
2
Material Design for Angular

Material Design for Angular

Component infrastructure and Material Design components for Angular
+1.5k☆
3
Scully

Scully

The Static Site Generator for Angular apps
+1.4k☆
4
Angular CLI

Angular CLI

CLI tool for Angular
+1.3k☆
5
NG-ZORRO

NG-ZORRO

Angular UI Component Library based on Ant Design
+1.2k☆

Angularのランキングは昨年とあまり変わりませんが、3位に新たなプロジェクトが登場しました。

ScullyはAngularにJamstackをもたらす静的サイトジェネレータです。 このプロジェクトは2019年12月に登場し、そしてわかりやすいドキュメントが存在します。

Angularは2020年に3つのメジャーバージョンがリリースされました。

2月にはバージョン9がリリースされました。 主な変更点はIvyコンパイラの導入で、これによってバンドルサイズが減少し、またビルドプロセスに大きな改善がもたらされました。 さらに年の後半にはバージョン10バージョン11がリリースされました。

Angularチームの2020年後半の主な仕事は、コミュニティの声に耳を傾けることでした。 コミュニティのニーズを理解するために、issueやPRに対応することに大きな努力を行いました。 また、チームが取り組んでいることの共有や、今後のロードマップの公開も行いました。

ビルドツール

1
esbuild

esbuild

An extremely fast JavaScript bundler and minifier
+16.6k☆
2
Rome

Rome

The Rome Toolchain. A linter, compiler, bundler, and more for JavaScript, TypeScript, HTML, Markdown, and CSS.
+14.2k☆
3
Vite

Vite

Next generation frontend tooling. It's fast!
+14.1k☆
4
Snowpack

Snowpack

WASM-powered frontend build tool. Fast, lightweight, unbundled ESM.
+10.1k☆
5
Webpack

Webpack

A bundler for javascript and friends. Packs many modules into a few bundled assets. Code Splitting allows for loading parts of the application on demand. Through "loaders", modules can be CommonJs, AMD, ES6 modules, CSS, Images, JSON, Coffeescript, LESS, ... and your custom stuff.
+4.5k☆

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

SébastienはReactのアーリーアダプターであり、FacebookのオープンソースであるDocusaurusで働いています。

Guest Writer slorber

2020年はビルドツールの当たり年で、多くの新しいトレンドが産まれました。

SnowpackViteはES modulesの将来に賭けたアプローチです。 開発中のコードはバンドルせず、プロダクションコードのビルド時のみバンドルする方針で、非常に高速なフィードバックループを持っています。

swcesbuildは、それぞれRustとGoで書かれており、TypeScriptをサポートしていて、そして信じられないほどの高速で動作します。

Webpackは設定が複雑すぎると言われることが多く、よりシンプルに書けるParcelRollupが成熟してきました。 とはいえビルドツールの中心はいまだWebpackであることは変わらず、そしてWebpackの新たなキャッシングレイヤはビルドのパフォーマンスを大幅に改善します。

Monorepoがメインストリームになりつつあります。 YarnとLernaが広く使われ、そしてnpm 7も参加してきました。

個人的に2021年の去就を注目しているのはRomeToastTurborepoです。

Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading

おわりに

Best of JSが追跡している多くのカテゴリにおいて、幾つかの新しい潮流が発生し、JavaScriptの世界は今年も素晴らしい年になりました。

バックエンド開発者は今すぐDenoを使って、依存を気にすることなくTypeScriptを楽しむことができます。

フロントエンド開発者はesbuildSnowpack、そしてViteなど、より高速でシンプルなビルドソリューションを手に入れることができました。

ツールにおいては、NPM 7がひとつのリポジトリで複数のパッケージを扱えるようになるworkspacesをリリースしました。 これはライバルであるYarnが先に提供していた大きな利点のひとつです。

スタイルについては、よりシンプルなコンセプトを中心としたエコシステムを構築する、Tailwind CSSのような方向性のソリューションが他にも現れています。

2021年には何が期待できるでしょうか?

React Server Componentsがどのようなものになるかは興味深いところです。

Sebastian McKenzieがRomeにフルタイムで入っている今、そのJavaScriptツールを統一しようとする試みはどこまで進むでしょうか。 コンパイル、テスト、Lint、その他全て、全てが入ったたったひとつの依存は完成するでしょうか。

我々は、フルスタックフレームワークであるRedwoodにも注目しています。 これはGraphQLと相性が良く、そしてデータハンドリングに"cells"と呼ばれるユニークな仕組みを使っています。

ユーザのフィードバックに基づいた、本調査とは別観点からの結果を見たいのであれば、State of JSも参照してください。

みてくれてありがとう。 また来年会いましょう!

Japanese version

Rana Kualu

Houkago Atelier Toiro ha iizo

Authors

Available Translations

English

Pусский

Español

中文

한국어