Rust — ngôn ngữ khiến mình 'sợ' lúc mới học nhưng 'mê' lúc dùng quen
🦀 Rust — ngôn ngữ khiến mình "sợ" lúc mới học nhưng "mê" lúc dùng quen
Mình nhớ hồi đầu năm nay, mình quyết định dành thời gian học Rust sau bao lần nghe thiên hạ khen "memory-safe", "nhanh như C/C++ nhưng không lo segfault". Thiệt tình, mới mở cuốn The Book ra đọc qua syntax, mình hơi choáng — nào là ownership, borrowing, lifetime… nghe mà muốn xách dép chạy luôn. Nhưng mà mình cố ngồi lại, làm vài cái project nhỏ, rồi mới thấm cái hay.
Ảnh: Lukas Blazek — Pexels
Điều đầu tiên làm mình ấn tượng là trình compiler của Rust. Nó khó tính dữ lắm, kiểu "mày sai rồi, sửa lại đi" — nhưng mà nó chỉ chỗ sai rất chi tiết, có khi còn gợi ý cách sửa luôn. Trong cộng đồng Rust có câu vui: "nếu code compile được thì chạy ngon lành". Nghe hơi quá nhưng thực tế gần như vậy. Hồi xưa mình viết C++, debug memory leak tốn cả buổi; qua Rust thì cái vụ đó gần như biến mất. Compiler nó bắt mình viết đúng từ đầu, chứ không để lỗi chạy rồi mò.
Rust còn có Cargo — package manager và build tool gộp chung một chỗ. Thiệt tình, mình qua từ C++ với Makefile rồi gặp Cargo thấy sướng gì đâu. cargo new, cargo build, cargo test, cargo clippy — đủ hết, khỏi cấu hình lằng nhằng. Mấy bạn mới học cứ hình dung Cargo giống như npm nhưng chạy nhanh hơn và ít lỗi hơn.
Ảnh: ThisIsEngineering — Pexels
Nhiều người nghĩ Rust chỉ để làm hệ thống (OS, driver, kernel). Nhưng giờ đây Rust phủ sóng khắp nơi: viết CLI tool xịn xò với clap + ratatui, làm web backend với axum hay actix-web, compile ra WASM chạy trên browser, thậm chí nhúng vào firmware. Công ty mình đang chuyển mấy service quan trọng từ Python qua Rust — performance tăng gấp 3–4 lần, chi phí server giảm thấy rõ, mà bug runtime cũng ít hẳn.
Tóm lại, tuy học Rust hơi cực lúc đầu, nhưng mình nghĩ bất kỳ ai làm dev lâu năm cũng nên thử. Nó dạy mình tư duy về bộ nhớ và concurrency một cách bài bản. Còn nếu bạn mới bắt đầu thì đừng lo — cứ cài Rustup, chạy cargo new hello-rust, rồi code đại đi. Compiler nó chỉ hết cho. 🦀