Rust

Поделиться:

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

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

67%

Для личных/сторонних проектов

61%

Хобби

18%

Для работы

1%

Другое

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

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

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

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

Алексей Кладов

Участник команды разработчиков инструментов для Rust

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

22%

Меньше месяца

36%

От 1 до 6 месяцев

18%

От 6 месяцев до года

19%

От года до 3 лет

5%

Более 3 лет

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

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

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

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

Андре Богус

Специалист по сопровождению Clippy, редактор TWiR, контрибьютор Rust, профессиональный Rust-разработчик

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

22%

JavaScript / TypeScript

15%

Python

12%

C++

12%

Go

11%

C

6%

Java

3%

C#

2%

PHP

1%

Elixir

1%

Ruby

3%

Другое

49%

Ни одного

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

Андре Богус

Специалист по сопровождению Clippy, редактор TWiR, контрибьютор Rust, профессиональный Rust-разработчик

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

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

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

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

53%

Языковое взаимодействие

51%

REST API

24%

RPC

7%

Другое

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

45%
25%

Rust Analyzer

42%
47%

IntelliJ Rust

14%
17%

Никакие

10%
16%

RLS

3%
3%

Racer

1%
3%

Другое

9%
8%

Не знаю

Вот это рост у rust-analyzer! Ничего удивительного: недавно проект rust-analyzer стал частью большой организации Rust, придя на смену Rust Language Server (RLS), поддержка которого была прекращена. Я лично очень рад, что много людей используют передовые IDE для Rust и что между IntelliJ Rust и rust-analyzer существует здоровая конкуренция и одновременно сотрудничество.

Алексей Кладов

Участник команды разработчиков инструментов для Rust

Чтобы стать официальным LSP для Rust, rust-analyzer прошел большой путь. IntelliJ Rust тоже сохраняет сильные позиции. Я работал с обоими и до сих использую их параллельно. Два отличных проекта. Так держать!

Андре Богус

Специалист по сопровождению Clippy, редактор TWiR, контрибьютор Rust, профессиональный Rust-разработчик

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

43%

Visual Studio Code

23%

CLion

15%

IntelliJ IDEA

7%

Vim

3%

Emacs

1%

PyCharm

1%

Sublime Text

1%

GoLand

1%

Neovim

1%

Visual Studio

4%

Другое

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

32%

Нативная отладка

18%

Отладка WebAssembly

16%

Поддержка веб-фреймворков

16%

Кросс-языковые навигация и рефакторинги

14%

REPL

11%

Поддержка разработки для встраиваемых систем

10%

Поддержка фреймворков для работы с базами данных

9%

Поддержка Docker

9%

Поддержка удаленной разработки

4%

Поддержка AWS Lambda

5%

Другое

32%

Ни одного

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

55%

С помощью макросов println! или dbg!

27%

Через интерфейс отладки в IDE

11%

В консоли

5%

Не отлаживаю

1%

Другое

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

Андре Богус

Специалист по сопровождению Clippy, редактор TWiR, контрибьютор Rust, профессиональный Rust-разработчик

Отладчики, как всегда, больное место. Я сам пользуюсь eprintln! (через сниппет pd в IDE), но мне не хватает крутых отладчиков, как во времена работы с Kotlin.

Алексей Кладов

Участник команды разработчиков инструментов для Rust

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

82%

Не пользуюсь инструментами профилирования

10%

perf

5%

callgrind/cachegrind

4%

gprof

3%

DTrace

2%

Другое

Это безусловно проблема тулчейна! Работать со всеми этими инструментами ужасно заморочно. Если вы все время занимаетесь профайлингом (допустим, управляете производительностью в каком-нибудь большом проекте, как это делает nnethercote), можно, конечно, потратить время и силы на изучение всех настроек. А вот если у вас времени мало, изучать все это очень неудобно. Вот бы Rust взял пример с Go — у них в тулчейне есть pprof.StartCPUProfile. Но на это, конечно, надо много сил.

Алексей Кладов

Участник команды разработчиков инструментов для Rust

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

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

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

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

46%

Инструменты командной строки

37%

Системное программирование

34%

Веб-разработка

16%

Программирование сетевых задач

15%

Десктопные/GUI-приложения

11%

Встраиваемые системы / Интернет вещей

10%

Игры

7%

Образовательные, научные или вычислительные проекты

6%

Базы данных

6%

DevOps

6%

Блокчейн

6%

Безопасность

4%

Data Science / машинное обучение / искусственный интеллект

3%

Финансы / коммерция

6%

Другое

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

Андре Богус

Специалист по сопровождению Clippy, редактор TWiR, контрибьютор Rust, профессиональный Rust-разработчик

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

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

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

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

77%

Linux

41%

Windows

36%

macOS

22%

WebAssembly

11%

Встраиваемые системы

4%

Android

3%

iOS

2%

Другое

Linux господствует безразделно, хотя доля Windows заметно выросла. Думаю, это связано с инвестициями Microsoft в Rust. К тому же пользователи Linux часто переходят на новые технологии первыми, а теперь сообщество растет за счет пользователей, которые предпочитают не менять ОС на своем компьютере.

Андре Богус

Специалист по сопровождению Clippy, редактор TWiR, контрибьютор Rust, профессиональный Rust-разработчик

Еще один небольшой сюрприз: я бы сказал, что доля WebAssembly будет примерно такой же, как у встраиваемого ПО. Это лишний раз доказывает, насколько важны такие исследования.

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

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

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

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

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