AHC027(マラソンマッチ)の参加者の使用言語の分布を調べてみた

競技プログラミングコンテストサイトである AtCoder のマラソン部門のコンテストが開催されていました atcoder.jp 本記事では、コンテスト参加者の使用しているプログラミング言語はどういうものがあるのかを順位から調査してみました。

本記事は、前回の調査から約二年半程度経過したということで、上位層の使用するプログラミング言語に大きな変化があったかを検討します wakabame.hatenablog.com

調査対象

すべての提出からシステムテストの対象となった 1054 件を対象としました。

そのため、0点や明らかに低い得点の回答も集計対象となっています。

また、プログラミング言語はバージョンなどの違いは無視して集計しています。例えば、 C++ 23 (gcc 12.2)C++ 17 (gcc 12.2) のような違いは無視して C++ と見なします

調査1. 利用者数の多い言語は?

最も利用者が多い言語は C++466人(44.2%) で、 Python409人(38.8%)Rust93人(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++ でしたが、中央値では RustGo が高いようです。

調査4. 言語ごとの最高順位は?

前回の調査では Python は 8位でしたが、今回は 4位まで上がりました。

Go 言語が上位に食い込んでいるのがわかります。

また、NimFortran でもかなり良いスコアが出せていることがわかります

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