Результаты опроса Stack Overflow: какие языки программирования популярнее, а за какие больше платят

И чем результаты в 2019 году отличаются от результатов прошлых лет.

Каждый год сайт Stack Overflow проводит опрос разработчиков, собирая данные по целому ряду вопросов: от отношения к удалённой работе до используемых IDE. В нём принимают участие десятки тысяч человек, так что на размер выборки не пожаловаться. На прошлой неделе появились результаты за 2019 год, и мы решили разобрать интересные числа оттуда.

Для начала нужно сделать оговорку. «Большая выборка» не означает автоматически «репрезентативная», в ней могут быть свои перекосы. И если присмотреться к результатам, заметны странные скачки: например, в прошлом году о наличии детей сообщили 29% респондентов, а в этом 39%. Вряд ли это говорит о том, что за год в ИТ произошёл гигантский беби-бум — скорее, что-то оказалось иначе с выборкой или методологией.

Поэтому из результатов опроса стоит делать не детальные выводы, а общие. Если в списке популярности язык X на одну строчку выше языка Y, не стоит уверенно говорить о его превосходстве, разница может быть случайной. Но если эти строчки — вторая и третья, можно уверенно говорить «оба языка очень популярны».

И хотя проще всего обсуждать изменения по сравнению с прошлым годом («смотрите, TypeScript обошёл C»), на самом деле показательнее то, что не поменялось. Изменения могут быть разовой флуктуацией, а вот если что-то подтверждается год за годом, это уже больше похоже на реальное положение дел. Поэтому мы в первую очередь рассмотрели неизменные вещи, а затем уже перешли к «новостям».

Вечные ценности

Нет особого сюрприза в том, что самым популярным языком программирования в очередной раз был назван JavaScript. Но опрос Stack Overflow интересен тем, что не ограничивается вопросом «какими языками разработчики пользуются», а задаётся и такими:

  • какими языками хочется продолжать пользоваться? (так формируется список «самые любимые»)
  • какими хочется перестать пользоваться? («ненавистные»)
  • какие хочется начать использовать? («самые желанные»)

И если в списке самых востребованных у JavaScript нет конкурентов, то в «самых любимых» он далёк от вершины, которую четвёртый год подряд занимает Rust. Это уже интереснее: о Rust можно услышать гораздо реже и его победа куда менее очевидна.

Возможно, малая известность языка тут как раз помогает: его используют только те, кому этого по-настоящему хочется, так что почти все отзывы оказываются от энтузиастов языка, делая его «самым любимым». А вот от JavaScript сложно спрятаться, его волей-неволей используют даже недовольные разработчики, и их негативные отзывы ухудшают статистику.

По списку «ненавистных» видно, что разработчикам хочется сбежать от легаси: среди того, что они хотят перестать использовать, в последние годы оказывались Visual Basic 6, COBOL и тому подобное. А лидером списка «самые желанные» (то есть «пока не использую, но хотел бы») уже не первый год подряд оказывается Python.

Кроме этих списков, есть ещё и «зарплатный»: разработчикам на каких языках больше платят. Авторы дают его с осторожной формулировкой «какие языки ассоциируются с высокими зарплатами», а также оговариваются, что многое зависит от региона (по США предоставляют отдельные данные, а вот по России нет). Но всё равно любопытно: какой язык учить выгоднее всего?

Единого устойчивого лидера нет (в этом году первое место в мире у Clojure, а в США — у Scala; год назад мировым лидером был F #, а американским — Erlang). Зато по этим четырём названиям можно заметить единую устойчивую тенденцию: самыми высокооплачиваемыми оказываются функциональные языки. Похоже, в их случае особенно высок дефицит кадров.

Если после предыдущего абзаца вы бросили все дела и лихорадочно вбиваете в Google запрос «онлайн-курс по функциональному программированию», сначала обратите внимание на ещё один фактор, объединяющий все четыре перечисленных языка: ни один из них не входит в десятку самых популярных. А это означает, что зарплаты-то могут быть высокими, но список возможных мест работы будет очень ограничен.

Например, на момент сочинения этого текста HeadHunter находил в Москве всего одну открытую вакансию Clojure-разработчика. Со Scala дела получше, там счёт идёт хотя бы на десятки, но до JavaScript в любом случае очень далеко.

Самые популярные среды разработки

А что помимо языков?

Любопытным получается распределение «какую ОС использует разработчик в качестве основной на своём компьютере». Примерно половина сидит на Windows, другая половина почти поровну делится между macOS и Linux.

Это хорошая возможность скорректировать ошибочные впечатления: если смотреть на внешние признаки вроде «с какими ноутбуками выступают докладчики на ИТ-конференциях», может показаться, что Mac в разработке составляют большинство.

Список «самые популярные среды разработки» возглавляет Visual Studio Code. Вероятно, помогает и то, что этот редактор используют для совсем разных языков, и то, что его зачастую используют «в дополнение» к основной IDE.

А второй строчкой идёт Visual Studio, так что у Microsoft получилось занять обе лидирующих позиции сразу. Означает ли это, что все остальные компании бесконечно отстали? Не совсем: в списке целый ряд IDE на платформе IntelliJ от JetBrains (IDEA, PyCharm, PhpStorm, RubyMine, Android Studio), так что суммарная аудитория в их случае тоже высокая.

80% респондентов заявили, что кодят не только по работе, но и как хобби. Однако большинство практически ничего не выкладывает в открытый доступ. Чаще всего контрибьютят те, кто пишут на языках вроде тех же Rust и Clojure. Видимо, когда используешь нишевый язык, вместо простого «возьми библиотеку с GitHub» приходится сначала самому её на GitHub и положить.

Примерно 75% работают полный рабочий день, а 10% приходится на разнообразный фриланс и самозанятость (оставшееся — парт-тайм, пенсионеры, безработные).

Любопытны ответы на вопрос «что для вас важнее всего при выборе работы». Раньше в нём лидировала зарплата, но в этом году Stack Overflow изменили формулировку: «если есть две вакансии с одинаковой зарплатой, что учтёте при выборе между ними».

В целом победил вариант «с какими языками и технологиями надо будет работать», но при гендерном разделении всё оказывается хитрее: «мужской» ответ остаётся тем же, а вот для женщин на первом месте культура компании.

Склонность программистов прыгать с одного места работы на другое проявилась и в этом опросе: в вопросе «как давно вы меняли работу» лидирует вариант «меньше года назад». А на вопрос «ищете ли сейчас» 60% ответили «активно не ищу, но открыт к новым возможностям».

Главные тенденции по мнению Stack Overflow

С неизменными вещами разобрались — теперь давайте посмотрим, что в этом году изменилось.

Есть выводы, сделанные самими составителями опроса, приведём их и сопроводим комментарием.

  • Python — самый быстрорастущий язык из числа популярных, и в этот раз он обошёл Java, а заодно занял вторую строчку в списке «самых любимых языков» (после Rust).

Комментарий: как мы писали, конкретные места могут быть не самыми точными (как именно Python соотносится с Java и Rust, ещё вопрос), но в результатах опроса этот язык растёт не первый год подряд — и вот это, видимо, действительно тенденция.

  • Более половины респондентов к 16 годам уже написали свою первую строчку кода, но это ощутимо варьируется в зависимости от пола и региона.
  • Site reliability engineers и DevOps-специалисты — в числе самых высокооплачиваемых, самых опытных и самых довольных своей работой, а новую работу ищут меньше других.

Комментарий: тут есть сложность с тем, что DevOps-специалист — размытый термин, о его уместности ведутся споры, и разные люди могут понимать под ним разное.

  • Китайские разработчики оказались самыми оптимистичными: они верят, что сегодняшним детям будет житься лучше, чем их родителям. А в Западной Европе (например, Франции и Германии) наиболее пессимистичны в отношении будущего.

Комментарий: учитывая истории вроде недавнего репозитория 996, китайские ответы могут означать «мы в аду, хочется верить, хоть детям попроще будет», поэтому называть их «самыми оптимистичными» — довольно спорное решение.

  • Разные разработчики считают разные вещи главной помехой продуктивности: мужчины чаще называют «рабочие задачи, не связанные с самой разработкой», а женщины и меньшинства больше говорят о «токсичном рабочем окружении».
  • Сам сайт Stack Overflow экономит разработчику от 30 до 90 минут в неделю.

Комментарий: а вот это манипуляция данными, похожая на анекдот «интернет-опрос показал, что 100% людей пользуются интернетом». Следите за руками: о том, сколько времени экономит Stack Overflow, разработчики отвечали в опросе, проведённом на Stack Overflow.

То есть выборка совсем не случайная: чем чаще человек заходит на SO и чем более лоялен сайту, тем выше вероятность, что он потратит время на опрос. Делать по такому выводы (даже осторожные) обо всех разработчиках очень некорректно.

Другие тенденции

Помимо того, о чём написали составители опроса, можно заметить и другие отличия от прошлогодних результатов.

Языки, доля которых выросла (это может объясняться случайностью, но похоже на правду): помимо упомянутого Python, такими стали TypeScript, Go и Kotlin.

Новая строчка в списке языков — WebAssembly. C решением назвать эту технологию «языком» многие поспорили бы, но любопытно, что она попала также в списки «самые любимые» и «самые желанные» — в общем, тут новое заметное явление.

Если вас эта новая звезда тоже интересует и хочется технических подробностей — у нас на конференции HolyJS был доклад об использовании WebAssembly в продакшене, и мы делали его текстовую версию для тех, кому удобнее читать.

Среди фреймворков главная новая звезда, которую пока что мало кто использует, но многим хочется — Flutter. О нём у нас тоже был доклад.

Есть вопросы, которые в прошлые годы вообще не задавали, так что тут не сравнить с предыдущими результатами. В их числе — использование блокчейна. 80% заявили, что в их компаниях эту технологию никак не используют, а среди остальных респондентов большинство заявило об использовании «для задач, не связанных с криптовалютой».

Стоит отметить: число ответивших на этот вопрос ниже среднего (в целом в опросе поучаствовало более 88 тысяч человек, но про блокчейн ответили только 48 тысяч). Напрашивается предположение, что на него чаще отвечали те, в чьих компаниях блокчейн используется — а значит, реальное значение «мы этим не пользуемся» куда выше 80%.

Отвечая на вопрос «считаете вы себя как разработчика выше или ниже среднего уровня», 67% сказали, что они выше среднего. Авторы опроса демонстрируют это как свидетельство завышенной самооценки разработчиков — мол, раз выборка большая, то настоящее «выше или ниже» должно быть примерно 50 на 50. Но вообще-то есть и другой вариант объяснения: возможно, люди, ощущающие себя ниже среднего, реже участвуют в опросах и реже отвечают на подобные вопросы.

Интересный пункт про использование соцсетей: где ещё найдёшь всемирный опрос, в котором лидирующим социальным сервисом окажется не Facebook, а Reddit? На втором месте YouTube. 6.6% набрал вариант «не пользуюсь социальными сетями», а 0.7% — «VK ВКонта́кте» (видимо, незнакомым с соцсетью создателям опроса пришлось копировать название из «Википедии», поэтому оно с ударением).

В случае с удалённой работой любопытно соотнести «что есть сейчас» с «чего разработчики хотят». Если читать жалобы разработчиков в Twitter, может сложиться ощущение, что все они ненавидят офисы и мечтают работать из дома — а что на самом деле?

Оказывается, большинство (58%) за офис. Но при этом сейчас удалённо работают около 12% респондентов — то есть куда меньше тех 42%, которые в принципе хотели бы это делать. Значит, есть неудовлетворённый спрос на работодателей с удалёнкой, и если вы работодатель, можете так получить конкурентное преимущество.

Наконец, ещё один интересный вопрос — «кто в этом году будет самой влиятельной личностью в технологическом мире». С большим отрывом лидирует Илон Маск (30.2%), за ним следуют Джефф Безос (7.2%) и Сатья Наделла (4.4%), а потом идут варианты «я» и «Дональд Трамп».

Без Дэна Абрамова список тоже не обошёлся (когда опрашивают разработчиков, а среди языков лидирует JavaScript, неудивительно). Кроме него, фигурирует ещё один человек, родившийся в России — Виталик Бутерин. А ещё два имени из списка нам (JUG.ru Group) особенно близки.

Джон Скит

Ну, в случае с этим опросом он в выгодном положении: его прославили как раз ответы на Stack Overflow, неудивительно, что пользователи SO его ценят. Но в .NET-мире он заметен и в отрыве от Stack Overflow (как автор книг, спикер, блогер), и мы с ним связаны как раз благодаря этому: он выступал на нашей конференции DotNext.

Ричард Столлман

Главный активист свободного программного обеспечения — противоречивая фигура: кто-то скажет, что он излишне радикален и в 2019-м уже ни на что не влияет, а кто-то возразит, что это ему мы обязаны нынешним бумом опенсорса, без которого сейчас в сотый раз переписывали бы старые «велосипеды».

Так или иначе, легендарного статуса у Столлмана не отнять. А в этом году он побывает в России: в августе выступит на нашем петербургском ИТ-фестивале TechTrain. Там можно будет лично задать ему вопрос и составить впечатление по собственному опыту, а не буквам из интернета.

0
22 комментария
Написать комментарий...
vlad kriloff

Ахахах )))) Notepad ++ на третьем месте по популярности. Куда катится этот мир

Ответить
Развернуть ветку
Eugene Trifonov

Я думаю, тут не ситуация «люди целыми днями кодят в Notepad++», а ситуация «его удобно использовать в дополнение к IDE» (лёгкий, подсветка для всего подряд). И поскольку использовать его так могут самые разные люди, то по IDE голоса разделились в зависимости от языка, а у него много набежало.

Ответить
Развернуть ветку
Anton Buzdalkin

В дополнение к ide? Зачем?

Ответить
Развернуть ветку
Sergei Timofeyev

Что-то быстро записать или набросать. В течение дня постоянно требуется. Ждать пока откроется IDE'шка даже на SSD с хорошим процом - смерти подобно.

Ответить
Развернуть ветку
Anton Buzdalkin

Даже не могу себе представить что и куда нужно быстро набросать? Код? Документацию или что? Если не код, то причему тут IDE? Если код, то вообще не понимаю, как в нем можно его писать.

Ответить
Развернуть ветку
Hello

1. Просмотр больших файлов и манипуляция с ними, например, файлы логов или дампы. Большие файлы в несколько десятков мб могут запросто порвать жопу IDE в отличие от редакторов вроде notepad++ и sublime text.

2. Иногда надо что-нибудь экстракнуть или реорганизовать в больших файлах, регулярки редакторов будут работать быстрее, чем в IDE.

3. Если мы говорим про IDE, то это, как правило, работа с проектами. В них не удобно работать с сингл файлами, особенно, если нужно просто что-то глянуть из удаленного источника, например, ftp.

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Fitz Walker

Однако Вы утрируете. С хорошим SSD, топовым процессором и кучей расширений у меня он запускается за секунды.

Ответить
Развернуть ветку
Sergei Timofeyev

phpStorm на SSD и i5-6xxx - около 30 секунд с несложным проектом. Idea - и того дольше.

Ответить
Развернуть ветку
Anton Buzdalkin

Что-то долго, phpstorm на i7-3280 + plextor m5 за 15 секунд.

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Кохоне

Использую его как блокнот или буфер обмена) удобно

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Mr Banny

Сравнение есть и поиск/замена по паттерну. Может я так бы объяснил: "невелика задача, зачем тогда из пушки по воробьям стрелять?"

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Anton Buzdalkin

Сейчас бы учитывать мнения где в выборке 30% опрошенных пользуются npp.

Ответить
Развернуть ветку
Make Luv

МС красавчики с вскодом, с наскока весь мир захватили.

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Vitaly Kuznetsov

Кто-нибудь из присутствующих здесь программистов проходил опрос? Я вот нет :-) письма не было, уведомления не получал никакого.

Ответить
Развернуть ветку
Make Luv

На SO несколько раз видел приглашение поучаствовать, но всегда игнорировал, т.к. когда туда заходишь не до опросов. Поэтому тоже не проходил.

Ответить
Развернуть ветку
Андрей Евстафьев

А где 1С?!

Ответить
Развернуть ветку
Lord WorldBog

в России)

Ответить
Развернуть ветку
19 комментариев
Раскрывать всегда