Посчитал статистику, какие языки программирования используют участники в разных регионах на региональном этапе в 2019 году.
Скачиваем и смотрим файл со статистикой
Удалось собрать сведения из 78 регионов + Сириуса. Список регионов, которые не охвачены статистикой:
- 19 Республика Хакасия
- 20 Чеченская Республика
- 28 Амурская область
- 39 Калининградская область
- 51 Мурманская область
- 57 Орловская область
- 62 Рязанская область
Буду рад, если кто может достать статистику из этих регионов. Мне нужны логи тестирующей системы за первый тур в текстовом формате (csv, xml), где была бы информация о сабмитах (минимум пользователь, язык программирования, результат тестирования в баллах).
Методика подсчёта. Учитывается только первый день, анализируются логи тестирующей системы. Чтобы не считать ошибочно отправленные файлы, считаются только решения, набравшие больше 0 баллов, или (если такая информация доступна в логах) решения, набравшие 0 баллов, но прошедшие первый тест. Далее считается количество участников, которые сдали решения на данном языке программирования (учитываемые по правилам выше). Тем самым один участник может использовать несколько языков программирования, поэтому сумма долей всех языков программирования больше 100%.
Яндекс.Контест, ejudge и, возможно, некоторые другие тестирующие системы не поддерживают Visual C++, поэтому реальная доля участников, использовавших Visual C++, будет выше. Под Delphi подразумевается в том числе и Free Pascal в режиме Delphi (это в Яндекс.Контесте и, возможно, других тестирующих системах).
Также у меня есть статистика по языкам программирования на школьном, муниципальном, региональном этапах в Москве, собранная за много лет. И статистика по языкам программирования на заключительном этапе.
Удивлён, что питон так быстро стал вторым языком по доли использования. Его начали активно преподавать в школах или такое большое число школьников, изучающих его самостоятельно?
А у java тем временем лишь несколько процентов. Впрочем, сейчас и на студенческих олимпиадах доля её использования невысока. Того гляди, такими темпами она через несколько лет и из официально-поддерживаемых языков на icpc-олимпиадах уйдёт.
Ну вовсе не быстро питон стал вторым языком, я вот питон примерно лет 10 пропагандирую. Первые официальные письма о том, чтобы добавить питон на заключительный этап всеросса от московского оргкомитета регионального этапа были после регионального этапа 2010 года (тогда у нас в Москве появился первый школьник, который прошёл на всеросс, написав регионалку на питоне полностью).
Ответ на поставленный вопрос — и так, и так. И в школах преподают, и сами изучают. В Москве, например, во всех сильных в области программирования школах учат на питоне. В ЛКШ мы полностью перевели младшие параллели на питон в 2013 году. Константин Поляков, автор наиболее приличного из школьных учебников, лет пять назад к питону относился скептически, а сейчас в последнем издании учебника для 10-11 класса всё программирование оставил только на питоне (правда, в учебнике для 9 класса всё-таки оставил паскаль и кумир, до идеи о том, что нужно совсем выкинуть паскаль он ещё не созрел). Наконец, всё дополнительное образование, которое идёт не от школы — это тоже, в основном, питон. Например, Яндекс.Лицей уже во многих городах есть.
Ну и, конечно, если школьник изучает программирование сам, вряд ли он станет учить паскаль. А у java питон выигрывает вчистую по лёгкости старта, простоте написания программ и многообразию различных библиотек для прикладной разработки. Так что не думаю, что у java есть перспективы в школьном сегменте, ну а про высшее образование я дискутировать не готов.
Вот у вас в Новосибирске на регионалке питон использовали 40%. Откуда эти школьники — в школе их научили или сами по себе?
Не хороните Java раньше времени.
Python явно больше подходит на роль первого языка программирования, но если школьник решит изучить новый ЯП и не будет знать, какой выбрать, то он вполне может заглянуть, например, в рейтинг TIOBE и просто выбрать топ 1.
А если говорить про языки на олимпиадах по программированию, то питонисты в разы чаще джавистов упираются в непроходимый TL. B моём регионе об этом знают: доля Java (23,1%) больше доли Python (12,4%) по вашим данным. О сложностях C++ (неопределённое поведение, например), которые Java не знакомы, тоже в курсе. У Java тоже есть недостатки и C++ имеет свои преимущества, но я продолжаю советовать Java для олимпиад по программированию.
Питон в некоторых аспектах действительно более привлекательный язык в качестве первого и в целом его рост на олимпиадах весьма ожидаем. Но я предполагал, что рост будет медленным и постепенным и ситуация будет примерно как выше уже описал 4mda4mda: питон будут использовать, но в задачах, где длительное время работы не страшно и доля использования языка будет невысока. А получилось, что питон уже стал вторым :)
В Новосибирске мне самому интересно откуда такая высокая доля использования питона :) Со школьниками я не занимаюсь. Среди студентов же первого курса питонисты есть, но их доля в несколько раз меньше.
Не хороните Java раньше времени 2.
На ICPC World Finals стабильно 95% посылок на C++, 5% — Java, а недавно добавленные языки не сдвигаются с нуля (пруфы: 1, 2, 3, 4).
Команда UCF Knights (University of Central Florida, 10-е место и бронзовая медаль на ICPC World Finals 2018) писала чисто на Java (пруф).
Про школьные "проценты" написал выше. Так что Java никуда не уйдёт.
Хороню java не сразу, дал ей несколько лет :)
Если серьёзно, то я удивлён её непопулярностью. Казалось бы, у неё немало плюсов в олимпиадах:
Но при всём этом процент участников, использующих java, низкий. На полную замену плюсов java не претендует, но несколько процентов — удивительно мало. Может, с приходом kotlin'a ситуация как-то изменится.
Благодаря магии публикации на Codeforces, появились данные из Челябинска и Новосибирска.
Добавлена Иркутская область.
Могу рассказать на примере Иркутска. Есть несколько школ, где учат Питон. Есть те, кто учит сам. Логика такая. В основном, три причины: мода пошла, легкий старт и много библиотек. Есть немало школ, которые ориентированы на проекты. Питон в этом случае самый логичный выбор. Отчасти, моду на Питон они раскрутили. Дальше подтянулись те, кто на доп. образовании зарабатывает по причине теперь уже моды и легкого старта. Ну и сами учат. Но там, где ориентируются на олимпиады, естественно предпочитают С. Дети, конечно, часто перетекают из одних мест в другие, и на начальном этапе нет смысла их заставлять переходить на С. Но если ребенок задерживается у олимпиадников, то он все же перейдет на С. Паскаль остался там, где ребенок занимается на факультативе в школе, а учитель других языков не знает. Для Java ниши и не осталось, ее Питон выбил.
Добавлена Самарская область.
Добавлена Оренбургская область.