В прошлом году мы запустили игру для программистов CodeBattle. Напомню, идея игры очень простая: вам и сопернику дается задача, вы решаете её на выбранном вами языке. Вы видите код соперника в реальном времени, результаты запуска тестов и можете общаться с ним и зрителями в чате. Кто первый решит задачу (удовлетворит тестам) — тот победил.
С тех пор были сыграны тысячи игр, и мы собрали интересную статистику. По состоянию на 31 декабря 2015 года, какие страны и какие языки программирования чаще побеждали?
Иными словами, мы наконец можем ответить на вопрос «какой язык круче?» :) Шучу-шучу, давайте не холиварить. Вот статистика за три последних месяца прошлого года:
Сыграем?
Инфографика: Наталия Басс
Комментарии (48)
domix32
26.01.2016 14:53А что значат проценты? Процент побед от той цифры внизу? Что-то вроде «3377 игры из них 2128 побед»?
murr
26.01.2016 15:43+2Добрый день. По вашей ссылке хром выдает:
Your connection is not private
Attackers might be trying to steal your information from battle.hexlet.io (for example, passwords, messages, or credit cards). NET::ERR_CERT_COMMON_NAME_INVALID
Plugin73
26.01.2016 16:55+2Мы используем новейший let's encrypt — в старых операционках (вроде windows xp) он не поддерживается, из-за строгих правил именования сертификата (как вам и написало). В поддержке пишут, что можно попробовать последнюю версию Firefox — он должен использовать свои сертификаты, не обращая внимания на операционку. Либо поставить современную ОС :)
alekciy
26.01.2016 21:03Проблема точно имеет место быть. Firefox 43.0.4 на Ununtu 12.04LTS тоже ругается.
Код ошибки: ssl_error_bad_cert_domain:
battle.hexlet.io использует недействительный сертификат безопасности.
Сертификат действителен только для следующих имён:
www.github.com, *.github.com, github.com, *.github.io, github.io, *.githubusercontent.com, githubusercontent.com
(Код ошибки: ssl_error_bad_cert_domain)
Plugin73
26.01.2016 21:12Хах, мы разобрались :)
В статье указана не верная ссылка, правильная без https — battle.hexlet.io
В статье исправим, всем спасибо!
denis-isaev
26.01.2016 16:40Т.е. если будет 100 игр «perl vs perl» и 0 игр «perl vs not-perl», то процент побед будет 50% и perl автоматом на втором месте? :)
Или, рассчитывая процент, вы исключали игры между однинаковыми языками? Если нет, то стоит :)
Аналогично со странами.
И вообще, хочется статистики вида язык1 vs язык2 для всех комбинаций языков :)freetonik
26.01.2016 17:00В статистике не учитываются игры, где участвовало два одинаковых языка (например, Ruby vs Ruby). Со странами так же.
Язык1 vs язык2 как-нибудь попозже тоже опубликуем, отличная идея, спасибо!
elimoon
26.01.2016 16:52+2Скажите, как добавить или помочь добавить тот или иной язык? (Мои пожелания: Elixir) Плюс в том, что можно уже использовать erlang тесты для проверки эликсир программ(только добавить elixir и компилировать по-другому). Готов оказать любую помощь бесплатно, при необходимости.
Bringoff
26.01.2016 18:13+1Еще очень странно, что в метод в java всегда передается список объектов типа Object, и класс возвращает Object. Было бы неплохо это прояснять, так как только что была задача вернуть вектор векторов, и немного непонятно, что надо вернуть (ну, не Vector же джавовский, в самом деле, им никто не пользуется уже).
toxicmt
26.01.2016 18:48Просто код универсальный для всех задач. Динамические языки позволяют это через `apply`. Изначально в батле только они были. А для java в коде специальный комментарий есть, который это объясняет.
Bringoff
26.01.2016 21:21Тогда java в изначально проиграшной позиции. Вот задача была:
Скрытый текстCalculate the sum of all natural numbers smaller than n (first argument) which are divisible by a or/and b (second and third arguments) without remainder.
Example: 23 == solution(10, 3, 5)
Bringoff
26.01.2016 20:54И еще: ассерты выкладывать в открытый доступ — не комильфо. Теоретически кто-то может либо все перерешать, либо можно вообще написать скрипт, автоматически генерирующий такое себе решение, возвращающее требующиеся результаты. В результате выйдет бот, накручивающий рейтинг. В принципе, человек, написавший такого бота, будет заслуживать первого места, но все же :)
Plugin73
26.01.2016 21:14Такие боты встречались, легко отслеживаются и не приносят никакого профита :)
Andriyevski
27.01.2016 01:11-5Если прировнять победы:
Украина в 1246 побед при численности населения ( 45 миллионов человек);
России в 3877 побед при численности населения (146 миллионов человек);
Разница численности человек между странами 3.2(444) раза, легко подсчитать что при такой же численности как и России в Украины было бы 4042 побед.
Это просто статистика и простой анализ, не берите в голову!stas404
27.01.2016 03:49+4По поводу «простых анализов», например, такой вариант:
Пошел муж простые анализы сдавать — положил в спичечный коробок.
День проходит, второй, мужа все нет и нет.
Жена обзвонила все больницы — нашла в палате всего в гипсе.
— Что случилось?
— Помню только, как прикурить попросили…Andriyevski
27.01.2016 21:47-3Интересно получается, я написал простой анализ темы и меня понизили, stas404 написал какой то бредовый анегдот и дали 3 лайка…
Каким боком это к теме относится? Адекватностью и вминяемостью ваш ответ не пахнет — это бред!
Я мог бы так же написать тупенький анегдот, но думаю дальше продолжать разговор смысла нет.Stepanow
31.01.2016 22:00Если Вы не заметили, то победы даны не в абсолютном значении, а в процентном. То есть размер страны и количество программистов от неё никакого значения не имеет. Значение имеет только качество.
А те числа, которые Вы приняли за количество побед — это количество игр. Анекдот про анализы должен был заставить перечитать инфографику и понять что с анализами поторопились.
GreenPeace
27.01.2016 03:21Я вот тут посмотрел на ваши данные:
3651+9576+684+9325+6105+145+1720 = 31206
0.52*3651+0.5*9576+0.48*684+0.39*9325+0.36*6105+0.21*145+0.14*1720=
13120.64
31206/2 = 15503 > 13120.64
Или у вас бывают ничьи или что-то не сходиться.
monah_tuk
27.01.2016 06:54+3Смотрю текущий батл, там PHP вообще ничего не вводит, может думает, а может просто забил. Такие победы засчитываются?
funnybanana
27.01.2016 07:30+1Зашел поиграть… только вник в суть задания, а соперник уже код настрочил…
Играл несколько раз и тот же результат… уже разочаровался в себе, а как оказалось — мало того что задания там повторяются, так готовые решения давно опубликованы на git…
Но задумка интересная…Bringoff
27.01.2016 10:38+1мало того что задания там повторяются, так готовые решения давно опубликованы на git…
Задания — да, бывает, повторяются, но готовых решений на гитхабе я не находил.
Bringoff
Насколько я помню, изначально java была недоступна.
freetonik
Да, и Erlang.
Но для показателя процента побед это не важно.