Rust
Статьи в секции
- Libraries
Rust libraries
- Binary encoding
Двоичные коды в Rust
- Build Tools
Rust Build Tools
- CLI Arguments
Command-line arguments
- Closures
Closures and filters
- Collections
Rust Standard Collections
- Constants
Constant values
- Cross-compiling
Cross-compiling of RUST code to different OS
- Enums
Enums and match
- Error Handling
Error handling in Rust
- Files
File reading in Rust
- Flow Control
Rust program flow control - if-else, loops
- Generics
Generics in Rust
- Iterators
Rust Iterators
- Lifetimes
Rust Lifetimes
- Modules Structure
Rust modules cheat sheet
- Ownership and References
Rust ownership and reference rules
- Python call
Calling Python from Rust
- Regular Expressions
Rust regular expressions
- Speed & Performance
Rust Performance Measurements
- Strings
Rust &String and &str difference
- Structures
Rust struct type
- Threads
Rust Threads
- Traits
Rust traits
- Variables, Arrays, Constants
Rust variables and compound variables
Аргументы за/против Rust
Плюсы
- Memory safety, высокая скорость приложений +самые быстрые в мире веб-фреймворки https://www.techempower.com/benchmarks/#hw=ph&test=fortune§ion=data-r22
- Высокая скорость вычислений для ML, Python переходит под капотом на Polars взамен Pandas - https://rongxin.me/substitute-pandas-with-polars-a-dataframe-module-rewritten-in-rust
- любимый язык StackOverflow уже 8+ лет https://survey.stackoverflow.co/2024/technology/#admired-and-desired
- Ядро Linux, ядро Android, ядро Windows, ядро контейнеров переезжает с Golang
- Проект переписывания всех главных системных утилит Linux на Rust - https://github.com/TaKO8Ki/awesome-alternatives-in-rust
- Fearless Concurrency
- Диалог с компилятором
- Передача переменных в функции максимально чётко
- нет void / null https://www.youtube.com/watch?v=ybrQvs4x0Ps
- мощная типизация
- traits вместо классов и наследования
- Единый сборщик Cargo
- На выходе единый бинарник как в Golang
- Нативная поддержка WebAssembly (за счёт отсутствия сборщика мусора), первый язык
- Rust главный язык надёжной разработки финансовых инструментов для технологий Blockchain
Минусы
- Его сложно учить, много синтаксиса
- Перестроение мозгов: дуализм результата (enums Result), метки lifecycle, traits
- Язык молодой, экосистема беднее чем у Python, тем более чем у C++, сообщество меньше
Сравнения
Golang, хороший-плохой-злой: https://habr.com/ru/companies/vk/articles/353790/
Видеокурсы
- Курс Алексея Кладова - https://youtu.be/Oy_VYovfWyo?si=WRCHJv_0cZYitGao
Задачи по программированию
- https://www.codewars.com/
- https://leetcode.com/
- Свежая статья по теме - https://habr.com/ru/articles/726366/
- Интерактивные задачи на ветвления в Git - https://learngitbranching.js.org/
Установка с Rustup
После установки Rust через rustup можно переключать версии компилятора:
rustup show # посмотреть текущие установленные варианты rustup
rustup install nightly
rustup install beta
rustup install stable
rustup default nightly
rustup default stableПосле установки следует установить доп. инструменты для удобства работы.