競技プログラミングコンテストサイトである AtCoder のマラソン部門のコンテストが開催されていました atcoder.jp 本記事では、コンテスト参加者の使用しているプログラミング言語はどういうものがあるのかを順位から調査してみました。
本記事は、前回の調査から約二年半程度経過したということで、上位層の使用するプログラミング言語に大きな変化があったかを検討します wakabame.hatenablog.com
調査対象
すべての提出からシステムテストの対象となった 1054
件を対象としました。
そのため、0点や明らかに低い得点の回答も集計対象となっています。
また、プログラミング言語はバージョンなどの違いは無視して集計しています。例えば、 C++ 23 (gcc 12.2)
や C++ 17 (gcc 12.2)
のような違いは無視して C++
と見なします
調査1. 利用者数の多い言語は?
最も利用者が多い言語は C++
で 466人(44.2%)
で、 Python
が 409人(38.8%)
、 Rust
が 93人(8.8%)
でした。
前回の調査 と比較すると、トップスリーの順序は変わらないものの、
Python (PyPy)
の利用者の比率が伸びているRust
はそれほど変わらない- これら三つの言語で全体の
91.8%
が占められており寡占傾向が強まっている
ことが読み取れます
lang | count | |
---|---|---|
1 | C++ | 466 |
2 | Python | 409 |
3 | Rust | 93 |
4 | Java | 23 |
5 | C# | 14 |
6 | C | 8 |
7 | Go | 8 |
8 | Kotlin | 6 |
9 | Julia | 4 |
10 | PHP | 3 |
調査2. 上位陣に多い言語は?
スコア上位100位内にデータを絞り込みました。
こちらでは Python
の比率は大きく下がり、 C++
に Rust
が追従する傾向が読み取れます
lang | count | |
---|---|---|
1 | C++ | 76 |
2 | Rust | 12 |
3 | C# | 3 |
4 | Java | 3 |
5 | Python | 3 |
6 | Fortran | 1 |
7 | Go | 1 |
8 | Nim | 1 |
さらに上位20位以内に絞り込みましょう。
lang | count | |
---|---|---|
1 | C++ | 15 |
2 | Rust | 4 |
3 | Go | 1 |
調査3. 言語間の順位分布の比較
利用者の多い6つの言語について、箱ひげ図をプロットします。
最上位が C++
でしたが、中央値では Rust
や Go
が高いようです。
調査4. 言語ごとの最高順位は?
前回の調査では Python は 8位でしたが、今回は 4位まで上がりました。
Go 言語が上位に食い込んでいるのがわかります。
また、Nim
や Fortran
でもかなり良いスコアが出せていることがわかります
lang | rank |
---|---|
C++ | 1 |
Rust | 6 |
Go | 14 |
Python | 22 |
C# | 25 |
Nim | 40 |
Java | 69 |
Fortran | 81 |
Kotlin | 138 |
Haskell | 213 |
Julia | 276 |
Common | 291 |
Crystal | 320 |
D | 361 |
Ruby | 400 |
C | 417 |
OCaml | 452 |
JavaScript | 604 |
PHP | 660 |
Visual | 903 |
TypeScript | 962 |
Text | 996 |