Rust world(P1): Bước vào thế giới mới
Để xây dựng các ứng dụng backend, Scala & Java là 2 ngôn ngữ mà mình thường xuyên sử dụng. Chúng là những ngôn ngữ tốt với hiệu suất cao, tính ổn định và việc viết lách thuận tiện và dễ chịu. Sau 1 khoảng thời gian, mình quyết định bước chân đến những thế giới mới để tìm hiểu nhiều thứ hay ho hơn. Golang và Rust là 2 cái tên tiếp theo nhanh chóng xuất hiện trong đầu. Ban đầu, khá đắn đo trong việc lựa chọn học ngôn ngữ nào trước. Với vài bước lướt Google cơ bản, mình rất bất ngờ, không phải Golang mà là Rust – đứng top 1 trong danh sách các ngôn ngữ được yêu thích trong nhiều năm liền (theo khảo sát hàng năm của Stackoverflow). Lẽ dĩ nhiên, Rust nhanh chóng được lựa chọn.
I. Giới thiệu
Rust là một ngôn ngữ lập trình mã nguồn mở, được phát triển bởi Graydon Hoare tại Mozilla vào năm 2006. Ngôn ngữ này nhanh chóng thu hút sự quan tâm của cộng đồng với các ưu điểm vượt trội mà nó mang lại.
Hiệu năng vượt trội
Rust cung cấp hiệu năng cao: cả trong giai đoạn phát triển và runtime. Với Rust, bạn có thể viết mã có hiệu suất tương đương với C và C++. Nhỉnh hơn 1 chút với Golang và cho Java hít khói. Rust không những chạy nhanh mà còn tốn rất ít memory
Với Zero-cost abstractions, Rust đảm bảo rằng không có runtime overhead cho các lớp trừu tượng (abstraction) mà bạn sử dụng. Nói một cách đơn giản: sẽ không có sự khác nhau về tốc độ giữa code ở mức thấp và code được viết với abstractions
Tính an toàn
Rust có khả năng phát hiện & ngăn chặn các lỗi về sử dụng memory ngay từ giai đoạn compile-time. Với các ứng dụng concurrency, các developer thường xuyên đối mặt với vấn đề race-condition. Đây là 1 vấn đề khó đối với các developer ít kinh nghiệm. Việc tái hiện và sửa lỗi gặp khó khăn rất nhiều do đôi lúc nó mới xảy ra. Với Rust, chúng ta không còn nỗi lo này. Điều này thực sự tuyệt vời và là 1 bước đột phá. Như vậy, các đoạn mã tiềm ẩn lỗi nhanh chóng được phát hiện và sửa chữa, ngăn bug xảy ra từ trong trứng nước. Khi làm việc với Rust, chúng ta có thể hoàn toàn yên tâm về mức độ an toàn & chất lượng sản phẩm.
Đa nền tảng
Với Rust bạn có thể xây dựng rất nhiều loại ứng dụng:
- Xây dựng các công cụ command-line mạnh mẽ, đa nền tảng.
- Các thiết bị nhúng
- Các ứng dụng machine learning
- Làm website
- Xây dựng desktop & mobile app
II. Coding Time
Như bao ngôn ngữ khác, chúng ta sẽ bắt đầu với chương trình hello-world
Tạo 1 file main.rs với nội dung sau:
fn main() { println!("Hello world!"); }
Để chạy file main.rs, chúng ta có 2 hướng: sử dụng Rustc hoặc Cargo
Các bạn theo dõi cách cài đặt ở đây: https://doc.rust-lang.org/cargo/getting-started/installation.html
1. Sử dụng Rustc
Build code thành file nhị phân bằng lệnh: rustc main.rs
Trên Linux hoặc MacOs, chạy ứng dụng bằng lệnh: ./main
Trên Windows, ta chạy bằng lệnh: .\main.exe
2. Sử dụng Cargo
Cargo là package management tool official của Rust. Cargo có rất nhiều tính năng hữu ích để cải thiện chất lượng code và nâng cao tốc độ của lập trình viên. Chi tiết sẽ được mình trình bày ở bài khác.
Kiểm tra version của cargo trên máy bằng lệnh: cargo –version
Chúng ta cần tạo mới 1 project với cargo bằng lệnh: cargo new hello_world
Cargo sẽ sinh ra 1 project với cấu trúc sau
hello_world ├── Cargo.toml └── src └── main.rs
File Cargo.toml có nội dung như sau:
[package] name = "hello_world" version = "0.1.0" edition = "2021" [dependencies]
File main.rs vẫn với nội dung như phía trên
Để chạy ứng dụng, chúng ta sử dụng lệnh: cargo run
III. Tổng kết
Rust là một ngôn ngữ lập trình mạnh mẽ, an toàn và hiệu năng cao. Với Rust, ta có thể làm được đa dạng nhiều loại ứng dụng với độ tin cậy cao. Đây sẽ là 1 seri dài, từ việc tìm hiểu/làm quen với ngôn ngữ Rust đến việc sử dụng Rust framework để xây dựng ứng dụng. Phần 1 kết thúc tại đây, hẹn các bạn ở phần 2 với nội dung: các khái niệm cơ bản trong Rust