Bạn có nên thích ngôn ngữ Rust hơn C và C ++ trong các dự án tương lai của mình không?
Đây là ý kiến của Mark Russinovich – Giám đốc Công nghệ Microsoft Azure, người đã khuyên các nhà phát triển nên tránh sử dụng ngôn ngữ lập trình C hoặc C ++ trong các dự án mới và thay vào đó sử dụng Rust do lo ngại về bảo mật và độ tin cậy.
Rust hiện được sử dụng trong Dự án nguồn mở Android (AOSP), tại Meta, tại Amazon Web Services, tại Microsoft cho các phần của Windows và Azure, trong nhân Linux và ở nhiều nơi khác. Ngôn ngữ sinh ra từ Mozilla ngày nay được đánh giá cao vì “đảm bảo an toàn cho bộ nhớ”, giúp giảm nhu cầu quản lý thủ công bộ nhớ của một chương trình và do đó, nguy cơ về các lỗ hổng bảo mật liên quan đến gánh nặng bộ nhớ trên các dự án lớn được viết bằng “bộ nhớ không an toàn” C hoặc C ++, bao gồm Chrome, Android, nhân Linux và Windows.
Microsoft đã đưa ra quan điểm đó vào năm 2019 sau khi tiết lộ rằng 70% các bản vá của họ trong 12 năm qua là các bản sửa lỗi về an toàn bộ nhớ, phần lớn là do Windows được viết chủ yếu bằng C và C ++. Nhóm Chrome của Google đã đưa ra phát hiện của riêng họ vào năm 2020, tiết lộ rằng 70% tất cả các lỗi bảo mật nghiêm trọng trong cơ sở mã của Chrome là lỗi quản lý bộ nhớ và lỗi bảo mật. Mã chủ yếu được viết bằng C ++.
Một sự kế thừa hoàn hảo cho C và C++?
Bảo lưu duy nhất của CTO Azure về việc sử dụng Rust là nó tốt hơn C và C + cho các dự án mới yêu cầu ngôn ngữ không phải GC (Garbage Collector- Trình thu gom rác. Không cần thu gom rác). Công cụ GC xử lý việc quản lý bộ nhớ. Go, ngôn ngữ của Google, là ngôn ngữ thu gom rác, trong khi dự án Rust khẳng định điều ngược lại. Các kỹ sư AWS thích Rust hơn Go vì tính hiệu quả mà nó mang lại mà không cần GC.
“Nói về ngôn ngữ, đã đến lúc ngừng bắt đầu bất kỳ dự án mới nào trong C / C ++ và sử dụng Rust cho các tình huống cần ngôn ngữ không phải GC. Vì lý do bảo mật và độ tin cậy, ngành công nghiệp nên tuyên bố những ngôn ngữ này không được dùng nữa”. Đối với phần sau, Rust là sự kế thừa đầy hứa hẹn cho C và C ++, đặc biệt là cho lập trình cấp hệ thống, các dự án cơ sở hạ tầng, phát triển phần mềm nhúng, v.v. – nhưng không phải ở mọi nơi và không phải trong tất cả các dự án.
Xin nhắc lại, cùng với C ++, Meta gần đây đã quảng bá Rust là ngôn ngữ phía máy chủ được hỗ trợ chính. AWS đầu tư vào Rust cho phần mềm cơ sở hạ tầng. Các kỹ sư Azure đã sử dụng nó để xây dựng các công cụ đám mây để kiểm tra các mô-đun WebAssembly trong Kubernetes. Mặt khác, nhóm Chrome gắn bó với C ++ trong tương lai gần, mặc dù quan tâm đến Rust; Google cho biết chỉ cần chuyển sang Rust sẽ không loại bỏ được một tỷ lệ đáng kể các lỗ hổng bảo mật trong nhiều năm.