Cuvânt înainte

Nu a fost mereu atât de clar, dar limbajul de programare Rust este fundamental despre împuternicire: indiferent de ce tip de cod ești obișnuit să scrii acum, Rust te împuternicește să ajungi mai departe, să programezi cu încredere într-o gamă mai largă de domenii decât ai făcut-o până acum.

De exemplu, să luăm activitățile la nivel de "sistem", care implică detalii de nivel jos legate de managementul memoriei, reprezentarea datelor și concurență. În mod tradițional, această sferă a programării este percepută ca fiind obscură, accesibilă numai pentru câțiva aleși ce și-au dedicat ani de zile pentru a învăța cum să ocolească capcanele infame ale acesteia. Chiar și cei care lucrează în acest domeniu o fac cu mare precauție, pentru a nu-și expune codul la exploatări, căderi sau erori de corupere.

Rust dărâmă aceste bariere, eliminând vechile capcane și oferă un set de instrumente rafinat și prietenos care să te sprijine pe drumul tău. Programatorii care simt nevoia să coboare în straturile inferioare ale controlului pot face acest lucru cu Rust, fără a prelua riscurile obișnuite legate de crash-uri sau vulnerabilități de securitate și fără a fi nevoiți să stăpânească subtilitățile unui toolchain capricios. Mai mult de atât, limbajul este conceput să te îndrume natural către un cod fiabil, eficient din punct de vedere al vitezei și utilizării memoriei.

Programatorii care lucrează deja cu cod de nivel jos pot adopta Rust pentru a-și extinde orizonturile. De pildă, integrarea paralelismului în Rust presupune un risc relativ mic: erorile clasice sunt detectate de către compilator. Și poți încerca optimizări mai îndrăznețe în codul tău fiind încrezător că nu vei insera accidental crash-uri sau breșe de securitate.

Și totuși, Rust nu se limitează la programarea sistemică de nivel jos. Este destul de expresiv și ergonomic, astfel încât să facă scrierea aplicațiilor de consolă, a serverelor web, și a multor altor tipuri de programe o experiență plăcută - vei descoperi exemple simple ale acestor aspecte mai târziu în carte. Lucrând cu Rust, îți dezvolți competențe transferabile de la un domeniu la altul; poți învăța Rust prin scrierea unei aplicații web, apoi aplicând aceleași cunoștințe pentru a programa pe un Raspberry Pi.

Această carte adoptă deplin capacitățile Rust de a-și împuternici utilizatorii. Este un text prietenos și accesibil, menit să te ajute să avansezi nu doar în cunoașterea Rust, ci și în extinderea ambițiilor și încrederii tale ca programator în general. Deci, scufundă-te în lectură, pregătește-te să înveți - și bun venit în comunitatea Rust!

— Nicholas Matsakis și Aaron Turon