Rust — современный системный язык программирования с мощной системой
типов. Он защищает от многих типичных ошибок программирования, таких
как использование освобождённой памяти и гонки данных. Эти проблемы
в Rust обнаруживаются сразу во время компиляции! При этом язык не
использует сборку мусора — а значит, обладает предсказуемой
производительностью, легко встраивается в другие языки и отлично
подходит для встраиваемого программирования. На Rust можно писать
надёжные, высокопроизводительные многопоточные программы.
Год назад произошёл выпуск первой стабильной версии языка — Rust
1.0. С тех пор язык активно развивался. Ещё вчера про Rust никто не
знал, а сегодня Dropbox переписал на нём ядро своей дисковой
инфраструктуры.
Вечером 17 мая мы соберёмся, чтобы поговорить о теоретических и
практических моментах использования Rust, его экосистеме и
инструментах, поделиться опытом написания программ на нём, а также
рассмотреть частые проблемы и способы их решения.
Не пропустите! CoLaboratory: Rust — это шанс узнать о многообещающем
языке программирования, который может вскоре заменить привычные
инструменты, чьи позиции сейчас кажутся незыблемыми.
Программа мероприятия:
18:00 — 18:30 Регистрация участников.
18:30 — 18:40 Начало встречи. Приветственные слова.
18:40 — 19:40 Rust — лучше, чем C++. Степан Кольцов.
Rust — современный практический удобный быстрый и безопасный язык
программирования с хорошей системой типов.
Rust должен стать заменой C++, т. к. решает проблемы C++ в работе с
памятью (use after free, double free, buffer overrun и т. п.) и с
многопоточностью при этом предоставляя такие же возможности для
написания быстрого кода.
Синтаксис Rust приятный, стандартная библиотека спроектирована
хорошо, а система типов Rust ушла далеко вперёд по сравнению с C++,
где виртуальные методы отдельно, шаблоны отдельно, и где для каждого
типа параметра шаблон инстанциируется заново. Но мой рассказ не про
это.
В своём рассказе я подробно (настолько, насколько это возможно за
один час) опишу ту часть системы типов, которая гарантирует
безопасную работу с памятью — lifetimes, borrowed pointers,
Sync/Send и прочее. На мой взгляд, это самое важное, самое сложное и
самое интересное, что есть в Rust.
19:40 — 20:30 Многопоточность и параллелизм в Rust. Никита Баксаляр.
Зачем нужны многопоточность и параллелизм, и почему это важно. Какие
подходы применялись в Rust, и к чему в итоге пришли.
Безопасный доступ к данным, или что такое состояние гонок, дедлоки,
и как нас избавляет от этих проблем Rust с помощью базовых
конструкций языка.
Альтернативные подходы к многопоточности: MPSC и обмен сообщениями,
легковесные процессы, акторы и корутины.
20:30 — 20:50 Кофе-брейк
20:50 — 21:40 Практика разработки веб-серверов на Rust. Михаил
Панков.
Rust позволяет писать быстрые и надёжные программы. Особенно когда
они многопоточные. Это делает его хорошим выбором для написания
серверной части разнообразных веб-приложений.
Но что для этого нужно? Зачем терпеть все эти длиннющие ошибки от
borrow checker'а? Что с продуктивностью разработки? Где взять
библиотеки? А что если библиотеки нет? Какой веб-фреймворк выбрать?
Как отлаживать и профилировать код?
В своём докладе я отвечу на эти и другие вопросы. Ещё я расскажу,
что нужно делать, чтобы решить обойти проблемные места, которые у
Rust, конечно, тоже есть.
Всё это — на примере кода инфраструктурного сервера, обеспечивающего
«всегда зелёный master» (commit gatekeeper, аналог homu и zuul).
21:40 — 22:10 Rust FFI на примере расширения структуры данных из
Haskell. Александр Вершилов.
Rust - быстрый и надежный язык без сборщика мусора, что позволяет
использовать его в проектах, написанных на других языках, в местах
особенно требовательных к эффективности решения. В данном докладе
будет рассмотрена возможность использования Rust в Haskell проекте.
Обычно в таких случаях используется связка с C, но поскольку Rust
предоставляет больше гарантий, то он может занять данную нишу.
В докладе мы рассмотрим основы FFI в Rust, и покажем как писать
проекты, использующие Rust и Haskell одновременно и обсудим прочие
связанные с этим вопросы.
Из других новостей про этот язык - участник Fedora, инженер Red Hat и
разработчик GCC, GDB и binutils, Tom Tromey, представил патчсет с поддержкой
Rust в GDB. Патчи
сразу заинтересовали других разработчиков GDB, и Tom представил уже вторую
версию патчсета,
исправленную и дополненную. Скоро можно будет отлаживать программы на Rust в
GDB!