Введение: почему Rust — язык будущего в 2025 году
Rust уже несколько лет подряд признаётся самым любимым языком программирования по опросам разработчиков Stack Overflow. В 2025 году он продолжает набирать популярность, особенно в системном программировании, веб-разработке, блокчейне и embedded-системах. Но с чего начать новичку? В этой статье мы разберём, как установить Rust, написать первую программу и понять ключевые концепции языка.
Rust сочетает в себе производительность C/C++ с безопасностью памяти, которая проверяется на этапе компиляции. Это значит, что вы избежите многих ошибок времени выполнения, характерных для других языков. Если вы пришли из Python, вас ждёт крутая кривая обучения, но результат того стоит.
1. Установка Rust и настройка окружения в 2025 году
Первый шаг — установка компилятора Rust и менеджера пакетов Cargo. В 2025 году процесс стал ещё проще.
Установка через rustup
Официальный и рекомендуемый способ — использовать rustup. Откройте терминал и выполните команду:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
После установки перезагрузите терминал или выполните:
source $HOME/.cargo/env
Проверьте установку:
rustc --version
cargo --version
Вы должны увидеть что-то вроде:
rustc 1.78.0 (2024-12-15)
cargo 1.78.0 (2024-12-15)
Среда разработки
Для комфортной работы рекомендую использовать:
- VS Code с расширением
rust-analyzer— автодополнение, подсветка ошибок, рефакторинг. - IntelliJ IDEA с плагином Rust — полная поддержка для крупных проектов.
- Helix или Neovim — для любителей терминала.
2. Синтаксис Rust: первые шаги и примеры кода
Rust — язык со строгой статической типизацией, но с мощным выводом типов. Разберём базовые конструкции.
Создание нового проекта
Используйте Cargo для создания проекта:
cargo new hello_rust
cd hello_rust
Откройте файл src/main.rs. Вы увидите:
fn main() {
println!("Hello, world!");
}
Запустите программу:
cargo run
Переменные и неизменяемость
По умолчанию все переменные в Rust неизменяемы (immutable). Это ключевая концепция безопасности.
let x = 5; // неизменяемая
// x = 6; // Ошибка!
let mut y = 10; // изменяемая
y = 15; // OK
Типы данных
Rust поддерживает как скалярные, так и составные типы.
// Скалярные типы
let integer: i32 = 42;
let float: f64 = 3.14;
let boolean: bool = true;
let character: char = 'R';
// Составные типы
let tuple: (i32, f64, char) = (500, 6.4, 'R');
let array: [i32; 3] = [1, 2, 3];
Функции
Функции объявляются с помощью fn. Возвращаемое значение указывается после ->.
fn add(a: i32, b: i32) -> i32 {
a + b // последнее выражение — возвращаемое значение
}
fn main() {
let result = add(5, 7);
println!("5 + 7 = {}", result);
}
Управляющие конструкции
let number = 6;
if number % 2 == 0 {
println!("Чётное");
} else {
println!("Нечётное");
}
// Циклы
for i in 0..5 {
println!("i = {}", i);
}
let mut counter = 0;
while counter < 3 {
println!("counter = {}", counter);
counter += 1;
}
3. Ключевые концепции: владение, заимствование и lifetimes
Самое сложное для новичков — система владения (ownership). Она гарантирует безопасность памяти без сборщика мусора.
Владение (Ownership)
Каждое значение в Rust имеет ровно одного владельца. При присваивании или передаче в функцию владение перемещается.
let s1 = String::from("hello");
let s2 = s1; // s1 больше недействителен
// println!("{}", s1); // Ошибка! s1 перемещён
Заимствование (Borrowing)
Чтобы использовать значение без передачи владения, используйте ссылки.
fn calculate_length(s: &String) -> usize {
s.len()
}
fn main() {
let s1 = String::from("hello");
let len = calculate_length(&s1);
println!("Длина '{}' равна {}", s1, len);
}
Ссылки бывают изменяемыми (&mut) и неизменяемыми. Правило: в одной области видимости может быть либо одна изменяемая ссылка, либо сколько угодно неизменяемых.
Время жизни (Lifetimes)
Lifetimes — это аннотации, которые помогают компилятору проверять, что ссылки не становятся висячими. На начальном этапе вы будете редко их писать вручную, но понимать их важно.
fn longest<'a>(x: &'a str, y: &'a str) -> &'a str {
if x.len() > y.len() { x } else { y }
}
4. Где учить Rust в 2025 году: лучшие ресурсы
Чтобы не потеряться в море информации, вот проверенные источники.
Официальная документация
- The Rust Book (The Rust Programming Language) — бесплатная книга, обязательна к прочтению.
- Rust by Example — учитесь на примерах кода.
- Rustlings — интерактивные упражнения прямо в терминале.