автор Идан Зальцберг

Язык программирования Rust приобрел удивительную популярность в последние годы, и мы видим его больше в таких областях, как Crypto, WebAssembly и, в последнее время, ядро ​​Linux.

Хотя Rust не лучший инструмент для всего, я бы посоветовал разработчикам выучить язык и ознакомиться с ним. Вот несколько причин почему.

Действительно новая идея

Модель владения Rust — действительно новая и освежающая концепция для меня. Rust гарантирует сохранность памяти без сборщиков мусора и автоматического подсчета ссылок. Эта новая идея захватывающая и интересная для изучения; кроме того, Rust расширяет эту идею до безопасности потоков. После 20 лет профессиональной разработки программного обеспечения вы не так часто сходите с ума, но Rust помог мне. :)

Все правильные решения

Rust очень хорошо спроектирован — разделение данных (структуры) и логики (реализации); дженерики сделаны правильно с возможностью добавлять реализации функций только для определенных дженериков. Богатство черты Iterator приносит все преимущества потоковой обработки с одной реализованной функцией, но без каких-либо проблем с производительностью (благодаря абстракциям с нулевой стоимостью).

И последнее, но не менее важное: красивый подход к обработке ошибок заставляет вас работать с ошибками явно, но при этом лаконично (без нулевых значений!).

Компилятор

Несмотря на то, что язык непрост, компилятор — ваш лучший друг, ваш наставник. Он не только точно скажет вам, в чем проблема, но во многих случаях предложит правильное решение. Так что, в некотором роде, это бесплатный частный преподаватель, который поможет вам понять ваш код и как его улучшить :-)

Ближе к металлу

Языки высокого уровня часто абстрагируются от таких вещей, как «сколько байтов составляет целое число» или «будет ли оно размещено в куче или стеке?» Rust отдает эти решения в ваши руки и заставляет вас нести ответственность за каждый такт процессора.

Возвращение к подобным концепциям напомнило мне, насколько безумно мощным является вычислительное оборудование в наши дни и как много мы можем получить даже от одного ядра ЦП, если приложим усилия к его правильному использованию. Помогает то, что сообщество одержимо производительностью в целом, и вы можете многому научиться, просто прочитав код и документацию других ящиков, которые вы используете.

Это делает вас лучшим разработчиком

Использование Rust на некоторое время меняет ваш взгляд на написание программного обеспечения. Вы снова задаетесь вопросом: "что на самом деле делает процессор, когда я это пишу". И вы можете перенести эти знания с собой на другие языки. Возвращаясь к языку JVM, я теперь думаю о каждом «новом» использовании оператора, потому что я понимаю, что он создает выделение в куче (которое нужно будет очистить позже), и думаю, действительно ли это необходимо. И, честно говоря, это настоящее испытание. Это новая ментальная модель, и на ее изучение может уйти некоторое время, и, на мой взгляд, просто бросать себе вызов и «тренировать» свой ум — это всегда хорошая практика.

Идан Зальцберг — технический директор Agoda