{
    "componentChunkName": "component---src-templates-blog-post-jsx",
    "path": "/post/2020-js-ts-trending-history/",
    "result": {"data":{"site":{"siteMetadata":{"title":"WEB EGG","author":"Leko - CTO at Yuimedi"}},"markdownRemark":{"id":"744661f6-b844-51a9-91fe-1368d87c8dd4","excerpt":"れこです。この記事はNode.js Advent Calendar 2020の 12 日目の記事です。今回は年の瀬ということで酒の肴になりそうな記事を書きたいと思います。 本記事では 2020 年に GitHub…","html":"<p>れこです。この記事は<a href=\"https://qiita.com/advent-calendar/2020/nodejs\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Node.js Advent Calendar 2020</a>の 12 日目の記事です。今回は年の瀬ということで酒の肴になりそうな記事を書きたいと思います。</p>\n<p>本記事では 2020 年に GitHub のトレンドに上がったリポジトリをいくつかの切り口で集計して、独断と偏見で感想を付け加えます。<br>\nこの記事を酒の肴に 2020 年の JS/TS について懐かしんでもらえたら幸いです。</p>\n<h2 id=\"集計方法\" style=\"position:relative;\"><a href=\"#%E9%9B%86%E8%A8%88%E6%96%B9%E6%B3%95\" aria-label=\"集計方法 permalink\" class=\"autolink-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>集計方法</h2>\n<p>GitHub のトレンドは過去の履歴が残っていないので非公式に集計されたデータを利用しています。</p>\n<ul>\n<li>集計期間は 2020/01/01 から 2020/12/05 までの 341 日間</li>\n<li>対象言語は<code>JavaScript</code>と<code>TypeScript</code>のみ</li>\n<li>トレンドの過去データのソースは<a href=\"https://github.com/xiaobaiha/github-trending-history\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">xiaobaiha/github-trending-history</a>を参照\n<ul>\n<li>日ごとにまとめた markdown になっており、remark で AST→ データ化しました</li>\n</ul>\n</li>\n</ul>\n<p><a href=\"https://github.com/xiaobaiha/github-trending-history\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">xiaobaiha/github-trending-history</a>のデータをベースに加工した集計用の生データは<a href=\"https://docs.google.com/spreadsheets/d/e/2PACX-1vTHFXqzaCMuNqPuDBs4PE6wuxJuJfwbUIYvv8l-IV8neo-6G0BDfP68kcZ8MlV_fFJMkpIdADMzya84/pub?gid=259916409&#x26;single=true&#x26;output=csv\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">こちら</a>に CSV として公開しています。</p>\n<p><strong>GitHub がそのリポジトリをなんの言語と見なしたかをもとに集計対象を決定している</strong>ことにご留意ください。また、別言語で書かれた JS 向けのツール（swc, esbuild など）、CSS フレームワークなども対象外とします。</p>\n<p>なお、本記事では話題になったリポジトリを振り返る指標として GitHub のトレンドおよびスター数を使用しています。これらは話題性やバズに連動する値だと思っていますが、トレンドに載ることやスター数の大小がそのリポジトリの良し悪しの決定的な因子ではないと筆者は思っています。つまりこの記事に載ってるから良い、載ってないから悪いということは全くありません。</p>\n<details><summary>説明が必要そうなCSVカラムの一覧を開く</summary>\n<ul>\n<li>firstAppearedOn: 2020/1/1 移行ではじめてトレンドに載った日</li>\n<li>appearedCount: 集計期間にトレンドに載った日数</li>\n<li>appearedDates: 集計期間にトレンドに載った日の一覧（カンマ区切り）</li>\n<li>stargazers20200101: 2020/1/1 時点での star 数（リポジトリが存在しなかった場合は 0）</li>\n<li>stargazers20201206: 2020/12/6 時点での star 数（リネームなどにより最新状況が取得できなかった場合は空欄）</li>\n<li>stargazers2020Diff: <code>stargazers20201206</code>と<code>stargazers20200101</code>の差</li>\n<li>topics: 2020/12/6 時点でそのリポジトリについているトピックの一覧（カンマ区切り）</li>\n</ul>\n</details>\n<h2 id=\"今年作られた今年から流行ったリポジトリ\" style=\"position:relative;\"><a href=\"#%E4%BB%8A%E5%B9%B4%E4%BD%9C%E3%82%89%E3%82%8C%E3%81%9F%E4%BB%8A%E5%B9%B4%E3%81%8B%E3%82%89%E6%B5%81%E8%A1%8C%E3%81%A3%E3%81%9F%E3%83%AA%E3%83%9D%E3%82%B8%E3%83%88%E3%83%AA\" aria-label=\"今年作られた今年から流行ったリポジトリ permalink\" class=\"autolink-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>今年作られた・今年から流行ったリポジトリ</h2>\n<p>まずは今年作られた・今年から流行ったリポジトリを見てみます。<br>\n単純にトレンドへの掲載率やスター数の累計で集計すると既知のものばかりになるので今年誕生して流行った or 今年から流行り始めたリポジトリに絞って集計します。</p>\n<ul>\n<li>2020 年にはじめてトレンド入りした時点でスター数が 100 未満</li>\n<li>今年獲得したスター数（集計開始時のスター数と、集計終了時のスター数の差）が大きい順にソート</li>\n<li>差分が+5000 以上のリポジトリを抽出</li>\n</ul>\n<p>行頭にある矢印の見方は<code>2020/1/1のスター数->2020/12/6のスター数</code>です。</p>\n<ul>\n<li>1->18211 <a href=\"https://github.com/microsoft/playwright\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">microsoft/playwright</a></li>\n<li>0->14795 <a href=\"https://github.com/anuraghazra/github-readme-stats\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">anuraghazra/github-readme-stats</a></li>\n<li>0->13896 <a href=\"https://github.com/rome/tools\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">rome/tools</a> (ex-<a href=\"https://github.com/facebookexperimental/rome\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">facebookexperimental/rome</a>)</li>\n<li>0->13476 <a href=\"https://github.com/vitejs/vite\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">vitejs/vite</a> (ex-<a href=\"https://github.com/vuejs/vite\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">vuejs/vite</a>)</li>\n<li>0->13245 <a href=\"https://github.com/excalidraw/excalidraw\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">excalidraw/excalidraw</a></li>\n<li>0->12137 <a href=\"https://github.com/cyrildiagne/ar-cutpaste\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">cyrildiagne/ar-cutpaste</a></li>\n<li>0->10824 <a href=\"https://github.com/facebookexperimental/Recoil\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">facebookexperimental/Recoil</a></li>\n<li>0->10571 <a href=\"https://github.com/tailwindlabs/heroicons\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">tailwindlabs/heroicons</a></li>\n<li>18->10400 <a href=\"https://github.com/desktop/desktop\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">desktop/desktop</a></li>\n<li>68->9557 <a href=\"https://github.com/lensapp/lens\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">lensapp/lens</a></li>\n<li>0->9476 <a href=\"https://github.com/tabler/tabler-icons\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">tabler/tabler-icons</a></li>\n<li>1->9137 <a href=\"https://github.com/responsively-org/responsively-app\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">responsively-org/responsively-app</a> (ex-<a href=\"https://github.com/manojVivek/responsively-app\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">manojVivek/responsively-app</a>)</li>\n<li>0->8872 <a href=\"https://github.com/backstage/backstage\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">backstage/backstage</a> (ex-<a href=\"https://github.com/spotify/backstage\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">spotify/backstage</a>)</li>\n<li>0->8095 <a href=\"https://github.com/bradtraversy/vanillawebprojects\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">bradtraversy/vanillawebprojects</a></li>\n<li>0->7790 <a href=\"https://github.com/foambubble/foam\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">foambubble/foam</a></li>\n<li>0->7506 <a href=\"https://github.com/yemount/pose-animator\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">yemount/pose-animator</a></li>\n<li>0->7168 <a href=\"https://github.com/kautukkundan/Awesome-Profile-README-templates\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">kautukkundan/Awesome-Profile-README-templates</a></li>\n<li>0->6873 <a href=\"https://github.com/chuzhixin/vue-admin-beautiful\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">chuzhixin/vue-admin-beautiful</a></li>\n<li>0->6802 <a href=\"https://github.com/hediet/vscode-drawio\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">hediet/vscode-drawio</a></li>\n<li>0->6593 <a href=\"https://github.com/mengshukeji/Luckysheet\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">mengshukeji/Luckysheet</a></li>\n<li>0->6588 <a href=\"https://github.com/AMAI-GmbH/AI-Expert-Roadmap\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">AMAI-GmbH/AI-Expert-Roadmap</a></li>\n<li>6->6577 <a href=\"https://github.com/hediet/vscode-debug-visualizer\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">hediet/vscode-debug-visualizer</a></li>\n<li>0->6464 <a href=\"https://github.com/oldboyxx/jira_clone\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">oldboyxx/jira_clone</a></li>\n<li>0->6426 <a href=\"https://github.com/microsoft/Web-Dev-For-Beginners\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">microsoft/Web-Dev-For-Beginners</a></li>\n<li>0->6261 <a href=\"https://github.com/wuhan2020/wuhan2020\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">wuhan2020/wuhan2020</a></li>\n<li>0->5985 <a href=\"https://github.com/element-plus/element-plus\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">element-plus/element-plus</a></li>\n<li>0->5536 <a href=\"https://github.com/blitz-js/blitz\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">blitz-js/blitz</a></li>\n<li>0->5316 <a href=\"https://github.com/rough-stuff/rough-notation\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">rough-stuff/rough-notation</a> (ex-<a href=\"https://github.com/pshihn/rough-notation\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">pshihn/rough-notation</a>)</li>\n<li>0->5070 <a href=\"https://github.com/mikecao/umami\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">mikecao/umami</a></li>\n<li>0->5054 <a href=\"https://github.com/poloclub/cnn-explainer\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">poloclub/cnn-explainer</a></li>\n</ul>\n<h3 id=\"microsoftplaywright\" style=\"position:relative;\"><a href=\"#microsoftplaywright\" aria-label=\"microsoftplaywright permalink\" class=\"autolink-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>microsoft/playwright</h3>\n<p><a href=\"https://playwright.dev/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https://playwright.dev/</a></p>\n<p>今年のリポジトリだったことに驚きです。趣味でも業務でもめちゃくちゃお世話になっています。<br>\nplaywight は Chromium/Firefox/WebKit の３大ブラウザを透過的な API で扱えるようにした MS 謹製の headless ブラウザ操作ツールです。<br>\nこの playwright を E2E テスト用にラップした<a href=\"https://github.com/microsoft/playwright-test\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">microsoft/playwright-test</a>や、ブラウザを起動し GUI での操作を記録して JS のコードを生成してくれる<a href=\"https://github.com/microsoft/playwright-cli\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">microsoft/playwright-cli</a>など、周辺ツールも少しずつ整ってきました。</p>\n<h3 id=\"anuraghazragithub-readme-stats\" style=\"position:relative;\"><a href=\"#anuraghazragithub-readme-stats\" aria-label=\"anuraghazragithub readme stats permalink\" class=\"autolink-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>anuraghazra/github-readme-stats</h3>\n<p>7 月ごろに GitHub のプロフィールに載せる README ファイルが作れるようになりましたね。手間をかけずにある程度いい感じになるパーツを生成してくれる系ツールの１つです。私のデータで生成された画像がこちらです。</p>\n<p><img src=\"https://github-readme-stats.vercel.app/api?username=Leko&#x26;hide=contribs,prs\" alt=\"Leko&#x27;s github stats\"></p>\n<h3 id=\"rometools\" style=\"position:relative;\"><a href=\"#rometools\" aria-label=\"rometools permalink\" class=\"autolink-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>rome/tools</h3>\n<blockquote>\n<p>Rome は Babel と yarn の作成者である Sebastian McKenzie と Facebook の React Native チームが作成した実験的な JavaScript ツールチェーンである。Rome には、コンパイラ、リンター、フォーマッター、バンドラー、およびテストフレームワークが含まれており、「JavaScript ソースコードの処理に関連するあらゆるもののための包括的なツール」を目指している。</p>\n<p>— <a href=\"https://www.infoq.com/jp/news/2020/08/rome-experimental-js-toolchain/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Facebook が実験的な JavaScript ツールチェーンである Rome を発表</a></p>\n</blockquote>\n<p>Facebook の Rome かなり話題になりましたね。個人的には ESLint のルールを自作したりバンドルのチューニングをしたり細かい設定を自由にできる方が好きなのであまり関心がないのですが「使用するツールが多くてとっつきにくい」「適切な選択をするための学習コスト」などと言った JS の大きな問題に挑んでる挑戦的なリポジトリだと思います。</p>\n<blockquote class=\"twitter-tweet\"><p lang=\"ja\" dir=\"ltr\">rome興味なくて全くキャッチアップしてなかったのに唐突に意見求められて困惑しているけど、こういう刺激がないとどんどん鈍っていくんだろうなという危機感を感じている</p>&mdash; Leko / れこ (@L_e_k_o) <a href=\"https://twitter.com/L_e_k_o/status/1233402076979269637?ref_src=twsrc%5Etfw\">February 28, 2020</a></blockquote> <script async src=\"https://platform.twitter.com/widgets.js\" charset=\"utf-8\"></script>\n<h3 id=\"facebookexperimentalrecoil\" style=\"position:relative;\"><a href=\"#facebookexperimentalrecoil\" aria-label=\"facebookexperimentalrecoil permalink\" class=\"autolink-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>facebookexperimental/Recoil</h3>\n<p>Recoil も話題になりましたね。発表されたのは 5 月ごろだったと記憶しています。<br>\n私は Rx みたいなものだと理解しましたが、Rx を製品でちゃんと使ったことないので解釈違いかもしれません。面白いし気にはなるけど製品に突っ込むことはなさそうだと個人的に思っています。</p>\n<blockquote class=\"twitter-tweet\"><p lang=\"ja\" dir=\"ltr\">recoilちょろっと触ってみて、これ比較対象はReduxじゃなくてRxではと思った</p>&mdash; Leko / れこ (@L_e_k_o) <a href=\"https://twitter.com/L_e_k_o/status/1261654648479346688?ref_src=twsrc%5Etfw\">May 16, 2020</a></blockquote> <script async src=\"https://platform.twitter.com/widgets.js\" charset=\"utf-8\"></script>\n<h3 id=\"vitejsvite\" style=\"position:relative;\"><a href=\"#vitejsvite\" aria-label=\"vitejsvite permalink\" class=\"autolink-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>vitejs/vite</h3>\n<p>死語ですが「ジェバンニが一晩でやってくれました」シリーズですね。esbuild が早いぞと話題になっているころ、Vue.js の作者 Evan You がバンドラのパフォーマンスについて悶々と考えた結果生まれた高速な dev サーバです。Vue.js 作者が作っており名前もそれっぽいので Vue.js 専用のツールなのかと思っていましたが、React や preact でも使える作りになっています。</p>\n<blockquote class=\"twitter-tweet\"><p lang=\"en\" dir=\"ltr\">Open sourced at <a href=\"https://t.co/LYv5vnOv1O\">https://t.co/LYv5vnOv1O</a> <a href=\"https://t.co/KU2LLpEmTD\">https://t.co/KU2LLpEmTD</a></p>&mdash; Evan You (@youyuxi) <a href=\"https://twitter.com/youyuxi/status/1252578206454087680?ref_src=twsrc%5Etfw\">April 21, 2020</a></blockquote> <script async src=\"https://platform.twitter.com/widgets.js\" charset=\"utf-8\"></script>\n<h3 id=\"excalidrawexcalidraw\" style=\"position:relative;\"><a href=\"#excalidrawexcalidraw\" aria-label=\"excalidrawexcalidraw permalink\" class=\"autolink-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>excalidraw/excalidraw</h3>\n<p><a href=\"https://excalidraw.com/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">excalidraw</a>は手書きっぽい優しい雰囲気の図形が描ける描画ツールです。ライブラリというよりは web アプリです。UI はミニマルですが完成度はかなり高いと思います。なんと同時編集もできますし、公式にホスティングされているアプリとして使うのはもちろん（React のみですが）埋め込みにも対応しており、ラフなアイデアを共有したり議論するのにかなり使えそうな予感がしています。<br>\n年始に颯爽と現れ描画ツール界隈がザワつきました。日本だと複雑 GUI の会で話題になっていたのを見かけました。</p>\n<blockquote class=\"twitter-tweet\"><p lang=\"en\" dir=\"ltr\">Made this in <a href=\"https://twitter.com/Vjeux?ref_src=twsrc%5Etfw\">@Vjeux</a>&#39;s Excalidraw <a href=\"https://t.co/9oAjdW0wAc\">https://t.co/9oAjdW0wAc</a><br>Liberating to have fewer options yet have the results look great. Stop caring so much about your stupid graphics. Every imperfection is a little reminder to stop bikeshedding and focus on communicating something. <a href=\"https://t.co/vD1uWu4Ay5\">pic.twitter.com/vD1uWu4Ay5</a></p>&mdash; jordwalke (@jordwalke) <a href=\"https://twitter.com/jordwalke/status/1214858186789806080?ref_src=twsrc%5Etfw\">January 8, 2020</a></blockquote> <script async src=\"https://platform.twitter.com/widgets.js\" charset=\"utf-8\"></script>\n<h3 id=\"rough-stuffrough-notation\" style=\"position:relative;\"><a href=\"#rough-stuffrough-notation\" aria-label=\"rough stuffrough notation permalink\" class=\"autolink-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>rough-stuff/rough-notation</h3>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 648px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 46.10778443113772%; position: relative; bottom: 0; left: 0; background-image: url('data:image/svg+xml,%3csvg%20xmlns=\\'http://www.w3.org/2000/svg\\'%20width=\\'400\\'%20height=\\'185\\'%20viewBox=\\'0%200%20400%20185\\'%20preserveAspectRatio=\\'none\\'%3e%3cpath%20d=\\'M21%2027l1%208%201-3c0-2%200-3%202-3l4%203c1%203%203%204%203%202l-2-3v-4c5-3%202-8-5-8h-4v8m15-2c-2%202-2%206%200%208%201%202%206%202%208%201V24c-2-1-7-1-8%201m26-1v11c-2%201%201%204%204%204%204%200%205-2%205-9v-7h-4l-5%201m50%201l-2%204c0%206%207%208%2010%203%203-6-4-12-8-7m46%200c-5%206%202%2013%207%208l2-4c0-6-6-8-9-4m99%2030v5c0%204%200%204-2%202h-4c-2%202%200%206%203%205%202%200%202%201%202%202%200%203%205%203%2045%203l20%201-1-4c0-3%200-3%201-2%203%202%205%201%205-2%200-4-2-5-5-3-1%201-1%201-1-3l1-4h-64m13%201l-10%201-2%207c-1%207-2%206%2015%206l28%201c18%201%2018%201%2018-8v-5l-5-1c-9-1-33-2-44-1M140%2093c1%204%205%204%205%200%200-2%200-2%201%200l3%203v1h-2c1%202-1%202-10%202-8%200-10%201-11%202l22%201%2021-1%201-2h-10c-9%200-10%200-9-1l1-5c0-3%200-3-4-3-3%200-4%201-4%203l-1%202-1-2-1-3-1%203m14%2013l-2%201-2%201h-2l-3-1h-9l-2%201h2l-1%202c-2%202-2%203%202%203%201%200%202-1%202-3l1-2v2c0%203%200%203%204%203%203%200%204-1%204-2h1l4%202c2%200%202%200%202-4l-1-4v1m-34%2039c-6%202-9%204-10%206l-4%202c-2%200-4%202-2%203l2%201h-2l-1%201%203%201c2%200%202-2%200-4v-1l3%202c0%202%201%203%202%203v-2c-2-2%200-8%203-8%2014-4%2020-3%2024%202%203%204%203%206-1%2010-2%202-3%202-12%202l-11-2-2-1c-2%203%2011%206%2020%205%2011-2%2014-14%204-18-4-2-14-3-16-2\\'%20fill=\\'%23d3d3d3\\'%20fill-rule=\\'evenodd\\'/%3e%3c/svg%3e'); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n          <source\n              srcset=\"/static/e9097612f01430605ac540afc5b663f6/5251b/2020-12-08-23-52-25.webp 167w,\n/static/e9097612f01430605ac540afc5b663f6/7390e/2020-12-08-23-52-25.webp 334w,\n/static/e9097612f01430605ac540afc5b663f6/f623b/2020-12-08-23-52-25.webp 648w\"\n              sizes=\"(max-width: 648px) 100vw, 648px\"\n              type=\"image/webp\"\n            />\n          <source\n            srcset=\"/static/e9097612f01430605ac540afc5b663f6/21521/2020-12-08-23-52-25.png 167w,\n/static/e9097612f01430605ac540afc5b663f6/86d36/2020-12-08-23-52-25.png 334w,\n/static/e9097612f01430605ac540afc5b663f6/3996e/2020-12-08-23-52-25.png 648w\"\n            sizes=\"(max-width: 648px) 100vw, 648px\"\n            type=\"image/png\"\n          />\n          <img\n            class=\"gatsby-resp-image-image\"\n            src=\"/static/e9097612f01430605ac540afc5b663f6/3996e/2020-12-08-23-52-25.png\"\n            alt=\"2020 12 08 23 52 25\"\n            title=\"2020 12 08 23 52 25\"\n            loading=\"lazy\"\n            decoding=\"async\"\n            style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n          />\n        </picture>\n    </span></p>\n<p>全く話題にならなかったと思うんですが個人的に好きなライブラリです。Web ページに ↑ スクショのようなマーカーペンや手書きっぽいアノテーションを加えられるライブラリです。前述の excalidraw も内部で使用している Rough.js を使っており、こちらは web アプリというよりライブラリです。デモは<a href=\"https://roughnotation.com/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">こちら</a>から。<br>\nアニメーションがヌルヌル動くし、手書きっぽさもかなり自然で、アノテーションを文字に被せてもテキスト選択に干渉しません。ブログやプレゼン資料の強調に使うと面白いかもしれません。</p>\n<h2 id=\"2020-年にもっともスターを獲得したリポジトリ\" style=\"position:relative;\"><a href=\"#2020-%E5%B9%B4%E3%81%AB%E3%82%82%E3%81%A3%E3%81%A8%E3%82%82%E3%82%B9%E3%82%BF%E3%83%BC%E3%82%92%E7%8D%B2%E5%BE%97%E3%81%97%E3%81%9F%E3%83%AA%E3%83%9D%E3%82%B8%E3%83%88%E3%83%AA\" aria-label=\"2020 年にもっともスターを獲得したリポジトリ permalink\" class=\"autolink-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>2020 年にもっともスターを獲得したリポジトリ</h2>\n<p>次にリポジトリの作成日に関係なく 2020 年もっともスターを獲得したリポジトリを見ていきます。</p>\n<ul>\n<li>2020 年に一度以上トレンドに載った</li>\n<li>今年獲得したスター数が大きい順にソート</li>\n<li>上位 20 件のみ表示</li>\n<li>前述の”今年作られた・今年から流行ったリポジトリ”と重複しているものは<del>取り消し線</del>を入れてます</li>\n</ul>\n<p>では一覧です。</p>\n<ul>\n<li>+30042 <a href=\"https://github.com/denoland/deno\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">denoland/deno</a></li>\n<li>+29401 <a href=\"https://github.com/trekhleb/javascript-algorithms\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">trekhleb/javascript-algorithms</a></li>\n<li>+24368 <a href=\"https://github.com/vuejs/vue\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">vuejs/vue</a></li>\n<li>+21125 <a href=\"https://github.com/facebook/react\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">facebook/react</a></li>\n<li>+19598 <a href=\"https://github.com/microsoft/vscode\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">microsoft/vscode</a></li>\n<li>+18808 <a href=\"https://github.com/goldbergyoni/nodebestpractices\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">goldbergyoni/nodebestpractices</a></li>\n<li><del>+18211 <a href=\"https://github.com/microsoft/playwright\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">microsoft/playwright</a></del></li>\n<li>+16853 <a href=\"https://github.com/gothinkster/realworld\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">gothinkster/realworld</a></li>\n<li>+15321 <a href=\"https://github.com/vercel/next.js\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">vercel/next.js</a>, (ex-<a href=\"https://github.com/zeit/next.js\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">zeit/next.js</a>)</li>\n<li><del>+14795 <a href=\"https://github.com/anuraghazra/github-readme-stats\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">anuraghazra/github-readme-stats</a></del></li>\n<li>+14563 <a href=\"https://github.com/ryanmcdermott/clean-code-javascript\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">ryanmcdermott/clean-code-javascript</a></li>\n<li>+14560 <a href=\"https://github.com/azl397985856/leetcode\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">azl397985856/leetcode</a></li>\n<li>+14352 <a href=\"https://github.com/freeCodeCamp/freeCodeCamp\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">freeCodeCamp/freeCodeCamp</a></li>\n<li>+14027 <a href=\"https://github.com/angular/angular\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">angular/angular</a></li>\n<li><del>+13896 <a href=\"https://github.com/rome/tools\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">rome/tools</a> (ex-<a href=\"https://github.com/facebookexperimental/rome\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">facebookexperimental/rome</a>)</del></li>\n<li>+13583 <a href=\"https://github.com/30-seconds/30-seconds-of-code\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">30-seconds/30-seconds-of-code</a></li>\n<li><del>+13476 <a href=\"https://github.com/vitejs/vite\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">vitejs/vite</a> (ex-<a href=\"https://github.com/vuejs/vite\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">vuejs/vite</a>)</del></li>\n<li><del>+13245 <a href=\"https://github.com/excalidraw/excalidraw\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">excalidraw/excalidraw</a></del></li>\n<li>+13112 <a href=\"https://github.com/GitSquared/edex-ui\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">GitSquared/edex-ui</a></li>\n<li>+12873 <a href=\"https://github.com/tannerlinsley/react-query\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">tannerlinsley/react-query</a></li>\n</ul>\n<p>おおよそ想像していた通りです。もともとスター数を集めている有名なリポジトリがさらに star を伸ばしたという感じです。</p>\n<h3 id=\"vercelnextjs\" style=\"position:relative;\"><a href=\"#vercelnextjs\" aria-label=\"vercelnextjs permalink\" class=\"autolink-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>vercel/next.js</h3>\n<p>Next.js に関してはこの前の<a href=\"https://nextjs.org/conf/stage/n\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Next.js Conf</a>で発表された v10 の新機能たちでザワついたことが記憶に新しいと思います。個人的にはこれまでのサーバサイドフレームワークの責務を再定義したと思える大きなリリースだと思います。<a href=\"https://forkwell.connpass.com/event/190313/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Front-End Study #1</a>の<a href=\"https://zenn.dev/mizchi/articles/c638f1b3b0cd239d3eea\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Keynote トーク：Frontend 領域を再定義する</a>でも Next.js（とそれをラップしたフルスタックフレームワーク時代の開幕）について触れられていましたね。Next.js をベースにしたフルスタックフレームワーク Blitz もランクインしていますがあまり関心はなくてピックアップはしません。</p>\n<h3 id=\"denolanddeno\" style=\"position:relative;\"><a href=\"#denolanddeno\" aria-label=\"denolanddeno permalink\" class=\"autolink-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>denoland/deno</h3>\n<p>Deno は 2018 年に<a href=\"https://www.youtube.com/watch?v=M3BM9TB-8yA\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">10 Things I Regret About Node.js</a>発表されてから２年の時を経て、今年の 5 月に<a href=\"https://deno.land/posts/v1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">v1 がリリース</a>されました。今後の展開に注目したいです。</p>\n<p>v1 が出たころに unstable の Rust plugin を試したんですが、stable になる前に機能ごと削除されるかもしれません。こちらの Issue から議論に参加できます。</p>\n<blockquote>\n<p>— <a href=\"https://github.com/denoland/deno/issues/8490\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Remove unstable native plugins · Issue #8490 · denoland/deno</a></p>\n</blockquote>\n<blockquote class=\"twitter-tweet\"><p lang=\"ja\" dir=\"ltr\">Denoで3rd party crateを利用するRust pluginのデモ。deno_core crateがバンバン破壊的変更してるのでGitHub上に転がってるサンプルは型が合わなくて全滅してた。公式にあるソースだけが唯一参考になる。CommonMark準拠のmarkdownトランスパイルを実行するサンプル<a href=\"https://t.co/VxTonUp60x\">https://t.co/VxTonUp60x</a></p>&mdash; Leko / れこ (@L_e_k_o) <a href=\"https://twitter.com/L_e_k_o/status/1269303228539129857?ref_src=twsrc%5Etfw\">June 6, 2020</a></blockquote> <script async src=\"https://platform.twitter.com/widgets.js\" charset=\"utf-8\"></script>\n<h3 id=\"vuejsvue\" style=\"position:relative;\"><a href=\"#vuejsvue\" aria-label=\"vuejsvue permalink\" class=\"autolink-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>vuejs/vue</h3>\n<p>Vue に関しては今年の 7 月に v3 RC をアナウンスし、その後 9 月に Vue.js Amsterdam にて<a href=\"https://news.vuejs.org/issues/186\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">V3.0 にアナウンス</a>されて賑わいましたね。詳しくは本家のキーノートをみた方が確実ですが、日本語だと Vue3 に関してはこちらのトークがわかりやすかったです。</p>\n<blockquote>\n<p>— <a href=\"https://speakerdeck.com/kazupon/matinimatuta-vue-dot-js-3\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">まちにまった Vue.js 3 - Speaker Deck</a></p>\n</blockquote>\n<blockquote class=\"twitter-tweet\"><p lang=\"en\" dir=\"ltr\">Vue 3.0 &quot;One Piece&quot; is here! <a href=\"https://t.co/jH6FfByDmX\">https://t.co/jH6FfByDmX</a></p>&mdash; Vue.js (@vuejs) <a href=\"https://twitter.com/vuejs/status/1306992969728380930?ref_src=twsrc%5Etfw\">September 18, 2020</a></blockquote> <script async src=\"https://platform.twitter.com/widgets.js\" charset=\"utf-8\"></script>\n<h2 id=\"nodejs-関連のトピックに絞った場合\" style=\"position:relative;\"><a href=\"#nodejs-%E9%96%A2%E9%80%A3%E3%81%AE%E3%83%88%E3%83%94%E3%83%83%E3%82%AF%E3%81%AB%E7%B5%9E%E3%81%A3%E3%81%9F%E5%A0%B4%E5%90%88\" aria-label=\"nodejs 関連のトピックに絞った場合 permalink\" class=\"autolink-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Node.js 関連のトピックに絞った場合</h2>\n<p>次に Node.js に関連したトピックを持ったリポジトリを比較します。</p>\n<ul>\n<li><code>nodejs</code>または<code>node</code>トピックがついているリポジトリを抽出</li>\n<li>2020 年に 5000 スター以上獲得したリポジトリを抽出</li>\n<li>今年獲得したスター数が多い順にソート</li>\n<li>ここまでの内容と重複しているものは<del>取り消し線</del>を入れてます</li>\n</ul>\n<p>※ トピックは人間が個々のさじ加減で付与したメタデータのため、Node.js 向けのリポジトリに必ずしもこれらのトピックがついてるわけではありませんし、トピックがついているからと言って必ずしも Node.js 向けとも限りません。</p>\n<ul>\n<li><del>+18808 (36877->55685) <a href=\"https://github.com/goldbergyoni/nodebestpractices\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">goldbergyoni/nodebestpractices</a></del></li>\n<li><del>+15321 (42715->58036) <a href=\"https://github.com/vercel/next.js\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">vercel/next.js</a></del></li>\n<li><del>+14352 (302877->317229) <a href=\"https://github.com/freeCodeCamp/freeCodeCamp\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">freeCodeCamp/freeCodeCamp</a></del></li>\n<li><del>+13583 (52352->65935) <a href=\"https://github.com/30-seconds/30-seconds-of-code\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">30-seconds/30-seconds-of-code</a></del></li>\n<li><del>+13112 (11842->24954) <a href=\"https://github.com/GitSquared/edex-ui\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">GitSquared/edex-ui</a></del></li>\n<li>+12488 (67025->79513) <a href=\"https://github.com/axios/axios\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">axios/axios</a></li>\n<li>+11221 (20087->31308) <a href=\"https://github.com/strapi/strapi\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">strapi/strapi</a></li>\n<li>+10872 (56312->67184) <a href=\"https://github.com/puppeteer/puppeteer\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">puppeteer/puppeteer</a></li>\n<li>+9964 (22342->32306) <a href=\"https://github.com/nestjs/nest\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">nestjs/nest</a></li>\n<li>+9638 (65544->75182) <a href=\"https://github.com/nodejs/node\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">nodejs/node</a></li>\n<li>+7857 (11368->19225) <a href=\"https://github.com/laurent22/joplin\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">laurent22/joplin</a></li>\n<li>+6159 (8774->14933) <a href=\"https://github.com/haizlin/fe-interview\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">haizlin/fe-interview</a></li>\n<li>+5644 (5378->11022) <a href=\"https://github.com/n8n-io/n8n\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">n8n-io/n8n</a></li>\n<li>+5189 (1377->6566) <a href=\"https://github.com/prisma/prisma2\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">prisma/prisma2</a></li>\n<li>+5189 (1377->6566) <a href=\"https://github.com/prisma/prisma\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">prisma/prisma</a></li>\n<li>+5028 (46013->51041) <a href=\"https://github.com/expressjs/express\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">expressjs/express</a></li>\n</ul>\n<p>Node.js でサーバサイドの実装してる人にとって特に目新しいものは少ないと思います。<br>\n個人的には fastify や Apollo Server が食い込んでくると思ったのですが、残念ながら fastify のスター数の遷移は<code>+3783(12809->16592)</code>、Apollo Server は<code>+2037(8620->10657)</code>でした。</p>\n<h3 id=\"prisma\" style=\"position:relative;\"><a href=\"#prisma\" aria-label=\"prisma permalink\" class=\"autolink-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Prisma</h3>\n<p>Prisma1 は GraphQL が今より全く浸透してない時代から GraphQL ベースのアプローチを始めた挑戦的なリポジトリでした。GraphiQL よりリッチな GraphQL playground を作っていたり（今も Apollo Server の playground などで現役）するので、直接 Prisma に触れたことがなくても間接的に触ったことのある方も多いと思います。そんな Prisma は今年の 5 月に<a href=\"https://www.prisma.io/blog/prisma-2-beta-b7bcl0gd8d8e\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Prisma 2.0 ベータがアナウンスされ</a>、6 月に<a href=\"https://github.com/prisma/prisma/releases/tag/2.0.0\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">2.0.0 を公開しました</a>。<br>\n1 までは独立した HTTP サーバの印象が強かったですが、2 からは O/R マッパ の印象が強くなっています。Prisma は GraphQL のリソルバを愚直に実装すると起こりがちな N+1 問題に対してクエリを最適化する Data Loader 層の工夫があったり色々といいことがあります。こちらの記事に欲しい情報がまとまっていたので貼っておきます。</p>\n<blockquote>\n<p>— <a href=\"https://qiita.com/joe-re/items/6e09e741ed2e0c6637b0\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">GraphQL と相性の良い ORM Prisma - Qiita</a></p>\n</blockquote>\n<h2 id=\"トレンドに上がったリポジトリのトピック\" style=\"position:relative;\"><a href=\"#%E3%83%88%E3%83%AC%E3%83%B3%E3%83%89%E3%81%AB%E4%B8%8A%E3%81%8C%E3%81%A3%E3%81%9F%E3%83%AA%E3%83%9D%E3%82%B8%E3%83%88%E3%83%AA%E3%81%AE%E3%83%88%E3%83%94%E3%83%83%E3%82%AF\" aria-label=\"トレンドに上がったリポジトリのトピック permalink\" class=\"autolink-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>トレンドに上がったリポジトリのトピック</h2>\n<p>次はリポジトリではなく今年トレンドに上がったリポジトリのトピックを集計しました。</p>\n<ul>\n<li>2020 年に一度以上トレンドに載ったリポジトリを抽出</li>\n<li>5 つ以上のリポジトリに共通してつけられているトピックが対象</li>\n</ul>\n<p><a href=\"https://observablehq.com/embed/@leko/bubble-chart?cell=chart\" target=\"_blank\" rel=\"nofollow noopener noreferrer\"><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 532px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 128.7425149700599%; position: relative; bottom: 0; left: 0; background-image: url('data:image/svg+xml,%3csvg%20xmlns=\\'http://www.w3.org/2000/svg\\'%20width=\\'400\\'%20height=\\'514\\'%20viewBox=\\'0%200%20400%20514\\'%20preserveAspectRatio=\\'none\\'%3e%3cpath%20d=\\'M0%205c0%205%200%205%203%206%206%202%2012%200%2015-5%203-6%203-6-8-6H0v5m23-4c0%202%205%206%209%207%206%202%2016-3%2016-7L36%200%2023%201m61%201c0%204%204%2010%207%2012%2011%207%2023%201%2026-11l1-3h-17C85%200%2084%200%2084%202m36%202c-5%2012%202%2025%2014%2027%2016%202%2027-15%2019-28l-1-3h-30l-2%204m43-3c-11%2014-3%2036%2015%2040%2021%205%2038-20%2026-38l-2-3h-19l-20%201m45%202c0%204%203%2010%207%2013%2011%2011%2030%202%2030-13V0h-37v3m62%200c-3%208%202%2018%2012%2021%2011%204%2023-8%2020-20l-1-4h-30l-1%203m44-1c-14%207-10%2029%206%2029%2020%200%2021-28%202-30l-8%201m60%201c-7%204-8%2014-2%2020%205%205%2013%205%2018%200%2011-10-3-28-16-20m-29%203c-12%207-7%2025%207%2025%205%200%209-2%2012-7%207-12-7-25-19-18M57%207c-16%205-18%2028-3%2035s29-3%2028-19C81%2011%2069%203%2057%207m-40%205c-16%208-6%2034%2011%2029%207-2%2011-7%2012-14%200-13-11-21-23-15m229%203c-14%206-17%2023-6%2034%2012%2012%2030%207%2036-9%205-17-14-33-30-25M99%2020c-14%204-21%2019-15%2032%2012%2025%2050%2010%2042-17-3-10-17-18-27-15m192%206c-11%204-17%2017-12%2027%206%2013%2022%2016%2032%205%2014-14-1-38-20-32m74%205c-13%208-11%2027%204%2031%2016%204%2028-14%2017-27-5-6-14-8-21-4m-34%200c-13%205-16%2021-6%2030%208%208%2021%206%2027-5%208-14-6-30-21-25m-129%206c-15%208-19%2028-7%2041a25%2025%200%20107-41m-57%200c-13%205-20%2015-20%2029%200%2015%2011%2027%2027%2028%2021%201%2036-18%2029-38-4-15-22-24-36-19m252%201c-6%207-5%2017%202%2022l2%201V51l-1-13-1-2-2%202M30%2044c-13%207-13%2027-1%2035%207%204%2018%204%2024-1%2021-16%200-47-23-34M1%2052l1%2010v1c-2%200-2%201-2%207v6h4c8-2%2012-7%2013-16%200-7-2-12-8-16-7-4-8-3-8%208m256%206c-18%204-27%2023-20%2039%2014%2028%2055%2016%2053-14-2-17-17-28-33-25m51%206c-13%205-18%2019-13%2032%208%2017%2034%2016%2041-1%208-18-10-37-28-31m46%202c-16%207-17%2029-1%2037%207%204%2012%204%2019%200%2014-7%2015-26%202-35-5-4-14-5-20-2m40%201c-9%206-10%2020-1%2027l5%203%202%202c0%201-1%202-3%202-11%200-18%2015-13%2026%202%204%208%209%2011%209s5%201%205%202l-5%201c-25%200-27%2039-1%2041%208%200%208%203%200%207-18%208-17%2033%202%2040l4%201v7a2759%202759%200%2000-1-170l-5%202M77%2068c-32%208-47%2047-29%2075%2020%2031%2066%2030%2085-2%2023-37-13-85-56-73M5%2079l-4%201v42l4%202c13%205%2029-3%2033-16%205-20-15-37-33-29m177%209c-20%205-38%2023-42%2043-7%2036%2020%2070%2057%2070%2015%200%2029-6%2040-17%2037-37%2011-98-41-98l-14%202m99%2022c-16%207-25%2020-24%2038%201%2011%204%2018%2012%2025%2031%2029%2078-7%2059-45-8-17-30-25-47-18m66%201c-14%207-18%2026-6%2038%2017%2018%2047-1%2039-25-4-12-20-19-33-13M8%20130l-6%201-1%2031c0%2035-1%2032%209%2034%2015%203%2030-5%2037-18%204-8%204-23%200-31-8-15-24-22-39-17m334%2029c-16%205-25%2022-21%2038%208%2027%2045%2030%2057%206%204-9%205-13%203-21-5-18-22-28-39-23M82%20170c-85%2019-99%20133-21%20170%2014%207%2022%208%2039%208%2041%200%2074-25%2087-65%204-13%204-36%200-49a91%2091%200%2000-105-64m176%2014c-50%207-79%2061-58%20107a75%2075%200%2010117-90%2078%2078%200%2000-59-17M1%20220v22l3-2c8-6%2012-22%208-31-2-4-9-12-10-12l-1%2023m361%200c-18%207-22%2030-8%2043%208%207%2020%209%2029%204%2023-13%2014-48-12-48l-9%201m27%2046c-23%2011-18%2045%207%2049l4%201v6l1-15-1-31v-11h-4l-7%201M1%20305v24l3-2c15-9%2016-31%203-42l-5-4-1%2024m342-8c-32%2011-24%2058%2010%2057%2024%200%2038-27%2024-47-8-10-21-14-34-10m-157%2021c-51%209-70%2071-34%20108%2013%2012%2027%2018%2045%2018%2036%200%2064-28%2063-63%200-39-36-70-74-63m-174%209l-8%204-4%203v23c0%2026-1%2024%2010%2029%2027%2012%2055-17%2041-44-7-14-25-21-39-15m276%207c-26%209-34%2040-15%2060%2018%2019%2049%2014%2060-11a37%2037%200%2000-45-50m104%200c-22%208-19%2037%204%2040l4%201v-42h-3l-5%201M77%20353c-44%2014-35%2079%2011%2081%2045%202%2061-59%2020-79-9-4-22-5-31-2m274%207c-11%205-16%2016-12%2026%204%2012%2011%2016%2023%2016%2024-2%2029-32%208-43-7-3-12-3-19%201m41%2018c-12%208-11%2026%203%2032l5%202%201-28c-1-9-2-10-9-6M19%20392c-16%205-23%2023-14%2037%2012%2020%2045%2011%2045-14%200-15-17-28-31-23m303%2010c-20%206-23%2032-5%2041%2022%2012%2043-15%2028-34-6-6-16-9-23-7m48%202c-22%204-23%2036-1%2041%2013%203%2027-8%2026-22-1-12-13-21-25-19m-106%202c-10%205-15%2013-15%2026%200%2029%2038%2038%2051%2012%2012-23-12-48-36-38m-143%2019a28%2028%200%200013%2052c29%201%2038-39%2012-52-9-4-16-4-25%200m-48%2012c-5%202-13%2010-14%2015-2%209-1%2016%206%2023%209%209%2023%209%2032%200%2017-17%200-45-24-38m-49%208c-20%2010-13%2040%2010%2040s30-30%2010-40c-7-4-13-4-20%200m200%200c-12%205-17%2022-9%2034%2012%2020%2043%2011%2043-13%200-17-18-28-34-21m124%200c-6%203-11%2012-9%2019%203%2014%2019%2018%2029%208%2012-13-4-34-20-27m35%201c-8%204-11%2015-5%2022%205%206%2014%207%2019%203l3-2v2c0%202-1%203-2%203-3%200-8%204-10%208-3%207%201%2015%209%2017l3%201v6-52c-1-7-9-11-17-8m-207%201c-16%206-21%2027-10%2039%2012%2015%2036%2010%2042-9%205-19-13-36-32-30m136%201c-19%207-18%2032%201%2037%2012%203%2023-6%2023-18%200-13-13-23-24-19M1%20474c0%2015%200%2016%202%2015%2010-5%2011-22%201-29l-3-2v16m268-10c-16%208-13%2033%205%2037%2019%205%2032-18%2019-33-5-6-17-8-24-4m100%2012c-11%203-13%2020-3%2024%205%202%206%202%209%201%2016-5%2010-29-6-25m-29%202c-13%203-16%2020-5%2026%208%205%2018%201%2021-8%203-10-6-20-16-18m-246%203c-8%205-11%2016-7%2025%203%207%206%208%2018%208h9l4-4c16-16-5-41-24-29m-42%200c-11%205-13%2019-4%2027%2016%2016%2040-6%2025-23-5-6-14-8-21-4m85%200c-8%204-13%2015-11%2023l3%207%202%203h31l2-3c11-18-8-39-27-30m-115%207c-9%203-13%2014-8%2022%203%204%204%204%2014%204%207%200%207-1%2010-4%207-11-4-26-16-22m186%200c-8%203-13%2010-13%2018s-1%208%2018%208%2018%200%2018-8c0-13-12-22-23-18m98%200c-10%203-14%2013-10%2022l1%204h27l1-4c5-13-6-26-19-22m-62%208c-5%202-9%208-10%2014v4h36v-4c-2-12-15-19-26-14M1%20504v10h4c4%200%204%200%205-3%200-5-1-10-4-13-5-4-5-4-5%206m380-3c-3%202-4%207-3%2010s1%203%209%203c10%200%2010%200%2010-6%200-7-10-12-16-7m-19%202c-4%201-8%204-9%208l-1%203h12c13%200%2013%200%2011-5-3-5-8-7-13-6m-191%206c-8%204-8%205%208%205%2013%200%2014%200%2013-2-4-5-15-6-21-3\\'%20fill=\\'%23d3d3d3\\'%20fill-rule=\\'evenodd\\'/%3e%3c/svg%3e'); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n          <source\n              srcset=\"/static/253d26181a245287903eb779ab68f59a/5251b/2020-12-09-00-32-59.webp 167w,\n/static/253d26181a245287903eb779ab68f59a/7390e/2020-12-09-00-32-59.webp 334w,\n/static/253d26181a245287903eb779ab68f59a/b5f85/2020-12-09-00-32-59.webp 532w\"\n              sizes=\"(max-width: 532px) 100vw, 532px\"\n              type=\"image/webp\"\n            />\n          <source\n            srcset=\"/static/253d26181a245287903eb779ab68f59a/21521/2020-12-09-00-32-59.png 167w,\n/static/253d26181a245287903eb779ab68f59a/86d36/2020-12-09-00-32-59.png 334w,\n/static/253d26181a245287903eb779ab68f59a/89a37/2020-12-09-00-32-59.png 532w\"\n            sizes=\"(max-width: 532px) 100vw, 532px\"\n            type=\"image/png\"\n          />\n          <img\n            class=\"gatsby-resp-image-image\"\n            src=\"/static/253d26181a245287903eb779ab68f59a/89a37/2020-12-09-00-32-59.png\"\n            alt=\"2020 12 09 00 32 59\"\n            title=\"2020 12 09 00 32 59\"\n            loading=\"lazy\"\n            decoding=\"async\"\n            style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n          />\n        </picture>\n    </span></a></p>\n<p>画像が大きいので中心部分を抜粋しました。こちらのリンクから SVG の全体画像が確認できます。</p>\n<blockquote>\n<p>— <a href=\"https://observablehq.com/@leko/bubble-chart\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Bubble Chart / Shingo Inoue / Observable</a></p>\n</blockquote>\n<p>同じことを来年もやってこの記事と比較したいです。</p>\n<h2 id=\"トレンド常連組\" style=\"position:relative;\"><a href=\"#%E3%83%88%E3%83%AC%E3%83%B3%E3%83%89%E5%B8%B8%E9%80%A3%E7%B5%84\" aria-label=\"トレンド常連組 permalink\" class=\"autolink-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>トレンド常連組</h2>\n<p>最後に GitHub のトレンド常連組を載せて終わります。</p>\n<ul>\n<li>集計期間内に 50 日以上トレンドに載ったリポジトリを抽出</li>\n<li>トレンドに出現した日数をカウント</li>\n</ul>\n<p>目新しさが全くないので過去累計のスター数の変遷のグラフもつけてみました。</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 668px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 64.07185628742515%; position: relative; bottom: 0; left: 0; background-image: url('data:image/svg+xml,%3csvg%20xmlns=\\'http://www.w3.org/2000/svg\\'%20width=\\'400\\'%20height=\\'255\\'%20viewBox=\\'0%200%20400%20255\\'%20preserveAspectRatio=\\'none\\'%3e%3cpath%20d=\\'M390%20131l-5%203-4%201h2c8-1%201%202-16%206a381%20381%200%200022-5c-3%200-2-2%201-2%202%200%202%200%201-1-1%200-1-1%201-2l1-3-3%203m-190%2016c-21%2014-41%2024-63%2033-13%205-21%208-23%2011-3%202-19%206-33%208a463%20463%200%2000-32%205l-10%201c-5%201-5%201%205%201l15%201%2016-1a271%20271%200%200027-1h1l1-1h23c22-1%2026-1%2023%201-1%201-1%201%201%201%201%200%202%200%201-1%200-2%201-2%203-2l10-1c6%200%206%200%205%201-4%203-1%204%2010%202l17-2c9-2%2014-3%2041-4a899%20899%200%200034-1c0%202-11%204-20%204-4%200-5%200-3%201l3%201h-3c-3%201-3%201%201%201l19-3%203%202%201%203v-3l4-3%2015-3c14-3%2074-8%2074-6l-14%203-13%203v1l-2%202c-1%202-1%202-6%202-4%200-4%200-1%201l4%201h-4l-5%201h11l2-1%2016-5c4-1%204-1%203-2-2-1-2-1%200%200l15-3%2016-5c3%200%205-1%205-2s-1-1-7%201l-2-1%205-2%204-1-2-1-5%201-3%202c-1%202-5%203-30%204h-26c-2-1-2-1%200-1l19-5c16-4%2019-4%2030-4l15-1h-11c-14%200-15-1-2-4%206-1%2016-5%2013-5l-22%207c-7%202-10%202-32%204l-25%201h34l7-1-7%202c-24%207-43%2010-61%2011l-11%201v-4c0-5%200-4%2020-6l16-2-25%201-10%201h-1l-24%205c-2%200-2%200%200-1l2-2-3%201a258%20258%200%2001-48%209c-1%201-23%203-38%203h-11l6-2a511%20511%200%200160-8l16-2%207-1%2011-1a232%20232%200%200022-3l21-4a3409%203409%200%2001-3-2l-7%201-9%203c-5%200-5%200%203-3%204-1%207-2%206-3l-13%204a98%2098%200%2001-26%206l-14%202-20%203c-19%203-47%206-49%205-2%200-10%202-11%204l-12%201h-9c-10%200-10%200%2014-4a669%20669%200%2000-23%202l-1-2-1%201c-1%202-6%203-24%205-22%202-44%202-26%200%2021-3%2041-8%2045-11l22-11a325%20325%200%200063-34m185-1l-10%202a2534%202534%200%2000-30%2010c20-5%2021-6%2021-4v1l1-2v-1c1%201%203%200%204-1l12-4%2010-3v-1l-8%203m-127%2045l-12%202c-5-1-10%200-9%201l-6%202-6%202%2039-2h8v-4c1-4-1-4-14-1M60%20226h-9l-8%201c0%202%204%202%2021%202l20-1c0-1-3-2-11-2a66%2066%200%2001-13%200m100%200h-17c-14%200-17%201-17%202l8%201h22c9%200%2011-1%2012-2l-3-1h-5m137%200c-4%200-4%200-4%204%200%202%201%203%202%203h17c0-2-3-2-10-2l-7-1%2015-1c2%201%2015%200%2015-2l-3-1-13%201h-1l-1-1h-10m-87%202l9%201%205-1h1l13%201%2013-1c0-2-3-2-20-2-18%200-21%200-21%202m-167%209l10%201a173%20173%200%200012%200l15%201c11%200%2015-1%2015-2l-1-1H75l-1%201c-1-2-31-2-31%200\\'%20fill=\\'%23d3d3d3\\'%20fill-rule=\\'evenodd\\'/%3e%3c/svg%3e'); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n          <source\n              srcset=\"/static/9b3cd89d065842e4d223b81bb9ba2b21/5251b/2020-12-06-03-59-04.webp 167w,\n/static/9b3cd89d065842e4d223b81bb9ba2b21/7390e/2020-12-06-03-59-04.webp 334w,\n/static/9b3cd89d065842e4d223b81bb9ba2b21/7c056/2020-12-06-03-59-04.webp 668w,\n/static/9b3cd89d065842e4d223b81bb9ba2b21/0a92e/2020-12-06-03-59-04.webp 1002w,\n/static/9b3cd89d065842e4d223b81bb9ba2b21/a1214/2020-12-06-03-59-04.webp 1254w\"\n              sizes=\"(max-width: 668px) 100vw, 668px\"\n              type=\"image/webp\"\n            />\n          <source\n            srcset=\"/static/9b3cd89d065842e4d223b81bb9ba2b21/21521/2020-12-06-03-59-04.png 167w,\n/static/9b3cd89d065842e4d223b81bb9ba2b21/86d36/2020-12-06-03-59-04.png 334w,\n/static/9b3cd89d065842e4d223b81bb9ba2b21/74866/2020-12-06-03-59-04.png 668w,\n/static/9b3cd89d065842e4d223b81bb9ba2b21/d69c4/2020-12-06-03-59-04.png 1002w,\n/static/9b3cd89d065842e4d223b81bb9ba2b21/8affb/2020-12-06-03-59-04.png 1254w\"\n            sizes=\"(max-width: 668px) 100vw, 668px\"\n            type=\"image/png\"\n          />\n          <img\n            class=\"gatsby-resp-image-image\"\n            src=\"/static/9b3cd89d065842e4d223b81bb9ba2b21/74866/2020-12-06-03-59-04.png\"\n            alt=\"2020 12 06 03 59 04\"\n            title=\"2020 12 06 03 59 04\"\n            loading=\"lazy\"\n            decoding=\"async\"\n            style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n          />\n        </picture>\n    </span></p>\n<p><a href=\"https://github-stars.socode.pro/?stack=5b0abe7d-3c2a-3a09-fba0-5fbeb24963f1&#x26;repos=angular%2Fangular%2Cmicrosoft%2FTypeScript%2Cstorybookjs%2Fstorybook%2Cant-design%2Fant-design%2Cnestjs%2Fnest%2Cgrafana%2Fgrafana%2Cdenoland%2Fdeno%2Cmicrosoft%2Fvscode%2Cvuejs%2Fvue-next%2Caws%2Faws-cdk%2Creact-hook-form%2Freact-hook-form%2Ctypeorm%2Ftypeorm%2Ctrekhleb%2Fjavascript-algorithms%2CDefinitelyTyped%2FDefinitelyTyped%2Cfacebook%2Freact%2Cmui-org%2Fmaterial-ui%2Cangular%2Fangular-cli%2Cangular%2Fcomponents%2Celastic%2Fkibana%2Cstrapi%2Fstrapi%2Cstreamich%2Freact-use%2Cfacebook%2Freact-native\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">view chart online</a></p>\n<ul>\n<li>102 日: <a href=\"https://github.com/angular/angular\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">angular/angular</a></li>\n<li>74 日: <a href=\"https://github.com/microsoft/TypeScript\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">microsoft/TypeScript</a></li>\n<li>69 日: <a href=\"https://github.com/storybookjs/storybook\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">storybookjs/storybook</a></li>\n<li>68 日: <a href=\"https://github.com/ant-design/ant-design\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">ant-design/ant-design</a></li>\n<li>67 日: <a href=\"https://github.com/nestjs/nest\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">nestjs/nest</a></li>\n<li>66 日: <a href=\"https://github.com/grafana/grafana\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">grafana/grafana</a></li>\n<li>66 日: <a href=\"https://github.com/denoland/deno\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">denoland/deno</a></li>\n<li>66 日: <a href=\"https://github.com/microsoft/vscode\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">microsoft/vscode</a></li>\n<li>64 日: <a href=\"https://github.com/vuejs/vue-next\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">vuejs/vue-next</a></li>\n<li>63 日: <a href=\"https://github.com/aws/aws-cdk\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">aws/aws-cdk</a></li>\n<li>61 日: <a href=\"https://github.com/react-hook-form/react-hook-form\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">react-hook-form/react-hook-form</a></li>\n<li>60 日: <a href=\"https://github.com/typeorm/typeorm\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">typeorm/typeorm</a></li>\n<li>58 日: <a href=\"https://github.com/trekhleb/javascript-algorithms\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">trekhleb/javascript-algorithms</a></li>\n<li>57 日: <a href=\"https://github.com/DefinitelyTyped/DefinitelyTyped\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">DefinitelyTyped/DefinitelyTyped</a></li>\n<li>57 日: <a href=\"https://github.com/facebook/react\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">facebook/react</a></li>\n<li>53 日: <a href=\"https://github.com/mui-org/material-ui\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">mui-org/material-ui</a></li>\n<li>52 日: <a href=\"https://github.com/angular/angular-cli\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">angular/angular-cli</a></li>\n<li>52 日: <a href=\"https://github.com/angular/components\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">angular/components</a></li>\n<li>52 日: <a href=\"https://github.com/elastic/kibana\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">elastic/kibana</a></li>\n<li>52 日: <a href=\"https://github.com/strapi/strapi\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">strapi/strapi</a></li>\n<li>51 日: <a href=\"https://github.com/streamich/react-use\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">streamich/react-use</a></li>\n<li>50 日: <a href=\"https://github.com/facebook/react-native\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">facebook/react-native</a></li>\n</ul>\n<p>もっともトレンドに乗った日数が多かったのは Angular でした。<br>\n以上です。良いお年を！</p>","timeToRead":22,"frontmatter":{"title":"GitHubのトレンドで振り返る2020年のJavaScript","tags":["JavaScript","TypeScript","GitHub"],"date":"December 11, 2020","featuredImage":{"childImageSharp":{"fluid":{"tracedSVG":"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='400'%20height='220'%20viewBox='0%200%20400%20220'%20preserveAspectRatio='none'%3e%3cpath%20d='M14%202c-1%206%201%209%206%2012%207%203%2015-2%2015-10V0H25C15%200%2014%200%2014%202m45%201c0%2021%2033%2023%2035%202V0H59v3m37%202c-6%2025%2016%2049%2041%2044%2021-4%2034-25%2029-45l-1-4H97l-1%205m82%200c-27%2029-2%2076%2037%2069%2032-5%2046-45%2023-69l-4-5h-52l-4%205m60-4c0%202%205%206%208%208%209%204%2020%202%2026-6l2-3h-18l-18%201m45%202l7%205c6%201%2011-1%2015-5l4-3h-29l3%203m34-1c4%204%2012%205%2018%202%207-3%206-4-7-4-11%200-12%200-11%202m53%200c-2%203-2%206%200%2010%205%2011%2022%203%2018-8l-2-4h-7c-7%200-8%200-9%202m19-1c0%204%206%208%209%206%202%200%202%200%202%202%200%201-1%202-3%201l-6%202c-6%205-2%2015%205%2014%204-1%205-4%205-17V1l-6-1-6%201M1%2012c0%2011%200%2012%207%209%208-4%205-19-4-19H1v10m351-9c-10%202-13%2015-6%2022%208%207%2020%202%2021-8%202-8-7-16-15-14M44%206c-16%205-11%2028%205%2027%2015-2%2017-21%204-26-4-2-5-2-9-1m228%202c-30%209-26%2051%205%2054%2016%201%2029-11%2029-28S288%204%20272%208m45%201c-6%203-11%2012-10%2019%204%2020%2034%2018%2034-3%200-12-12-20-24-16M15%2017c-9%205-10%2018-1%2024%208%205%2020-1%2020-11S24%2014%2015%2017m355%204c-11%207-3%2024%209%2020%2010-3%2011-16%202-21-4-2-7-1-11%201M73%2023c-11%201-19%2013-19%2024%200%2024%2030%2033%2044%2013%204-5%205-15%203-22-3-10-16-17-28-15M0%2038c0%2011%200%2012%204%207%204-4%204-10%200-14-4-5-4-4-4%207m395-9c-3%201-6%204-7%207-2%206%203%2013%209%2013h3V39c0-12%200-12-5-10m-51%203c-9%207-9%2020%201%2026%2012%207%2027-7%2020-20-2-5-7-8-13-8l-8%202M30%2042c-5%202-10%209-10%2014-1%2014%2016%2022%2026%2013%209-8%208-20-1-26-4-2-12-3-15-1m346%203c-8%202-11%208-9%2015%203%2011%2018%2014%2024%204%206-11-4-23-15-19m-65%201c-18%207-18%2033%200%2040%2016%207%2034-8%2030-25-3-13-18-21-30-15M2%2050c-2%200-2%200-2%2013v12l3%201c3%200%205%200%208-2%2014-7%207-27-9-24m122%203c-18%203-36%2017-44%2034a65%2065%200%201044-34m272%207c-4%204-4%2010%200%2015s4%204%204-8V57l-4%203m-149%203c-29%208-47%2036-41%2064a54%2054%200%201067-63c-8-2-20-2-26-1m106%200c-11%203-15%2016-8%2025%209%2012%2029%205%2028-11-1-10-11-17-20-14M53%2069c-11%202-18%2013-15%2024%206%2021%2038%2017%2038-5%200-13-11-21-23-19m-39%206c-15%209-3%2033%2013%2025%205-2%208-7%208-13%200-11-12-18-21-12m368-1c-9%203-11%2018-2%2023%204%202%2011%201%2015-2%209-9%200-25-13-21m-57%2016c-12%207-12%2025%200%2032%2014%207%2029-4%2027-19-3-12-17-19-27-13M0%20105l1%2012c2%200%207-5%209-8%202-5%201-10-3-14-6-6-7-5-7%2010m361-9c-7%204-8%2014-3%2020%209%2010%2024%205%2024-9%200-10-12-17-21-11m31%203c-8%206-5%2018%205%2019l3%201v20l-4%202c-7%203-8%2011-3%2017l5%204%202%202V97h-3l-5%202m-365%203c-17%207-15%2033%204%2036%208%201%2018-5%2020-14%204-14-10-27-24-22m353%2017c-7%205-9%2014-3%2020%2010%209%2026-2%2021-14-3-7-12-10-18-6M1%20132v12h3l5-2c10-7%206-23-5-23H1v13m346-9c-9%204-13%2014-9%2023%206%2015%2027%2015%2033%200%207-15-10-31-24-23m-294%208c-10%204-15%2014-13%2023%205%2019%2031%2020%2037%201%205-14-10-29-24-24m-38%209c-12%209-7%2027%208%2027%2011%200%2018-11%2013-21-4-8-14-10-21-6m298%204c-19%208-17%2035%202%2041%2023%206%2037-25%2018-38-5-4-15-5-20-3m58%209c-12%207-8%2024%206%2026%206%200%2011-3%2013-9%205-12-8-23-19-17m-174%207c-15%203-29%2018-33%2033-1%205-2%2017%200%2023l1%204h87l1-4c6-24-8-48-31-55-7-2-19-3-25-1m-121%205c-20%206-22%2034-4%2043%2024%2011%2045-19%2026-37-5-6-15-8-22-6m-72%203l-4%202v9c0%2012%202%2014%2010%2014%2016%200%2019-22%204-26-5-1-5-1-10%201m29%201c-14%209-8%2030%209%2030%2010%200%2017-8%2016-18-1-11-15-18-25-12m241%201c-17%206-24%2028-12%2043%204%206%207%207%2021%207h12l5-5c20-20%201-53-26-45m75%201c-16%205-12%2028%205%2028%2012%200%2019-16%2010-25l-5-3c-5-2-7-2-10%200m46%200c-8%204-6%2018%203%2018%202%200%202%200%202-10%200-11%200-11-5-8m-20%2011c-3%202-6%206-6%2011%200%2011%2016%2015%2021%205%206-10-4-20-15-16m-256%204c-11%205-17%2014-17%2026v8h59v-8c-1-22-23-35-42-26m199%204c-5%203-10%2015-7%2016v2c0%203%204%208%208%2010%2018%209%2033-16%2016-28-4-3-12-3-17%200M0%20203c0%2010%200%2011%202%2010%207-4%208-16%200-20-2-1-2-1-2%2010m15-6c-6%204-8%2013-3%2020%202%203%202%203%2011%203s9%200%2011-3c9-12-6-28-19-20m379-1c-5%204-4%2012%201%2015%204%202%205%202%205-7%200-10-1-11-6-8m-346%204c-6%202-10%209-10%2016l1%204h29v-3c2-6-4-15-11-17h-9m301%203c-4%203-6%209-6%2013l1%204h24l1-3c3-11-10-20-20-14m25%206l-3%207v4h23v-3c0-10-12-15-20-8m-296%204l-6%204-2%203h29l-2-3c-5-5-13-6-19-4'%20fill='%23d3d3d3'%20fill-rule='evenodd'/%3e%3c/svg%3e","aspectRatio":1.815217391304348,"src":"/static/92107317d984051ee375454738e070f0/74d73/2020-12-09-01-19-48.png","srcSet":"/static/92107317d984051ee375454738e070f0/1ec58/2020-12-09-01-19-48.png 334w,\n/static/92107317d984051ee375454738e070f0/ccb4a/2020-12-09-01-19-48.png 668w,\n/static/92107317d984051ee375454738e070f0/74d73/2020-12-09-01-19-48.png 737w","srcWebp":"/static/92107317d984051ee375454738e070f0/f4042/2020-12-09-01-19-48.webp","srcSetWebp":"/static/92107317d984051ee375454738e070f0/cd98f/2020-12-09-01-19-48.webp 334w,\n/static/92107317d984051ee375454738e070f0/7535d/2020-12-09-01-19-48.webp 668w,\n/static/92107317d984051ee375454738e070f0/f4042/2020-12-09-01-19-48.webp 737w","sizes":"(max-width: 737px) 100vw, 737px"}}}}}},"pageContext":{"slug":"/2020-js-ts-trending-history/","previous":{"fields":{"slug":"/http-over-quic-on-nodejs15/"},"frontmatter":{"title":"Node.jsのHTTP over QUIC(HTTP/3)を試す","tags":["JavaScript","Node.js","HTTP/3","QUIC"]}},"next":{"fields":{"slug":"/what-gadgets-i-bought-in-2020/"},"frontmatter":{"title":"2020年に買って良かったガジェット・家電・備品たち","tags":null}}}},
    "staticQueryHashes": ["2585454260","2954598359"]}