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