پیشگفتار
اساس زبان برنامهنویسی Rust در توانمندسازی است، هرچند همیشه تا این اندازه مشخص نبوده. مهم نیست چه کدی مینویسید، Rust شما را برای بهتر شدن توانمند میکند. شما را توانمند میسازد تا با اعتماد در زمینههای گوناگونی برنامه بنویسید. کاری که شاید پیش از این نمیتوانستید انجام دهید.
برای مثال «برنامههای سیستم» را در نظر بگیرید که با جزئیات سطح پایین مثل مدیریت حافظه، نمایش و ساختمان دادهها و همزمانی(Concurrency) سروکار داشته باشد. سابقاً این قلمرو تا اندازهای محرمانه محسوب میشد که تنها برای افراد کمی که سال ها وقت خود را صرف یادگیری مفاهیم پیچیده آن کردهاند قابل دسترسی بود. و حتی چنین افرادی در برخورد با این مقوله با دقت و توجه بسیار برخورد میکنند. چرا که خرابکاری، مشکلات امنیتی یا ایراد در کد آنها نیز بسیار ممکن است.
زبان Rust این موانع را با از بین بردن دردسرهای قدیمی و ارائه یک مجموعه ابزار کارآمد و کاربرپسند از میان برمیدارد. برنامهنویسهایی که می خواهند به کنترل سطح پایین «شیرجه بزنند» میتوانند بدون تحمل خطر خرابی و چالههای امنیتی شایع یا یادگرفتن پیچیدگیهای استفاده از ابزار بیثبات موجود، از Rust استفاده کنند. این زبان بطور طبیعی برای راهنمایی شما به سمت کد قابل اتکا که در عین حال از لحاظ سرعت و استفاده از حافظه بهینه باشد طراحی شده.
حتی برنامهنویسهایی که پیش از این با کد سطح پایین کار میکردند میتواند برای جاهطلبی بیشتر از Rust استفاده کنند! مثلاً، افزودن پردازش موازی(Parallelism) به برنامه در Rust عملیات نسبتاً کم خطری است: کامپایلر ایرادات کلاسیکِ و قدیمی را برای شما پیدا می کند. و میتوانید مطمئن، روی بهینهسازیهای پیچیدهتر در کد خود تمرکز کنید. بدون اینکه نگران درگیری با مشکلات و آسیبپذیریهای جدید در برنامه باشید.
اما نکته اینجاست که Rust محدود به برنامهنویسی سیستم هم نیست. Rust به اندازه کافی برای ساخت نرمافزارهای خط فرمان، وب سرورها و برنامههای دیگری که در ادامه این کتاب از آنها مثال خواهیم زد شیوا و انعطافپذیر است. کار کردن با Rust به شما مهارتهایی میآموزد که میتوانید به شاخههای دیگر منتقل کنید. میتوانید برای ساخت یک برنامه تحت وب Rust را بیاموزید و همان تواناییهای کسب شده را در برنامهای برای بورد Raspberry Pi خود به کار ببرید.
این کتاب پتانسیل Rust برای توانمندسازی کاربرانش را مدنظر میگیرد و تلاش میکند کتابی دوستانه و قابل دسترسی نه تنها برای بالابردن توانایی و دانش شما در Rust بلکه برای بالابردن سطح اطمینان و قدرت شما به عنوان یک برنامهنویس باشد. پس شروع کنید و آماده یادگیری باشید، به جامعه Rust خوش آمدید!
— Nicholas Matsakis و Aaron Turon