Okay, we have leaderboard of players. There is even an external page which acts as a leaderboard of puzzles.
I suggest to also have a “leaderboard” of programming languages. Ranking could show for example:
total # of submitted bot code in puzzles / contests / solos for given language (overall popularity)
total # of bot code that achieved #1 ranking in a contest / multi for a given language (popularity among champions)
total # of bot code that achieved top 10 ranking in a contest / multi for a given language (language is fast/good enough to achieve well with it)
It does not mean that one is really better than the other, but CG usage data can be interesting.
We just think, that we human players compete and our weapons are our bots… In reality, the Language Creators who are competing - and their ‘bots’ are we, human players…
Theoretically, it’s already possible to do this for multis since the leaderboard has language info (my bot does this for individual puzzles). For stats on all multis, however, you would need to get the leaderboard for every puzzle, which is kind of spammy.
I might make myself a small ‘language leaderboard’ page, with a local DB used to cache data. A nice challenge to improve my PHP. (Some areas I never used in PHP such as json handling).
Too bad, today is the last day of my holiday…
Here are some statistics on the language popularity and performance.
This is based on the “top-1000” leaderboards of 69 competitions (multis and past contests), retrieved today through API (over 55k leaderboard entries)
% distribution of the programming languages used - PER LEAGUE
As you can see, Python3 is the most popular in Wood and Bronze. Silver is fairly balanced among the top 4 languages (Python3, Java, C++ and C#). Not surprisingly, C++ takes over in the top two leagues where speed counts the most. 40% of all Legend bots is written in C++.
Notes: old Python 2 version is reported in separate line. League = none column shows the contests that don’t use the league system.
Medal table (total number of #1, #2 and #3 rankings achieved per language)
C++ dominance is even more dramatic at the very top level - 75% of wins was achieved by using C++.
Note: data included also for some contests where code speed did not count at all, e.g. Detective Pikaptcha.
Note: some community puzzles with very low number of gamers are excluded. Languages below 1% are excluded.
Here the % ratio of C++ is hinting how much computation-heavy or heuristics-friendly the given puzzle is (we talk about Legend league!)
Ultimate Tic-Tac-Toe with 74% is clearly C++ territory, while for example in Ghost-in-the-Cell even a Python bot has decent chance to reach the top league.
Data is for solo puzzles, codegolf and optim, but excluding multis and contests.
Due to API limitations data is taking into account usage of Top1000 player of the global (CodinPoints) leaderboard. (If there are some users who did lots of solo puzzles but got not much CP from multis might be missing.)
@Stilgart’s 448Haskell solutions are at or very near the theoretical maximum.
Overall runner-up is @dwarfie with 409PHP solutions. (Go, PHP go! No, not you, ‘GO’) 75% of top1000 players solved at least 1 solo puzzle in C++, the highest percentage.
The top1000 players solved 18.5 puzzles in Python on the average.
You can get to the virtual podium easiest in D, solving only 20 puzzles would make you #1.
Overall, the top1000 players submitted ~85k solo puzzle solutions in any language. @Marchete submitted the most solutions, average of 36.5 per language, or 985 in total. Runner-up is dwarfie with 896.
Only 61 players bothered to submit in all the 27 supported languages. The Top1000 players used 10 languages on the average.
Note: I could not get info on total unique puzzle solutions per player from the API. So people using multiple languages and not solving all the puzzles they solved in their primary language might be missing from above.
But there’s no miracle way for chadok.info to locate high-XP users if they don’t appear on the CP leaderboards.
That’s real easy to automate, once you have it in one language.
I dare add it’s actually a pretty sensible counter-measure to the deplorable decision that was made to hide the solutions in languages you haven’t solved it in.