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

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


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

総合ランキング

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

リンク

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です。

CSS フレームワーク

1
Tailwind CSS

Tailwind CSS

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

Bootstrap

The most popular HTML, CSS, and JavaScript framework for developing responsive, mobile first projects on the web.
+8.2k
3
Bulma

Bulma

Modern CSS framework based on Flexbox
+4.2k
4
new.css

new.css

A classless CSS framework to write modern websites using only HTML.
+3.1k
5
Halfmoon

Halfmoon

Front-end framework with a built-in dark mode and full customizability using CSS variables; great for building dashboards and tools.
+2.0k

昨年はなかった項目ですが、Tailwind CSSの躍進と、そのユーティリティファーストの姿勢を評してこのセクションを追加しました。

BootstrapBulmaといった既存のCSSフレームワークに比べて、開発者がクラス名を合成してページやコンポーネントをスタイル化するための命名規則を提供しています。

State of CSSのアンケートにおいても、最も満足度の高いフレームワークになっています。

先日バージョン2がリリースされ、ダークモードなど多くの新機能が追加されました。

CSS in JavaScript

1
Styled Components

Styled Components

Visual primitives for the component age. Use the best bits of ES6 and CSS to style your apps without stress
+4.8k
2
Twin

Twin

Blends the magic of Tailwind with the flexibility of css-in-js
+2.8k
3
Emotion

Emotion

CSS-in-JS library designed for high performance style composition
+2.5k
4
Linaria

Linaria

Zero-runtime CSS in JS library
+1.8k
5
Theme UI

Theme UI

Build consistent, themeable React apps based on constraint-based design principles
+1.8k

テストツール

1
Playwright

Playwright

Node.js library to automate Chromium, Firefox and WebKit with a single API
+19.7k
2
Storybook

Storybook

The UI component explorer. Develop, document, & test for React, Vue, Angular, Ember, Web Components, & more!
+12.3k
3
Puppeteer

Puppeteer

Headless Chrome Node.js API
+10.6k
4
Cypress

Cypress

Fast, easy and reliable testing for anything that runs in a browser.
+9.0k
5
Headless Recorder

Headless Recorder

a Chrome extension that records your browser interactions and generates a Puppeteer or Playwright script
+6.0k

モバイル

1
React Native

React Native

A framework for building native apps with React.
+8.8k
2
Expo

Expo

An open-source platform for making universal native apps with React. Expo runs on Android, iOS, and the web.
+4.3k
3
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.
+4.0k
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.8k
5
Sonar

Sonar

A desktop debugging platform for mobile developers.
+1.8k

JS コンパイラ

1
TypeScript

TypeScript

A superset of JavaScript that compiles to clean JavaScript output.
+10.4k
2
swc

swc

A super-fast compiler written in rust
+3.4k
3
Babel

Babel

A compiler for writing next generation JavaScript.
+2.7k
4
Reason

Reason

Simple, fast & type safe code that leverages the JavaScript & OCaml ecosystems
+818
5
Flow

Flow

Adds static typing to JavaScript to improve developer productivity and code quality.
+799

状態管理

1
Recoil

Recoil

An experimental state management library for React apps
+11.1k
2
XState

XState

State machines and statecharts for the modern web.
+5.1k
3
Immer

Immer

Create the next immutable state by mutating the current one
+4.2k
4
Zustand

Zustand

Bear necessities for state management in React
+3.2k
5
Redux

Redux

Predictable state container for JavaScript apps
+3.2k

GraphQL

1
Gatsby

Gatsby

Build blazing fast, modern apps and websites with React
+7.4k
2
Hasura GraphQL Engine

Hasura GraphQL Engine

Blazing fast, instant realtime GraphQL APIs on Postgres with fine grained access control, also trigger webhooks on database events.
+5.9k
3
Redwood

Redwood

Bringing full-stack to the Jamstack.
+5.5k
4
Prisma

Prisma

Next-generation ORM for Node.js & TypeScript | PostgreSQL, MySQL, MariaDB, SQL Server & SQLite
+4.0k
5
Apollo client

Apollo client

A fully-featured, production ready caching GraphQL client for every UI framework and GraphQL server
+2.4k

学習リソース

1
JS Algorithms & Data Structures

JS Algorithms & Data Structures

Algorithms and data structures implemented in JavaScript with explanations and links to further readings
+31.9k
2
Node.js Best Practices

Node.js Best Practices

The Node.js best practices list (January 2021)
+20.2k
3
You Don't Know JS

You Don't Know JS

A book series on JavaScript
+18.0k
4
Clean Code

Clean Code

Clean Code concepts adapted for JavaScript
+15.1k
5
30 seconds of code

30 seconds of code

Short JavaScript code snippets for all your development needs
+13.3k

おわりに

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
Rana Kualu
Houkago Atelier Toiro ha iizo

Authors

Available Translations

English

Pусский

Español

中文

한국어