Аудитория конференции была смешанная: кто-то уже пишет на Rust и использует его в работе, а кто-то попробовал его для своих pet’s projects. А кто-то просто интересуется новым развивающимся языком и хотел послушать опытных докладчиков, поболтать с участниками и спикерами в кулуарах.
Было очень много полезной информации и общения. Сообщество Rust пока еще хоть и не большое, но в нем очень крутые и талантливые ребята. И мы уверены, в ближайшее время спрос на Rust-разработчиков будет расти, а это значит, что и сообщество увеличится. Недавно как раз разговаривали с Григорием Петровым о применении Rust в компании Evrone. Из его интервью можно сделать такие же выводы.
В программе прошедшей конференции было 9 докладов и мастер-класс. Если у вас не получилось посетить RustCon Russia 2021, вот небольшая выжимка по темам.
Открыл конференцию Сергей Фомин из Яндекса с докладом - "Зачем системным программистам Rust".
Сергей рассказал про преимущества и недостатки современного системного программирования на различных языках: от С и С++ до их более высокоуровневых альтернатив. Рассмотрел гарантии безопасности, которые предоставляет Rust, и почему даже при наличии unsafe кода Rust существенно более безопасен, чем C и C++. Привёл пример того, как можно взять код на C++ и сделать над ним "безопасную абстракцию" на Rust.
"Под капотом у процедурных макросов" - так звучала тема второго доклада RustCon Russia 2021 от Владислава Бескровного из JetBrains.
Спикер рассказал:
1. Какое API компилятор предоставляет процедурным макросам. Что процедурный макрос может, а что - нет.
2. Как процедурный макрос компилируется в динамическую библиотеку.
3. Как взаимодействуют rust и dll процедурного макроса.
4. Коротко о более высокоуровневых библиотеках - proc_macro2, syn, quote.
5. Пару слов о поддержке процедурных макросов в rust-analyzer и в intellij-rust.
Третий доклад - "Экскурс в Rust для питонистов, рубистов и всех причастных" от Михаила Грачева из Evrone.
Михаил рассказал, как Rust выглядит для разработчиков, которые уже хорошо умеют Ruby, Python или JS. Это было не «введение в Rust для новичков», а обзор от опытного разработчика для других опытных разработчиков: ключевые отличия, на что стоит обращать внимание и где будет болеть.
"Неочевидные прелести Rust" - четвертый доклад RustCon Russia 2021 от Вафеля. Этот доклад все очень ждали, тк многие знают Вафеля по его блогу "Мне не нравится реальность" и активности в Rust-сообществе.
Спикер заранее спросил у людей, что их приятно удивило при изучении раста, и собрал все ответы в один список. В Rust много неочевидных, но очень приятных фич, особенностей, функций.
Вафель рассказал об этих прелестях, чтобы как можно больше разработчиков о них знали и могли ими пользоваться :)
Несколько примеров пунктов из списка:
Result: FromIterator (.collect:<Result<_, _>>())
Возможность использования паттернов везде (например в аргументах функций, let)
Создание массивов через [CONST; N] для T: !Copy"
Пятым докладом был "Rust? В моём фронтенде?!" от Константина Егупова из Modeldrive. Он специально прилетел на RustCon из Лондона (там он живет и работает последние несколько лет).
Константин рассказал:
* о том, что такое WebAssembly, как оно живёт в вебе и смарт-контрактах, на каких языках можно писать;
* каково нынешнее состояние WASM-мира;
* о проблемах сопряжения моделей данных WASM и Javascript;
* почему переводить фронтенд на Rust/WASM - это хорошая идея;
* почему переводить фронтенд на Rust/WASM - это плохая идея;
* о передаче структуры в JS/TS: wasm_bindgen и JSON;
* как отлаживать проблемы;
* почему Rust вместо React: yew и его товарищи.
"Гетерогенные списки в Rust и их суперсилы" от Антона Михайлова - следующий, шестой доклад на RustCon Russia 2021.
Доклад демонстрирует, как, использовав в качестве промежуточной абстракции гетерогенные списки - вещь, обычно применяемую в функциональном программировании, - можно покрыть возможности, которые могли бы предоставить отсутствующие в Rust фичи: структурная типизация и вариадические дженерики.
Седьмой доклад - "Rust и Python - как в небольшой команде просто, прозрачно и с минимальными трудозатратами переписать узкие места на Rust (и почему не C++)" от Максима Акинина из assi.ai.
В этом докладе рассмотрели реальную задачу разработки различных методов расчета кадастровой стоимости, спрототипированной на Python, с тестами, написанными на Python/unittest, и постепенного ее переписывания на Rust с использованием:
взаимодействия с RabbitMQ (amiquip);
работы с Mongo;
треды;
интеграция кода в инфраструктуру тестов, разрабатываемых на Python.
Важной частью доклада была мотивация выбора Rust (особенно в сравнении с C++) в реальный проект, который используется в проде, для команды, которая заточена, в основном, под Python и JS.
"Rewrite It In Rust: Переписываем с C++ на Rust" - восьмой доклад на RustCon Russia 2021 от Александра Шишенко из Librevault. Александр ведет свой блог на youtube “Русский айтишник”.
В своем докладе он рассмотрел порядок переписывания реального проекта с C++ на Rust по этапам:
- Добавили в CMake сборку статических библиотек через Cargo;
- Заменили C++-зависимости аналогами на Rust;
- Научились использовать corrosion, cbindgen, cxx.
И всё это без unsafe.
Завершил конференцию девятый доклад - "RustCrypto: экосистема криптографических крейтов написанных на чистом Rust" от Артема Павлова из Квантома.
Выступление Артема затронуло следующие темы.
* Краткий экскурс в историю разработки RustCrypto.
* Влияние подхода "малых крейтов" на использование и разработку по сравнению с монолитными библиотеками. Достоинства и недостатки обоих подходов.
* Реализация алгоритмов на чистом Rust против биндингов к C/C++/asm библиотекам.
* Решения, применяемые в дизайне API крейтов, их мотивация и возможности которые они открывают. Каким образом классы криптографических примитивов могут быть отображены в рамках типажей.
* Проблемы композиции алгоритмов и эффективного написания SIMD кода в присутствии runtime детектирования возможностей процессора.
* Будущее RustCrypto в контексте развития Rust.
Параллельно с докладами Антон Патрушев провел мастер-класс "Начинаем Embedded на Rust". Он был построен вокруг отладочной платы STM32F3DISCOVERY.
Антон рассказал, как всё устроено в мире Embedded Rust, какие есть инструменты, под какие семейства микроконтроллеров и архитектуры можно разрабатывать на Rust уже прямо сейчас, как механизмы Rust помогают бороться с классическими проблемами в разработке под микроконтроллеры. Затем участники мастер-класса написали небольшой проект - usb устройство, которое при подключении к компьютеру определяется как мышь, не требуя драйверов, и умеет "дрожать" курсором мыши.
Все доклады собрали полный зал слушателей. На конференции было очень оживленно: спикеры получали много вопросов из зала от участников, в перерывах было очень много обсуждений в кулуарах.
Поскольку RustCon Russia 2021 так всем понравилась, мы уже планируем следующую конференцию. Проведем ее 2 декабря 2022. У нас есть много идей, как улучшить формат и сделать RustCon Russia 2022 еще более интересной и полезной.
Если у вас не получилось в этом году присутствовать офлайн, вы можете приобрести записи докладов на нашем сайте (с 1 апреля 2022 записи появятся в открытом доступе для всех). Выступления будут интересны и тем, кто уже пишет на rust, и тем, кто пока к нему присматривается (некоторые участники после конференции окончательно решили изучать rust).
________________________________
Вступайте в чат RustCon Russia, чтобы читать новости про конференцию и общаться.