Давайте на секунду представим, что программирование это кулинария. Так вот Rust - это язык, который готовит крабовые блюда высококлассного уровня, он не даёт вам разбрасываться ингредиентами и устраивать пожар на кухне, он строгий, требовательный, но зато на выходе у вас идеальный код без неожиданностей. В общем, Rust - шеф-повар среди языков программирования. Его даже внедрили в святую святых в ядро Linux. Но не все так однозначно, в этой статье разберемся в хайпе и стоит ли становиться крабовым специалистом.
Что такое Rust и откуда он появился?
Rust - это безопасный в отношении памяти компилируемый язык программирования который обеспечивает высокий уровень абстракции с выдающейся производительностью. Он является популярным выбором для создания систем, где производительность невероятно важна, таких как игровые движки, базы данных или операционные системы, и отлично подходит для работы с web assembly.
Изначально Rust развивался как побочный проект сотрудника Mozilla Грэйдон Хора, начиная с 2006 г. и получил название в честь грибов семейства "ржавчины". В 2009 году он получил материальную поддержку от Mozilla. Самостоятельно над Rust Грэйдон работал на протяжении четырех лет. Спустя время Грейден решил продемонстрировать свой проект менеджеру, работающему в Mozilla. Проект заинтересовал компанию, они давно хотели переписать свой стек на что-то более удобное и отличное от C++. Грейдена назначили главой по развитию своего детища в команду опытных разработчиков. А Rust стал новой основой такого браузерного движка как Servo с открытым исходным кодом.
Помимо улучшения производительности, Rust помог повысить защиту браузера. В тот момент реализация Firefox содержала порядка 4.5 млн строк кода на C++. Целью Rust было снизить шанс возникновения проблем со стороны компилятора, ведь на C++ довольно легко допустить уязвимость. В 2010 разработчики сменили компилятор OCaml на компилятор, написанный на Rust.
Сейчас на Rust пишут в таких крупных компаниях, как: Mozilla, Microsoft (низкоуровневые элементы Windows), Rambler (серверную логику), ВКонтакте и т.д.
За что так любят Rust
Rust очень любим среди сообщества программистов. Начиная с 2016 года, Rust выигрывает номинацию "Ваш любимый язык программирования" от stack overflow.
Давайте рассмотрим его главные преимущества
- Компиляция. Rust - это компилируемый язык программирования. Это значит, что перед запуском код, написанный на Rust, переводится в набор единиц и нулей, машинный язык.
- Мультипарадигмальность. Парадигма это как бы стиль, в котором пишут программисты. В rust имеется поддержка сразу 3 парадигм: функциональное, декларативное и объектно-ориентированное программирование.
- Высокий уровень асбтракции, о котором упоминалось выше. Команды на Rust имеют вид простых английских слов (к примеру: input, match и т.д.). Код на Rust читается довольно легко.
- Совместимость с C и C++
- Стаческая типизация, как и в C++
- Кросс-платформенность
- Многопоточность. Программы на Rust могут выполнять несколько операций одновременно.
Но самым главным преимуществом Rust является то, что язык предоставляет весомую скорость и надежность. Он дает программисту широкие возможности по распределению памятью и в то же время страхует от проблем с утечкой данных. Все это достигается довольно строгими правилами управления памятью.
Система владения и заимствований
- У каждого значения в Rust есть владелец, и он только один.
- Когда владелец выходит из области видимости, значение уничтожается.
- Владение можно передавать, но тогда предыдущий владелец теряет доступ к значению.
Предлагаю рассмотреть этот момент поподробнее и с небольшими примерами.
Передача владения
Когда мы присваиваем значение новой переменной, владение передаётся, а старая переменная становится недоступной:
Если нужно оставить старую переменную рабочей, необходимо использовать клонирование:
Заимствование (Borrowing) и ссылки
Иногда нужно передать значение в функцию, но при этом не потерять владельца. Это можно сделать с помощью заимствования:
Изменяемые ссылки (Mutable Borrowing)
Если нужно изменить значение внутри функции, можно передать изменяемую ссылку:
Что происходит при выходе из области видимости?
Когда переменная выходит из области видимости, Rust автоматически удаляет ее из памяти:
Так стоит ли учить Rust в 2025?
Многие, скорее всего, к этому моменту уже успели влюбить в этот правда замечательный язык программирования, но придется окунуться в суровую правду. И заключается она в том, что вы вряд ли найдете работу только со знанием Rust, он скорее всего будет предложен в стеке с чем-то еще. Чаще всего в нынешних реалиях на Rust переписывают уже готовый код с C++. Поэтому вам придется знать на очень хорошем уровне и C++.
Насколько бы Rust не был крут, он еще слишком молод, не пришло его время. Большинству компаний все еще не выгодно нанимать программистов на Rust, потому что реально хороших специалистов крайне много. Поэтому мало компаний переходят на Rust, как на основной язык.
Однако Rust - отличный выбор в качестве дополнительного языка программирования. Знания его явно будет вашим большим плюсом. И не будем забывать про перспективы Rust в будущем (а они правда неплохие).
А вообще Rust сейчас это больше язык "для души". Если вам надоела ваша кодерская рутина, то изучение Rust может разбавить ваши тусклые дни и заставить вас снова чувствовать себя живым.
Но Rust пока точно не самый лучший вариант в качестве первого языка программирования. Если вас интересуют низкоуровневые языки, то в 2025 году все самым лучшим выбором остается C++.
Если вы еще не определились, с каким языком программирования хотите себя связать или какое направление хотите выбрать, советую пройти данный тест.
Вывод
На самом деле Rust вызывает двоякое впечатление. С одной стороны, в этот язык тяжело не влюбиться из-за его принципов и стандартов, но с другой стороны очень печалит ситуации с его не настолько сильной актуальностью (по сравнению с плюсами). Я думаю звездный час Rust еще впереди.
Технология из прошлого, которая призвана спасти будущее от самого себя
— Грэйдон Хор
А больше интересного в моем телеграм канале!