Lời tựa

Rust không phải là ngôn ngữ quá tường minh và dễ học đối với người mới, nhưng về cơ bản nó sẽ trao quyền - tạo cảm giác làm chủ ngôn ngữ cho người sử dụng: bất kể bạn đang lập trình ngôn ngữ nào hiện tại, Rust sẽ cho phép bạn vươn xa hơn, tự tin lập trình trong nhiều lĩnh vực rộng hơn so với những gì bạn làm trước đây.

Lấy ví dụ đối với lập trình hệ thống, làm việc với ngôn ngữ lập trình bậc thấp trong việc quản lý bộ nhớ, biểu diễn dữ liệu, lập trình song song và đồng thời. Theo truyền thống, lĩnh vực lập trình này được coi là phức tạp, chỉ một số ít người với trình độ chuyên môn cao cùng với đó là sự tận tâm dành nhiều năm nghiên cứu mới tránh được những rủi ro nguy hiểm mà nó đem lại. Và ngay cả với những người học, tiếp cận với nó cũng phải làm việc hết sức thận trọng nếu không mã nguồn của họ có thể dễ dàng bị khai thác, làm hỏng hóc hay phá hủy hệ thống.

Rust phá vỡ những rào cản này bằng việc loại bỏ những rủi ro cũ và cung cấp một bộ công cụ thân thiện, được cải thiện hàng giờ để giúp bạn trong suốt quá trình sử dụng. Các lập trình viên cần đi sâu vào kiểm soát hệ thống cũng có thể làm đối với Rust mà không phải chịu những rủi ro thông thường về sự cố hỏng chương trình, lỗ hổng bảo mật, ... Hơn thế nữa, Rust được thiết kế để hướng dẫn bạn một cách tự nhiên, hiệu quả với mã nguồn đáng tin cậy, hiệu quả về tốc độ và sử dụng bộ nhớ.

Những lập trình viên đã và đang làm việc thuần thục với ngôn ngữ lập trình cấp thấp có thể sử dụng Rust để nâng cao hiệu quả làm việc của họ. Ví dụ đối với lập trình song song (parallelism) trong Rust là công việc rủi ro tương đối thấp: trình biên dịch sẽ bắt các lỗi cổ điển cho bạn. Do đó bạn có thể tối ưu hóa mã nguồn của mình và tự tin rằng sẽ không vô tình tạo ra những sự cố hay lỗ hổng bảo mật mới.

Nhưng Rust không giới hạn trong việc lập trình hệ thống ở mức thấp. Nó đủ đủ khả năng và sự tiện dụng để viết các ứng dụng CLI, máy chủ web và nhiều loại mã thông dụng khác - bạn sẽ tìm thấy trong các ví dụ trong phần sau của cuốn sách. Làm việc với Rust cho phép bạn xây dựng các kỹ năng chuyển đổi giữa các nền tảng; bạn có thể học Rust bằng cách viết một ứng dụng web, sau đó áp dụng các kỹ năng tương tự đó để phát triển tiếp các mục tiêu của bạn.

Cuốn sách này khai thác toàn bộ tiềm năng của Rust để trao quyền kiểm soát và sử dụng cho người dùng. Đây là một tài liệu thân thiện và dễ hiểu, dễ học nhằm giúp bạn nâng cao không chỉ kiến thức về Rust mà còn là về khả năng tiếp cận và sự tự tin của bạn với tư cách là là một lập trình viên nói chung. Vì vậy, hãy tham gia, sẵn sàng học hỏi - và chào mừng bạn đến với cộng đồng Rust!

— Nicholas Matsakis và Aaron Turon