Рейтинг языков программирования 2020
#ITVDN_о_работе_в_IT
Какой язык программирования учить в 2020? Ресурс DOU собрал 9747 анкет, чтобы исследовать этот вопрос.
Коммерческое использование
Видим, что JavaScript наконец существенно опередил Java и стал самым популярным языком программирования. Среди новых языков стоит обратить внимание на Dart: он сразу занял не то чтобы большую, но достаточно заметную нишу.
На каком языке пишете по работе сейчас?
Будет удобнее иметь под рукой историю ответов на этот вопрос по годам:
На каком языке пишете по работе сейчас (2012-2020 гг.)
Здесь тяжело не заметить падение популярности JVM и рост JS-экосистемы (JavaScript, TypeScript). Похоже, на серверах JVM-стек уступает Node.js. А вот темпы снижения популярности C# уменьшились: возможно, это связано с распространением .NET Core — открытого кроссплатформенного рантайма, снимающего для пользователей проблему «привязки к вендору».
Также можно наблюдать интересную ситуацию в мире мобильной разработки: доля Swift незначительно уменьшается, Kotlin — незначительно растет, а с другой стороны, mobile first для бизнеса это уже традиционная практика. Можно допустить, что в мейнстрим пошли кроссплатформенные фреймворки (те же React Native и Flutter), а нативные языки программирования используются больше для системных задач.
Давайте посмотрим на то, какие изменения являются статистически значимыми в сравнении с предыдущим годом:
- Рост: Python, TypeScript, Dart, и… почему-то 1C.
- Спад: Java, PHP, Objective-C и Scala.
Любопытно, что по сравнению с 2017 году статистически значимые изменения практически такие же.
Что касается Scala, мне кажется, что тут присутствует доля «осторожности» старта проекта перед выходом Scala 3.0 (он же Dotty). Кстати, Dotty — действительно новый язык, причем совершенно фантастический.
Отметим, что почти 8% респондентов используют в качестве основных несколько языков программирования.
Личные предпочтения
Сейчас фаворитом является Python, далее идут почти на одном уровне C#, JavaScript и Java, а дальше — TypeScript.
Если смотреть в ретроспективе, можно отметить похожий на экспоненциальный рост Python и TypeScript.
Если бы вы сейчас начинали коммерческий проект и имели свободу выбора, то какой язык выбрали бы?
На первый взгляд кажется, что, чтобы увидеть тенденции, можно разделить долю выбора в следующем проекте на долю использования в теперешних проектах, но прогон этой модели на исторических данных показывает ее ошибочность, которую невозможно объяснить лишь инерцией. Из этого можно сделать вывод, что люди, принимающие решение относительно языка программирования в следующем проекте, не могут быть представлены случайной выборкой из популяции разработчиков.
Посмотрим на «индекс симпатий» — соотношение разработчиков, которые пишут код на языке Х и для следующего проекта в своей области тоже выберут Х.
Мы видим, что самые приятные людям языки — относительно новые, специализированные для своей предметной области.
Больше всего довольны (92%) своим языком пользователи Rust (а ведь этого языка даже нет в 20-ке). Очевидно, для ниши системного программирования этот язык подходит практически идеально. Дальше — Kotlin. Между 80 и 90% также разместились Swift, Go, Scala, TypeScript и даже Erlang. А первый массовый язык — C# — имеет индекс симпатий 83%.
Обобщая, можно сказать, что нишевые языки нравятся пользователям, но их ниша может быть слишком узкой. А разработчики, подумывающие о миграции, пользуются более старыми языками, для которых в соответствующих нишах есть более современные аналоги.
Изучение новых языков
В следующем году планируют изучить новый язык программирования 60% респондентов.
Какие языки вы собираетесь изучать в следующем году?
Лидеры — Python и JavaScript, это понятно. Также можно обратить внимание на сравнительно высокую долю (по сравнению с актуальной распространенностью) интереса к Dart, Rust, ну и традиционно — Haskell.
Как и в предыдущие годы, большинство респондентов (54%) собираются изучать новый язык самостоятельно, при помощи книг и документации. На онлайн-курсы ориентируются почти 32%, а 7% собираются использовать офлайн-подход с местными преподавателями.
Дополнительные языки
Что ту сказать? Распределение данных здесь практически такое же. Можно увидеть, что доля нишевых языков в дополнительных языках меньше, чем в основных. Так что, скорее всего, для FullStack-разработки больше используются языки общего назначения (такие как JavaScript и TypeScript), чем Swift и Kotlin.
Какие языки вы используете в качестве дополнительных?
Свои проекты
Ну и, наконец, pet projects.
Какие языки вы используете в своих проектах?
Динамика опять повторяется. Что любопытно — наблюдается некоторый «ренессанс» C++ и С. Возможно, это связано с ростом сегмента интернета вещей, где DIY (Do it yourself — «сделай сам») стал своего рода субкультурой.
Итоговая таблица
Дополнительные данные
Опыт работы программистом
Что мы видим: отрасль еще растет, но темпы снизились. Большинство разработчиков имеют до трех лет опыта.
Медианный возраст — 27 лет.
Распределение по возрасту
Ниже представлена мозаика, где по одной линии координат — опыт работы с языком, а по другой — опыт работы программистом.
Мы видим, что практически 15% респондентов имеют год опыта и знают один основной язык. Затем квадратик по диагонали светлеет: люди переходят на другие языки. Видно, что на третий год 0,51 человек остается на том же языке. Дальше перетекание ослабевает: 4 года — 0,45, 5 и 6 лет — тоже 0,45. Так что, если вы не свернули с языка в первые три года, то, как правило, остаетесь с ним надолго.
Если смотреть на зависимость возраста и опыта разработчика от языка программирования, то интересна роль С++. Сейчас этот язык с самой молодой медианой возраста — 25 лет. Интересно, почему так получается. В следующем году мы попробуем создать карту возможных направлений разработки. Пока что можно строить догадки в комментариях.
Возраст разработчика в зависимости от языка
Опыт разработчика в зависимости от языка
И — первый язык программирования для разработчиков с опытом меньше года (за последние 6 лет).
Первый язык новичков
Пока по-прежнему лидирует Pascal. Но заметно, что основным языком обучения становится С++, дальше идут Python и Java.
Source https://dou.ua/