Украинский профильный ресурс DOU.UA провел очередной ежегодный опрос о языках программирования, в рамках которого было собрано 7211 анкет (92% респондентов находятся в Украине). Из интересного - впервые с 2014 года у Python отрицательная динамика, наблюдается тенденция перехода с JavaScript на TypeScript, наиболее довольны пользователи Elixir, и наконец на графиках появился Rust.
Коммерческое использование
Что изменилось? Прежде всего привлекает внимание рост TypeScipt: похоже, он со временем станет основным языком в экосистеме JavaScript. В этом году он впервые обошел С ++ по популярности.
Еще из интересного: впервые за несколько лет мы увидели снижение доли Python: возможно, использование Data Science дошло до точки насыщения.
Впервые с 2012 года выросла доля C#. Использование Java продолжает уменьшаться, хотя и не так активно, как раньше. В общем видно уменьшение доли JVM: доля Kotlin стабильна (хотя он и уступил место Ruby), использование Scala возобновилось после значительного снижения в 2019-м и сегодня, если сравнивать с 2018-м, даже немного возросло. Еще стоит отметить незначительный рост Dart.
![](https://habrastorage.org/getpro/habr/upload_files/c25/19d/ae5/c2519dae565ffa7657f9b86a6f519555.png)
Ниже приведена диаграмма с динамикой по актуальным языкам программирования по годам. Статистически значимыми являются изменения для C ++, TypeScript, Ruby, 1C, Scala, Pascal/Delphi, T-SQL. Напомним, что изменения статистически значимы, если с вероятностью 95% мы не можем получить результаты с изменениями и без, если будем равномерно выбирать две группы респондентов с одной популяции.
![](https://habrastorage.org/getpro/habr/upload_files/839/5c4/9a7/8395c49a7eef244ef72276f77b5d3bf5.png)
Области использования
В этом году мы впервые попросили респондентов указать сферу, в которой они работают. Результаты довольно интересны.
Видим, что примерно половина разработчиков - это бэкенд 52%, далее сегменты фронтенд 19% и мобильной разработки 8%, обработка массивов данных (туда относятся и Big Data и машинное обучение) - 6%. Desktop-программирование еще существует и занимает 4% от объема, системное программирование - 3% (сейчас небольшая доля) и Full-Stack разработка - примерно 1%.
![](https://habrastorage.org/getpro/habr/upload_files/2f7/c9a/a46/2f7c9aa46312ad7fe463f1cda8153fa9.png)
Давайте рассмотрим, какие языки используют в зависимости от области применения
![](https://habrastorage.org/getpro/habr/upload_files/23f/b5a/f31/23fb5af311372697a03fabc9ea451d30.png)
![](https://habrastorage.org/getpro/habr/upload_files/f3d/301/870/f3d301870c648221a23ca23d429277d4.png)
![](https://habrastorage.org/getpro/habr/upload_files/fa7/056/518/fa705651802ee099d25a22c61a82ffd4.png)
![](https://habrastorage.org/getpro/habr/upload_files/825/1d4/c4c/8251d4c4cb0257aeb39937411717441a.png)
![](https://habrastorage.org/getpro/habr/upload_files/285/a97/4ab/285a974ab7e1f177421cf042f3d53a90.png)
![](https://habrastorage.org/getpro/habr/upload_files/9ef/e16/e91/9efe16e916e53e5711198f61cab4e0dc.png)
![](https://habrastorage.org/getpro/habr/upload_files/6b4/da2/ea7/6b4da2ea7f63080070f3e50f385b4879.png)
![](https://habrastorage.org/getpro/habr/upload_files/0f2/79d/be3/0f279dbe36004c9465e3d888d4c4d2ec.png)
![](https://habrastorage.org/getpro/habr/upload_files/a48/5b8/fd9/a485b8fd91cdbc18da4165e6f4665f3d.png)
![](https://habrastorage.org/getpro/habr/upload_files/7d8/74c/d1b/7d874cd1b3f5d990e2e05624ea5ee161.png)
Мы видим, что основные языки бэкенда - это Java, C# и PHP. Доля JavaScript и TypeScript есть, но не такая большая и сравнима с долей Ruby и Go. В десятку главных языков бэкенда также входят Scala и С++.
Фактически весь фронтенд пишут на JavaScript и TypeScript. Использование других языков сугубо маргинальное. Доля TypeScript сравнительно меньше. Интересно будет посмотреть на это соотношение через год.
В мобильной разработке основные языки - Kotlin и Swift. А доля кроссплатформенных фреймворков меньше чем кажется. Кроме того, заметно, что Dart/Flutter сразу заняли большую нишу. А после React Native и Flutter есть еще место для C# Xamarin.
Среди обработки данных безоговорочным лидером является Python, далее - языки манипуляции данными T-SQL и PL-SQL. Особое место занимают Scala (здесь она более распространена, чем Java) и R.
Личные предпочтения
Как мы уже указывали, результаты выбора программистов нельзя использовать для прогнозирования, но здесь интересно, что наконец на графиках появился Rust. Опять видим некоторый спад интереса к Python и тенденцию перехода с JavaScript на TypeScript.
![](https://habrastorage.org/getpro/habr/upload_files/441/57d/158/44157d15870673d8432a315606e26ea8.png)
Посмотрим на «индекс предпочтения» - это относительное количество разработчиков на языке X, которые для следующего проекта в своей сфере тоже выберут язык X.
![](https://habrastorage.org/getpro/habr/upload_files/a6d/044/ebd/a6d044ebdc0048fa10c51243a4cd875a.png)
Интересно, что здесь данные отличаются от опроса в Stack Overflow и нашего предыдущего опроса: Rust расположен заметно ниже. Наиболее довольны пользователи Elixir (возможно, это миграция Erlang-комьюнити), также обращает на себя внимание место Clojure.
Если посчитать отдельно индекс удовлетворения по сферам применения, то результаты почти совпадают.
Изучение новых языков
Фаворитом, как и в предыдущие годы, стал Python. Его собираются изучать почти 18% из тех, кто будет осваивать новый язык. Но все-таки эта доля меньше, чем год назад. Ну а наибольший рост у TypeScript и Rust.
![](https://habrastorage.org/getpro/habr/upload_files/110/3e1/907/1103e1907b77fe4b5897ac3ed72d8940.png)
Как и в предыдущие годы, большинство респондентов (83%) хочет изучать новый язык самостоятельно, с помощью книг и документации, 4% будут обращаться к коллегам (впечатляющая интровертность), а 12% будут использовать традиционный подход - с помощью профессиональных преподавателей (курсов или индивидуальных занятий).
Финальная таблица
![](https://habrastorage.org/getpro/habr/upload_files/29d/a97/979/29da97979ea39b2aadcae6807cc44758.png)
Дополнительные данные
Несмотря на языки программирования, также имеет смысл рассмотреть структуру распределения опыта в динамике.
![](https://habrastorage.org/getpro/habr/upload_files/d49/0d7/bf5/d490d7bf5d48f7e2f097badaca1ff725.png)
Tут можно сделать вывод, что, поскольку доля разработчиков с опытом в 1 год уменьшилась => в IT пришло меньше новичков, чем в прошлом году.
Но все равно в большинстве это специалисты с менее 5 лет опыта работы в ИТ.
![](https://habrastorage.org/getpro/habr/upload_files/687/fa0/073/687fa0073563ea25e135f5b0062ec3bd.png)
Рассмотрим корреляцию между возрастом и языком программирования.
![](https://habrastorage.org/getpro/habr/upload_files/a70/933/a2b/a70933a2b81bb4d9f0a5a59a8f9c23c6.png)
Здесь мы видим, что более молодая аудитория у Kotlin и JavaScript, а более старшая - ожидаемо у языков PL-SQL и Pascal/Delphi. Похожие данные показывает опыт разработчика в зависимости от языка:
![](https://habrastorage.org/getpro/habr/upload_files/4dc/667/f34/4dc667f34f99b73e2e0381399d957ffb.png)
Большинство разработчиков начинало программировать на Pascal и С++, но вскоре первыми языками разработчиков станут JavaScript и Python. Интересно, как это повлияет на культуру программирования ...
![](https://habrastorage.org/getpro/habr/upload_files/788/dee/4cf/788dee4cfe9b9500d8e3764342cceba9.png)
Данные и скрипты обработки можно найти на GitHub.
Также dou.ua недавно опубликовал опрос о зарплатах в Украине, где оказалось что средняя зарплата составляет $2500, перевод этой статьи вы можете прочитать тут.