четверг, 18 апреля 2019 г.

Результаты опроса 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. Там можно будет лично задать ему вопрос и составить впечатление по собственному опыту, а не буквам из интернета.

суббота, 6 апреля 2019 г.

Уникальный автономный "октобот" открывает эру полностью мягких роботов

Интерес инженеров к мягким роботам в последние годы стремительно растёт. Их потенциальные возможности в некоторых областях, особенно там, где требуется деликатность и точность в исполнении своей работы, многократно превосходят способности жёстких терминатороподобных собратьев. Многие команды учёных и инженеров включились в своеобразную гонку по разработке мягкотелых созданий.
До настоящего момента попытки сделать робота как можно более мягким и гибким упирались в то, что было невозможно обойтись без некоторых жёстких компонентов — источников питания и электронной системы управления. У многих моделей было внешнее питание, но это паутина проводов в придачу, а значит, ограничения на автономную работу.
На этом фоне команда исследователей из Гарвардского университета, возглавляемая Робертом Вудом (Robert Wood) и Дженифер Льюис (Jennifer Lewis) совершила настоящий прорыв. (Справедливости ради заметим, что и они поначалу полагались на некоторые жёсткие и мешающие работе компоненты.) Результатом их работы на данный момент стал абсолютно автономный робот, выполненный полностью из мягких и гибких материалов.
Своим внешним видом и названием "октобот" (octobot) обязан осьминогам, которыми не устают восхищаться робототехники всего мира.
Похожий на осьминога мягкий "октобот" приводится в движение химической реакцией и управляется микрожидкостной системой.
Похожий на осьминога мягкий "октобот" приводится в движение химической реакцией и управляется микрожидкостной системой.
Фото Ryan Truby, Michael Wehner, Lori Sanders, Harvard University.
"Октобот" размером всего около двух сантиметров изготавливается из силикона. Для этого материал заливают в пресс-форму, после чего с помощью 3D-принтера специальными чернилами внутрь заготовки внедряется система каналов и резервуаров для будущей микрожидкостной системы. Чернила при нагревании испаряются, оставляя необходимые полости.
Именно микрожидкостная система по сути является мозгом робота. Она направляет поток жидкого "топлива" по каналам, которые снабжены клапанами, работающими в зависимости от давления в конкретной части системы. Она очень напоминает обычную электрическую цепь, только вместо электронов по телу "октобота" передвигаются жидкость и газ.

Топливом для "октобота" служит 50% раствор перекиси водорода, которая бурно реагирует с платиновым катализатором с выделением большого количества кислорода. Газ перемещается по каналам, создавая необходимое для движения робота давление в различных его частях и направляя поток жидкости дальше.

"Источники топлива для различных мягких роботов всегда предполагали некоторые жёсткие компоненты, — рассказывает доктор Вуд в пресс-релизе Гарварда. – Чудесно, что мы смогли заменить их обычной химической реакцией разложения перекиси водорода на катализаторе".
На данном этапе "октобот" работает — а именно активно шевелит щупальцами — около 8 минут, потребляя при этом один миллилитр "топлива". Пока устройство не предназначено для выполнения какой-либо цели. Сейчас это просто демонстрация принципиально новой концепции в мягкой робототехнике.
Ранее при создании действительно мягкого робота невозможно было обойтись без некоторых жёстких компонентов ≈ источников питания и электронной системы управления.
Ранее при создании действительно мягкого робота невозможно было обойтись без некоторых жёстких компонентов ≈ источников питания и электронной системы управления.
Фото Lori Sanders.
Авторы работы утверждают, что простота исполнения "октобота" позволяет рассчитывать на успешное создание более сложных устройств. Они ставят перед собой задачу разработки робота, который будет самостоятельно плавать, ползать и взаимодействовать с окружающей средой.
С подробным описанием технологии можно ознакомиться, прочитав статью, опубликованную в издании Nature.
Добавим, что ранее Льюис создавала технологию 3D-печати литиево-ионных аккумуляторов, а Вуд известен читателям "Вести.Наука" по проектам робота-пчелы и системы мягкого захвата предметов для подводных аппаратов.

Представлена новая версия архитектуры процессоров для гаджетов — ARM v9

 Новая версия микропроцессорной архитектуры, используемой в миллиардах устройств по всему миру, представлена британской компанией ARM Limite...