ライジングスターにようこそ!このランキングのコンセプトは、昨年までと同じです。2020年の一年間でGitHubに追加されたスターの数を比較することで、どのプロジェクトが最も注目を集めたかを数字で確認します。以下のチャートは、2020年の一年間にGitHubで増加したスターの数を比較したものです。JSを分析したものです。各プロジェクトをクリックすると、プロジェクトの詳細を閲覧することができます。MORE2020年は様々な理由で特別な年になりました。目を引くことは、これまで5年間首位を独走してきたVue.jsを抜き去り、Denoが一位になったことです。Dahlによる新たなJavaScriptランタイムです。Node.jsのこれまでの10年間の経験と反省を生かし、多くを改善しているため、Node.jsの後継と思われがちです。主な機能としては、デフォルトでTypeScript対応。JavaScriptでコードを書くこともできる。一極集中したパッケージマネージャがなく、任意の依存関係を任意のURLから読み込むことができる。Deno標準ライブラリは、Node.jsでは個別にパッケージをインストールしなければならなかったような一般的な用途のライブラリを最初から提供する。Denoは可能なかぎりWeb標準に従っている。Modulesを使用。テストランナーやデバッガーを標準装備。Denoのエコシステムはまだまだ発展途上ですが、Denoの話題性を考えると、今後大きく変化することが期待されます。Denoの成長は、2つの大きなトレンドを裏付けています。Modulesの成長。MOREいつものようにVue.jsとReactが頂上決戦を繰り広げています。その後ろでは、2019年に3番手をSvelteに奪われたAngularが、ふたたびその位置を奪還しました。LiveWireの作者によって作られたミニマルなリアクティブフレームワークです。Vue.jsとAngularの両方から、カスタムHTMLディレクティブや双方向バインディングといったアイデアを拝借しています。HTMLに古き良き<script>タグを追加するだけで簡単に使うことができ、ビルドプロセスも不要で、HTMLマークアップだけで全てを動かすことができます。本格的なフレームワークを導入することが困難な既存のWebページをさくっと強化する目的については、最も適切なソリューションであるかもしれません。Phoenixのようなフレームワークともうまく連携して同居できます。CSSを最初からまとめておいたPETALのようなプロジェクトも存在します。こちらについては後ほど語りましょう。MORENode.jsフレームワークには大きく2つの種類が存在します。ひとつはNext.jsやNuxtのようなフルスタックフレームワークで、ReactやVue.jsなどをサーバサイドに持ってくるアプリケーション構築方法については賛否両論があります。ひとつは昨年のチャンピオンNestやFastifyなどが属する、サーバ側のみで動作する古典的なフレームワークです。この分野では2018年にトップだったNext.jsが再びチャンピオンに返り咲きました。当初はReactをSSRするだけのソリューションとして名を上げましたが、今ではReactでフルスタックWebアプリケーションを構築するソリューションの筆頭になっています。Regenerationにも対応し、多くのユースケースで最適な選択肢になりつつあります。フルスタックといえば、BlitzやRedwoodは、それひとつだけで完全なWebアプリケーションを構築できるという最高の開発者体験を提供することを目的としたプロジェクトです。それにしても浮沈の激しいJavaScriptの世界で、11年前に誕生したExpressがいまだに一定の地位を保っているのは興味深いですね。Robinsonは、Vercelでソリューションアーキテクトとして働いている開発者・ライター・クリエイターです。2020年のReactエコシステムのテーマは安定性でした。React17では破壊的変更を行わず、将来に向けての布石を仕込みました。Componentsです。Componentsはクライアントのバンドルサイズを縮小し、起動にかかる時間を改善します。データの取得、データベースやファイルシステムなどデータソースへのアクセスも簡単になります。Next.jsは、Reactアプリケーションを構築するための最も有名なソリューションに成長しました。Componentsの最初のアプリになることでしょう。Formといったサポートライブラリは、hooksを主軸に進化、円熟してきました。それぞれがReact開発の一部を簡素化してくれます。これらのコンポーネントライブラリを組み合わせることで、React開発者はこれまで以上に多くのツールを手に入れることができるでしょう。MORE2020年のVueコミュニティ最大のニュースは、Vue3のリリースです。APIという仕組みが導入されました。コンポーネント内の論理的な繋がりによってコードを整理することが難しかった。コンポーネントをまたいだコードの再利用が容易になる。slots等では不十分だった)TypeScriptサポートが改善された。バージョン3で導入された変更については、マイグレーションガイドをチェックしてみてください。2020年には新たなWeb構築ツール、Viteが誕生しました。modulesに対応し、コマンドラインからVueアプリケーションを構築する最速の方法です。MOREAngularのランキングは昨年とあまり変わりませんが、3位に新たなプロジェクトが登場しました。ScullyはAngularにJamstackをもたらす静的サイトジェネレータです。このプロジェクトは2019年12月に登場し、そしてわかりやすいドキュメントが存在します。Angularは2020年に3つのメジャーバージョンがリリースされました。2月にはバージョン9がリリースされました。主な変更点はIvyコンパイラの導入で、これによってバンドルサイズが減少し、またビルドプロセスに大きな改善がもたらされました。年の後半にはバージョン10とバージョン11がリリースされました。Angularチームの2020年後半の主な仕事は、コミュニティの声に耳を傾けることでした。コミュニティのニーズを理解するために、issueやPRに対応することに大きな努力を行いました。チームが取り組んでいることの共有や、今後のロードマップの公開も行いました。LorberSébastienはReactのアーリーアダプターであり、FacebookのオープンソースであるDocusaurusで働いています。2020年はビルドツールの当たり年で、多くの新しいトレンドが産まれました。modulesの将来に賭けたアプローチです。開発中のコードはバンドルせず、プロダクションコードのビルド時のみバンドルする方針で、非常に高速なフィードバックループを持っています。swcとesbuildは、それぞれRustとGoで書かれており、TypeScriptをサポートしていて、そして信じられないほどの高速で動作します。Webpackは設定が複雑すぎると言われることが多く、よりシンプルに書けるParcelやRollupが成熟してきました。いえビルドツールの中心はいまだWebpackであることは変わらず、そしてWebpackの新たなキャッシングレイヤはビルドのパフォーマンスを大幅に改善します。Monorepoがメインストリームになりつつあります。7も参加してきました。個人的に2021年の去就を注目しているのはRome、Toast、Turborepoです。JSが追跡している多くのカテゴリにおいて、幾つかの新しい潮流が発生し、JavaScriptの世界は今年も素晴らしい年になりました。バックエンド開発者は今すぐDenoを使って、依存を気にすることなくTypeScriptを楽しむことができます。フロントエンド開発者はesbuild、Snowpack、そしてViteなど、より高速でシンプルなビルドソリューションを手に入れることができました。7がひとつのリポジトリで複数のパッケージを扱えるようになるworkspacesをリリースしました。これはライバルであるYarnが先に提供していた大きな利点のひとつです。CSSのような方向性のソリューションが他にも現れています。Componentsがどのようなものになるかは興味深いところです。McKenzieがRomeにフルタイムで入っている今、そのJavaScriptツールを統一しようとする試みはどこまで進むでしょうか。コンパイル、テスト、Lint、その他全て、全てが入ったたったひとつの依存は完成するでしょうか。我々は、フルスタックフレームワークであるRedwoodにも注目しています。これはGraphQLと相性が良く、そしてデータハンドリングに"cells"と呼ばれるユニークな仕組みを使っています。JSも参照してください。みてくれてありがとう。