Rust

Поделиться:

На вопросы из этого раздела отвечали только те, кто выбрал Rust в качестве одного из используемых языков программирования.

Для чего вы используете Rust?

Флориан Гилчер

Управляющий директор Ferrous Systems

Мне нравяится такая статистика. Rust развивается, и относительные цифры здесь остаются прежними, а это означает как увеличение числа рабочих мест, так и появление новых людей, которых можно нанять на эти места. Моя рекомендация для тех, у кого есть вакансии: откажитесь от требования «X лет опыта с Rust», и вы сможете привлечь талантливых любителей, которые зачастую уже программируют на профессиональном уровне. Здесь есть здоровый потенциал для роста.

Лука Пальмиери

Главный инженер-консультант в Mainmatter

Rust стабильно проникает на рабочие места, и все больше проектов используют его в продакшене. В то же время спрос на вакансии по Rust все еще значительно превышает количество открытых позиций. Это не идеально для тех, кто хочет профессионально программировать на Rust, но это определенно хорошая новость для работодателей: есть много талантливых специалистов, готовых работать с Rust на повседневной основе.

Тим Макнамара

Основатель Accelerant.dev, автор книги «Rust в действии»

Ответы на этот вопрос демонстрируют баланс и разнообразие в Rust-сообществе.

Воодушевляет, что все больше людей зарабатывают деньги, программируя на Rust. Всего за один год мы наблюдаем рост на 11 процентных пунктов.

Кого-то может разочаровать, что только пятая часть опрошенных используют Rust для работы, но это вполне согласуется с тем, что многие только начинают осваивать язык. Когда так много новичков, очень трудно поднять эту цифру выше 50%.

Здорово, что столько людей выбирают Rust для личных проектов. Это значит, что они воспринимают Rust как инструмент для творчества.

Как долго вы используете Rust?

Тим Макнамара

Основатель Accelerant.dev, автор книги «Rust в действии»

Значительный перекос в сторону начинающих программистов свидетельствует о том, что сообщество растет в геометрической прогрессии.

Лидерам стоит помнить, что более 75% людей, использующих Rust, работают с ним меньше года.

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

Лука Пальмиери

Главный инженер-консультант в Mainmatter

Rust отлично удерживает пользователей: семь лет подряд его признают самым любимым языком на StackOverflow, а значит, те, кто освоил Rust, хотят продолжать программировать на нем.

В то же время мы видим, что приток новых разработчиков в экосистему остается высоким: больше половины респондентов только начинают работать с Rust (<6 месяцев).

Высокий уровень удержания пользователей и стабильный приток новичков — отличные показатели для экосистемы в целом.

Флориан Гилчер

Управляющий директор Ferrous Systems

Это хорошие новости, особенно для начинающих. Если взяться за Rust прямо сейчас, есть шанс стать настоящим экспертом, в отличие от других языков, где в каждой команде найдется коллега с 10-летним опытом. Лучшее время для изучения Rust — здесь и сейчас.

Какие языки программирования вы используете в проектах, помимо Rust?

Лука Пальмиери

Главный инженер-консультант в Mainmatter

Больше половины опрошенных работают над полиглотными проектами, используя Rust наряду с другими технологиями. В зависимости от языка программирования можно сделать предположение о преобладающих паттернах: фронтенд на JavaScript/TypeScript с поддержкой Rust API, нативные расширения (Rust+Python), проекты на смешанных языках (C/C++), взаимодействие между микросервисами по сети (Go, Python, C#, Java и т.д.).

Тим Макнамара

Основатель Accelerant.dev, автор книги «Rust в действии»

Приятно видеть, что Rust хорошо сочетается с другими языками. Я вижу здесь влияние использования Rust в веб-бэкендах (JS/TS, SQL) и CLI (скриптовые языки).

Применение Rust для расширения или, по крайней мере, для совместного использования с JVM-языками и в меньшей степени с CLR-языками (C#) — очень интересный признак. Ожидаю, что с ростом коммерческого использования увеличится необходимость в том, чтобы Rust хорошо работал в системах сборки, компилирующих/собирающих несколько языков.

С какого языка вы перешли на Rust?

Флориан Гилчер

Управляющий директор Ferrous Systems

Вывод из приведенной выше статистики остается неизменным на протяжении многих лет: Rust был и остается языком, ориентированным не только на тех, кто занимается системным программированием, но и на гораздо более широкую аудиторию.

Тим Макнамара

Основатель Accelerant.dev, автор книги «Rust в действии»

Вот это да! Доля тех, кто выбрал первый вариант ответа, раз в десять больше, чем я ожидал.

Это хороший признак того, что Rust становится доступнее. Но это также укрепляет мое убеждение в том, что нам, как сообществу, нужно лучше его преподавать.

Как Rust-код взаимодействует с другими частями программы?

Тим Макнамара

Основатель Accelerant.dev, автор книги «Rust в действии»

Я ожидал увидеть здесь WebAssembly/WASI, но 22% — это намного больше, чем я предполагал!

Было бы интересно глубже изучить паттерны взаимодействия, которые обеспечивает WebAssembly. Идет ли речь о расширении кодовых баз Rust с помощью пользовательских плагинов, написанных на других языках? Или мы рассматриваем Rust для написания компонентов, запускаемых другими приложениями? Или мы наблюдаем успех эксперимента Spin/Fermyon для создания приложений из модулей WebAssembly, написанных на разных языках программирования?

Лука Пальмиери

Главный инженер-консультант в Mainmatter

Rust для веб-бэкенда!

Интересно, что сократилась доля проектов, использующих FFI.

Я с нетерпением жду дальнейшего укрепления WebAssembly. Модули Wasm обеспечивают надежный барьер для атак на цепочку поставок, перед которыми экосистема открытого кода Rust сейчас весьма уязвима.

Флориан Гилчер

Управляющий директор Ferrous Systems

Поразительно, сколько разных вариантов интеграции используется на практике. Учитывая, что в большинстве проектов присутствует тот или иной интеграционный компонент, хотелось бы, чтобы больше внимания уделялось широкой интеграции Rust в другие системы.

Какие плагины/утилиты для Rust вы используете в IDE?

Тим Макнамара

Основатель Accelerant.dev, автор книги «Rust в действии»

Что действительно удивляет, так это то, как мало здесь коммерческих вариантов. Аплодирую JetBrains за активную поддержку Rust на протяжении многих лет.

Флориан Гилчер

Управляющий директор Ferrous Systems

Радует, что два основных редактора процветают. Похоже, rust-analyzer забрал на себя пользователей более неподдерживаемых RLS/Racer, а IntelliJ Rust остается основным выбором для тех, кто хочет получить интегрированный опыт.

Лука Пальмиери

Главный инженер-консультант в Mainmatter

Год назад rust-analyzer присоединился к организации Rust и официально заменил RLS в качестве официального языкового сервера, что стало кульминацией процесса, начавшегося более двух лет назад. Результаты опроса подтверждают, что пользовательская база RLS наконец-то переходит на rust-analyzer, но в то же время служат отрезвляющим напоминанием: миграция целой экосистемы — сложный и медленный процесс, независимо от того, насколько превосходна альтернатива и насколько сильно давление и хороша координация.

Какую IDE или редактор вы используете для разработки на Rust?

Какой функциональности для Rust вам больше всего не хватает в IDE?

Тим Макнамара

Основатель Accelerant.dev, автор книги «Rust в действии»

Смотрю на этот список и понимаю, что хочу гораздо большего от своей IDE! Тоже с нетерпением жду визуализации времени жизни, но я не уверен, поможет ли она в сложных случаях. Это может вылиться в еще один мини-язык, который нужно будет изучать.

Впечатляет, как высоко находятся процедурные макросы. Я не подозревал, что так много людей пишут собственные процедурные макросы!

Еще одна вещь, которую JetBrains могли бы предложить, — это опыт, подобный GitHub Codespaces. Мне очень нравится использовать облачные рабочие столы, но меня смущает цена.

Лука Пальмиери

Главный инженер-консультант в Mainmatter

Начнем с позитивного: треть респондентов довольны поддержкой Rust в IDE. Это очень много!

Но не все так радужно. Нам нужно больше помогать пользователям с теми аспектами, которые уникальны для Rust, например с временами жизни. Процедурные макросы — тоже нерешенная задача: они повсеместно встречаются в сложных кодовых базах, что объясняется их полезностью, но при широком использовании значительно ухудшают работу в IDE.

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

Какие системы сборки вы используете для компиляции Rust?

Тим Макнамара

Основатель Accelerant.dev, автор книги «Rust в действии»

6% респондентов используют для сборки Make?! Вот это да! Некоторые люди действительно преданы своим старым инструментам. Я заметил одну особенность разработчиков: они обожают чувство контроля.

Лука Пальмиери

Главный инженер-консультант в Mainmatter

Здесь без сюрпризов: в Rust-проектах полностью господствует Cargo.

Как вы обычно отлаживаете Rust-код?

Лука Пальмиери

Главный инженер-консультант в Mainmatter

По сравнению с прошлым годом картина практически не изменилась: отладка с помощью println! имеет наименьший порог вхождения и остается самым популярным методом среди опрошенных. У нас, безусловно, есть недостаток инструментов, но я считаю, что это не вся история: также есть проблемы с обучением. Практически нет материалов, которые учили бы, как использовать существующие средства отладки.

Тим Макнамара

Основатель Accelerant.dev, автор книги «Rust в действии»

Нет ничего плохого в использовании println! Но приятно, что разработчики IDE приложили столько усилий, чтобы сделать настоящую отладку очень простой. Умение пользоваться отладчиком для пошагового выполнения программы действительно повышает продуктивность.

Флориан Гилчер

Управляющий директор Ferrous Systems

Меня расстраивает эта ситуация. Я думаю, что улучшение отладки возможно, и IDE кажется хорошим способом достижения этой цели. Однако, на мой взгляд, с годами эта практика довольно сильно застопорилась. Проявляется это в том, что большинство все еще предпочитает просто вывод в консоль.

Какие инструменты профилирования вы используете вместе c Rust?

Лука Пальмиери

Главный инженер-консультант в Mainmatter

Вот это скачок в использовании профилировщика в Rust-проектах!

Это по большей части связано с увеличением использования профилировщиков, встроенных в IDE: когда мощные инструменты становятся доступны, разработчики ими пользуются.

Однако нам предстоит еще много работы. Должно быть так же легко профилировать приложения в производственных средах, но мы еще от этого далеки.

Флориан Гилчер

Управляющий директор Ferrous Systems

Относительная популярность профилировщиков, встроенных в IDE, подтверждает мое предположение о том, что профилирование часто не выполняется из-за его труднодоступности.

Какие проекты вы разрабатываете на Rust?

Лука Пальмиери

Главный инженер-консультант в Mainmatter

За это я и люблю опросы: они ставят под сомнение общепринятые представления с помощью объективных данных.

В сознании большинства людей Rust ассоциируется с системным программированием, но реальность намного интереснее: 38% респондентов используют язык для веб-разработки, что противоречит мнению о том, что Rust — это «перебор» и «слишком сложно» для этой задачи. Я уверен, что это следующий большой шаг для Rust, и будет интересно увидеть, подтвердят ли данные мое предчувствие.

Флориан Гилчер

Управляющий директор Ferrous Systems

Приятно видеть, что при всем развитии Rust его использование во встраиваемых/IoT системах остается на прежнем уровне. Положительным сюрпризом этого года для меня стал рост использования Rust в десктопных приложениях — всегда есть цифры, не совпадающие с твоим ощущением. А то, что доли в целом не сильно меняются, говорит о сформировавшейся и стабильной экосистеме, которая куда-то движется.

Тим Макнамара

Основатель Accelerant.dev, автор книги «Rust в действии»

Так здорово видеть большое разнообразие проектов. Мне нравится в Rust то, что его гарантии безопасности дают людям уверенность в том, что они могут экспериментировать в областях, которые раньше были недоступны.

Для какой платформы предназначаются ваши Rust-проекты?

Тим Макнамара

Основатель Accelerant.dev, автор книги «Rust в действии»

Очень интересно наблюдать за разнообразием. Я ожидал, что доля серверного Linux будет гораздо выше — далеко за 90%. Полагаю, это соответствует большому числу тех, кто использует Rust для CLI, и большинству разработчиков, пишущих на нем в качестве хобби и в побочных проектах.

Доля встраиваемых систем кажется очень высокой. Я думал, что это довольно маленькая ниша, но очевидно, что есть отдельная и широкая группа людей, использующих Rust для проектов, не зависящих от операционной системы.

Флориан Гилчер

Управляющий директор Ferrous Systems

Здесь, опять же, без сюрпризов. Переход на Rust в более консервативных компаниях повышает актуальность Windows в качестве целевой платформы.

Спасибо, что уделили время!

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

Присоединяйтесь к JetBrains Tech Insights Lab

Участвуйте в опросах и UX-исследованиях JetBrains, чтобы помочь нам улучшить наши продукты. Среди участников исследований разыгрываются призы.

Исходные данные Скоро

Мы готовим исходные данные к публикации. Оставьте свою электронную почту, и мы сообщим вам, когда их можно будет скачать.

By submitting this form I agree to the JetBrains Privacy Policy

Если у вас есть вопросы или пожелания, свяжитесь с нами по адресу surveys@jetbrains.com.