Предисловие
Это не всегда было очевидно, но язык программирования Rust по своей сути посвящён расширению возможностей: независимо от того, какой код вы пишете сейчас, Rust позволяет вам достигать большего, программировать с уверенностью в более широком спектре областей, чем раньше.
Возьмите, например, работу «системного уровня», которая имеет дело с низкоуровневыми деталями управления памятью, представления данных и конкурентности. Традиционно эта область программирования считается arcane, доступной лишь избранным, посвятившим годы изучению, чтобы избежать её печально известных подводных камней. И даже те, кто ею занимается, делают это с осторожностью, чтобы их код не стал уязвимым для эксплойтов, сбоев или повреждений.
Rust ломает эти барьеры, устраняя старые подводные камни и предоставляя дружественный, отполированный набор инструментов, чтобы помочь вам в этом пути. Программисты, которым нужно «погружаться» в низкоуровневый контроль, могут делать это с Rust, не беря на себя обычные риски сбоев или уязвимостей безопасности и не вынуждены изучать тонкости капризного инструментария. Более того, язык разработан так, чтобы естественно направлять вас к надёжному коду, эффективному по скорости и использованию памяти.
Программисты, уже работающие с низкоуровневым кодом, могут использовать Rust, чтобы поднять свои амбиции. Например, внедрение параллелизма в Rust — относительно низкорискованная операция: компилятор поймает классические ошибки за вас. И вы можете заняться более агрессивными оптимизациями в своём коде с уверенностью, что не случайно внесёте сбои или уязвимости.
Но Rust не ограничивается низкоуровневым системным программированием. Он достаточно выразителен и эргономичен, чтобы создавать CLI-приложения, веб-серверы и многие другие виды кода — вы найдёте простые примеры обоих позже в книге. Работа с Rust позволяет вам развивать навыки, которые переносятся из одной области в другую; вы можете выучить Rust, написав веб-приложение, а затем применить эти же навыки для целевой платформы, такой как Raspberry Pi.
Эта книга полностью принимает потенциал Rust, чтобы расширять возможности своих пользователей. Это дружественный и доступный текст, призванный помочь вам повысить не только ваши знания Rust, но и ваш охват и уверенность как программиста в целом. Так что погружайтесь, готовьтесь учиться — и добро пожаловать в сообщество Rust!
— Николас Матсакис и Аарон Турон