AtCoderで使用可能なプログラミング言語が3年振りにアップデートされたので、どの言語が選ばれているか調べてみた

[Supership](https://supership.jp/)の名畑です。今期アニメの[Lv1魔王とワンルーム勇者](https://lv1room.com/)、展開が思ったよりもシリアス要素多めで、なかなか続きが気になります。

## はじめに

久々に[AtCoder](https://atcoder.jp/)について書きます。

AtCoderユーザの皆様はすでにご存知の通り、使用できるプログラミング言語とライブラリが久々にアップデートされました。[2020年](https://atcoder.jp/posts/466)以来でしょうか。
どのようにアップデートされたかは[使用できる言語とライブラリの一覧](https://img.atcoder.jp/file/language-update/language-list.html)をご覧ください。

このアップデートに際し、2023年8月6日に[新ジャッジテストコンテスト -Algorithm-](https://atcoder.jp/contests/newjudge-2308-algorithm)と[新ジャッジテストコンテスト -Heuristic-](https://atcoder.jp/contests/newjudge-2308-heuristic)が開催されました(**Rated対象ではありません**)。
また、8月12日に開催されたRatedのコンテストである[AtCoder Beginner Contest 314](https://atcoder.jp/contests/abc314)でもアップデート後の言語とライブラリが適用されました。

今回は**AtCoder Beginner Contest 314**(ABC314)と**新ジャッジテストコンテスト -Algorithm-** でどの言語がどれだけ使われたのかを調べてみました。

:::note info
AtCoderについて調べてみたシリーズの主な過去記事
- [競技プログラミング(AtCoder)とはどんなものか](https://qiita.com/nabata/items/44fa3995e476b12b9860)
- [誕生年毎のアクティブユーザ数](https://qiita.com/nabata/items/75407e48c7ca8de8a4a4)
- [アクティブユーザの世代別国と地域](https://qiita.com/nabata/items/28b5572978ee4abb0126)
- [プログラミング言語シェア](https://qiita.com/nabata/items/1f9c0543fad5c6106d19)
- [レーティング別問題解答速度](https://qiita.com/nabata/items/25631d3d1e43f4d9e31f)
- [所属(大学・高校・会社等)別のアクティブユーザ数](https://qiita.com/nabata/items/864e06a52de88123daaa)
- [年齢と使用プログラミング言語の相関](https://qiita.com/nabata/items/7c15a47f6a5caecadcc9)
:::

## 抽出条件

- コンテスト開催時間中の提出であること
- 各ユーザのそのコンテストにおける最後の提出であること(つまり1ユーザにつき1カウント)

## AtCoder Beginner Contest 314

対象データは**9188件**でした。

**ベスト9とその他**での全10項目のグラフはこちら。

![abc314.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/869934/9ef5b79c-bf4f-a771-cd4a-837a400850ff.png)

全結果を表にしたものは下記です。

| 	言語	 | 	ユーザ数	 | 	割合(%)	 |
| 	----	 | 	----:	 |	----:	 |
| 	C++ 20 (gcc 12.2)	 | 	5275	 |	57.41	 |
| 	Python (CPython 3.11.4)	 | 	1078	 |	11.73	 |
| 	Python (PyPy 3.10-v7.3.12)	 | 	895	 |	9.74	 |
| 	C++ 17 (gcc 12.2)	 | 	464	 |	5.05	 |
| 	Java (OpenJDK 17)	 | 	425	 |	4.63	 |
| 	C++ 23 (gcc 12.2)	 | 	296	 |	3.22	 |
| 	C (gcc 12.2.0)	 | 	143	 |	1.56	 |
| 	Rust (rustc 1.70.0)	 | 	118	 |	1.28	 |
| 	C++ 17 (Clang 16.0.5)	 | 	73	 |	0.79	 |
| 	C# 11.0 (.NET 7.0.7)	 | 	70	 |	0.76	 |
| 	Python (Mambaforge / CPython 3.10.10)	 | 	52	 |	0.57	 |
| 	Ruby (ruby 3.2.2)	 | 	48	 |	0.52	 |
| 	C++ 23 (Clang 16.0.5)	 | 	40	 |	0.44	 |
| 	Python (Cython 0.29.34)	 | 	34	 |	0.37	 |
| 	Go (go 1.20.6)	 | 	34	 |	0.37	 |
| 	C++ 20 (Clang 16.0.5)	 | 	29	 |	0.32	 |
| 	JavaScript (Node.js 18.16.1)	 | 	25	 |	0.27	 |
| 	PHP (php 8.2.8)	 | 	14	 |	0.15	 |
| 	Kotlin (Kotlin/JVM 1.8.20)	 | 	12	 |	0.13	 |
| 	TypeScript 5.1 (Node.js 18.16.1)	 | 	8	 |	0.09	 |
| 	Haskell (GHC 9.4.5)	 | 	8	 |	0.09	 |
| 	C# 11.0 AOT (.NET 7.0.7)	 | 	7	 |	0.08	 |
| 	Crystal (Crystal 1.9.1)	 | 	6	 |	0.07	 |
| 	Swift (swift 5.8.1)	 | 	5	 |	0.05	 |
| 	Julia (Julia 1.9.2)	 | 	5	 |	0.05	 |
| 	OCaml (ocamlopt 5.0.0)	 | 	3	 |	0.03	 |
| 	D (DMD 2.104.0)	 | 	3	 |	0.03	 |
| 	Common Lisp (SBCL 2.3.6)	 | 	3	 |	0.03	 |
| 	Fortran (gfortran 12.2)	 | 	2	 |	0.02	 |
| 	Visual Basic 16.9 (.NET 7.0.7)	 | 	2	 |	0.02	 |
| 	Whitespace (whitespacers 1.0.0)	 | 	1	 |	0.01	 |
| 	TypeScript 5.1 (Deno 1.35.1)	 | 	1	 |	0.01	 |
| 	Perl (perl 5.34)	 | 	1	 |	0.01	 |
| 	Brainfuck (bf 20041219)	 | 	1	 |	0.01	 |
| 	F# 7.0 (.NET 7.0.7)	 | 	1	 |	0.01	 |
| 	Pascal (fpc 3.2.2)	 | 	1	 |	0.01	 |
| 	Bash (bash 5.2.2)	 | 	1	 |	0.01	 |
| 	Lua (LuaJIT 2.1.0-beta3)	 | 	1	 |	0.01	 |
| 	Scala 3.3.0 (Scala Native 0.4.14)	 | 	1	 |	0.01	 |
| 	ReasonML (reason 3.9.0)	 | 	1	 |	0.01	 |
| 	D (LDC 1.32.2)	 | 	1	 |	0.01	 |

## 新ジャッジテストコンテスト -Algorithm-

対象データは**539件**でした。

**unrated**なため、通常のコンテストに比べてかなり少なめです。

**ベスト9とその他**での全10項目のグラフはこちら。

![graph.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/869934/3776a1b1-e783-7f39-db7d-7caa87d715eb.png)

全結果を表にしたものは下記です。

| 	言語	 | 	ユーザ数	 | 	割合(%)	 |
| 	----	 | 	----:	 |	----:	 |
| 	C++ 20 (gcc 12.2)	 | 	168	 |	31.17	 |
| 	Python (PyPy 3.10-v7.3.12)	 | 	105	 |	19.48	 |
| 	C++ 23 (gcc 12.2)	 | 	61	 |	11.32	 |
| 	Python (CPython 3.11.4)	 | 	56	 |	10.39	 |
| 	Rust (rustc 1.70.0)	 | 	30	 |	5.57	 |
| 	C++ 17 (gcc 12.2)	 | 	18	 |	3.34	 |
| 	C# 11.0 (.NET 7.0.7)	 | 	12	 |	2.23	 |
| 	Ruby (ruby 3.2.2)	 | 	8	 |	1.48	 |
| 	Java (OpenJDK 17)	 | 	6	 |	1.11	 |
| 	PHP (php 8.2.8)	 | 	5	 |	0.93	 |
| 	C# 11.0 AOT (.NET 7.0.7)	 | 	5	 |	0.93	 |
| 	Julia (Julia 1.9.2)	 | 	5	 |	0.93	 |
| 	Go (go 1.20.6)	 | 	5	 |	0.93	 |
| 	Python (Cython 0.29.34)	 | 	5	 |	0.93	 |
| 	Haskell (GHC 9.4.5)	 | 	4	 |	0.74	 |
| 	Crystal (Crystal 1.9.1)	 | 	4	 |	0.74	 |
| 	C (gcc 12.2.0)	 | 	4	 |	0.74	 |
| 	なでしこ (cnako3 3.4.20)	 | 	3	 |	0.56	 |
| 	Python (Mambaforge / CPython 3.10.10)	 | 	3	 |	0.56	 |
| 	Nibbles (literate form) (nibbles 1.01)	 | 	3	 |	0.56	 |
| 	C++ 20 (Clang 16.0.5)	 | 	2	 |	0.37	 |
| 	Nim (Nim 1.6.14)	 | 	2	 |	0.37	 |
| 	Fortran (gfortran 12.2)	 | 	2	 |	0.37	 |
| 	D (LDC 1.32.2)	 | 	2	 |	0.37	 |
| 	Kotlin (Kotlin/JVM 1.8.20)	 | 	2	 |	0.37	 |
| 	JavaScript (Node.js 18.16.1)	 | 	2	 |	0.37	 |
| 	><> (fishr 0.1.0)	 | 	2	 |	0.37	 |
| 	Brainfuck (bf 20041219)	 | 	2	 |	0.37	 |
| 	Zig (Zig 0.10.1)	 | 	1	 |	0.19	 |
| 	Scala (Dotty 3.3.0)	 | 	1	 |	0.19	 |
| 	ECLiPSe (ECLiPSe 7.1_13)	 | 	1	 |	0.19	 |
| 	D (DMD 2.104.0)	 | 	1	 |	0.19	 |
| 	Koka (koka 2.4.0)	 | 	1	 |	0.19	 |
| 	Elixir (Elixir 1.15.2)	 | 	1	 |	0.19	 |
| 	OCaml (ocamlopt 5.0.0)	 | 	1	 |	0.19	 |
| 	F# 7.0 (.NET 7.0.7)	 | 	1	 |	0.19	 |
| 	TypeScript 5.1 (Deno 1.35.1)	 | 	1	 |	0.19	 |
| 	R (GNU R 4.2.1)	 | 	1	 |	0.19	 |
| 	Emacs Lisp (Native Compile) (GNU Emacs 28.2)	 | 	1	 |	0.19	 |
| 	Bash (bash 5.2.2)	 | 	1	 |	0.19	 |
| 	C++ 23 (Clang 16.0.5)	 | 	1	 |	0.19	 |

## 最後に

最新のABC314では**PyPy**より**CPython**の方が使用ユーザが多いのですね。

こうやってみると、触ったことのない言語、たくさんあります。

選択肢が増えることはより裾野を広げることに繋がるのではないかと思います。アップデートはかなり大変であろうと想像できますので、関わった皆様、本当にお疲れ様でした。

## 宣伝

[SupershipのQiita Organization](https://qiita.com/organizations/supership-inc)を合わせてご覧いただけますと嬉しいです。他のメンバーの記事も多数あります。

Supershipではプロダクト開発やサービス開発に関わる方を絶賛募集しております。
興味がある方は[Supership株式会社 採用サイト](https://supership.jp/recruit/)よりご確認ください。