Как стать автором
Обновить
0
IT-People
Приходите к нам учиться, работать и отдыхать!

RustCon Russia 2021: как прошла конференция, и о чем там говорили

Время на прочтение5 мин
Количество просмотров5K

3 декабря в Москве прошла конференция по языку программирования Rust - RustCon Russia 2021. Она получилась по-настоящему международной, собрав 100 участников из России, Беларуси, Казахстана, Аргентины и Великобритании.

Аудитория конференции была смешанная: кто-то уже пишет на Rust и использует его в работе, а кто-то попробовал его для своих pet’s projects. А кто-то просто интересуется новым развивающимся языком и хотел послушать опытных докладчиков, поболтать с участниками и спикерами в кулуарах.

Было очень много полезной информации и общения. Сообщество Rust пока еще хоть и не большое, но в нем очень крутые и талантливые ребята. И мы уверены, в ближайшее время спрос на Rust-разработчиков будет расти, а это значит, что и сообщество увеличится. Недавно как раз разговаривали с Григорием Петровым о применении Rust в компании Evrone. Из его интервью можно сделать такие же выводы.

В программе прошедшей конференции было 9 докладов и мастер-класс. Если у вас не получилось посетить RustCon Russia 2021, вот небольшая выжимка по темам.

Открыл конференцию Сергей Фомин из Яндекса с докладом - «Зачем системным программистам Rust».

Сергей рассказал про преимущества и недостатки современного системного программирования на различных языках: от С и С++ до их более высокоуровневых альтернатив. Рассмотрел гарантии безопасности, которые предоставляет Rust, и почему даже при наличии unsafe кода Rust существенно более безопасен, чем C и C++. Привёл пример того, как можно взять код на C++ и сделать над ним «безопасную абстракцию» на Rust.

«Под капотом у процедурных макросов» - так звучала тема второго доклада RustCon Russia 2021 от Владислава Бескровного из JetBrains.

Спикер рассказал:

  • Какое API компилятор предоставляет процедурным макросам. Что процедурный макрос может, а что - нет.

  • Как процедурный макрос компилируется в динамическую библиотеку.

  • Как взаимодействуют rust и dll процедурного макроса.

  • Коротко о более высокоуровневых библиотеках - proc_macro2, syn, quote.

  • Пару слов о поддержке процедурных макросов в 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, чтобы читать новости про конференцию и общаться.

Теги:
Хабы:
+15
Комментарии6

Публикации

Информация

Сайт
it-people.ru
Дата регистрации
Дата основания
Численность
2–10 человек
Местоположение
Россия

Истории