Xin chào mọi người lại là Chaoo đây =)))))
Lâu lắm rồi mới lại chia sẻ với mọi người sau thời gian dài lặn hơi sâu. Hôm nay mình xin giới thiệu với các bạn 1 ngôn ngữ mới cho tương lai là Rust. Hãy cùng tìm hiểu Rust là gì và cách cài đặt thông qua bài viết này nhé. Nếu hay mọi người cho mình xin 1 like và 1 subscribe ạ.
Theo các cuộc khảo sát hàng năm của StackOverflow, Rust là ngôn ngữ lập trình được yêu thích nhất trong năm năm liên tiếp gần đây. Trang web chia sẻ code GitHub cho biết Rust là ngôn ngữ phát triển nhanh thứ hai trên nền tảng này vào năm 2019, tăng 235% so với năm trước. Hầu hết những người đã dùng thử Rust đều muốn tiếp tục sử dụng nó với 86,1% người tham gia khảo sát năm 2020 trả lời như vậy.
RUST LÀ GÌ
Rust là ngôn ngữ lập trình được tạo ra vào năm 2006 bởi Graydon Hoare như một dự án phụ khi đang là developer tại Mozilla. Rust pha trộn hiệu suất của các ngôn ngữ như C++ với cú pháp thân thiện hơn, tập trung vào code an toàn và được thiết kế tốt giúp đơn giản hóa việc phát triển. Các phần của trình duyệt Firefox của Mozilla được viết bằng Rust và các nhà phát triển tại Microsoft được cho là sử dụng nó để mã hóa lại các phần của hệ điều hành Windows.
Nói đơn giản là Rust là 1 ngôn ngữ lập trình bậc thấp giống với C và C++ nhưng nó tập trung vào sự an toàn và hiệu quả.
Dưới đây là bảng xếp hạng ngôn ngữ được yêu thích theo thống kê của stackoverflow
Những lĩnh vực ứng dụng Rust
- Xây dựng các công cụ command-line mạnh mẽ, đa nền tảng.
- Các dịnh vụ phân tán trực tuyến (Distributed online services).
- Các thiết bị nhúng (Embedded devices).
- Các ứng dụng machine learning.
- Bất kỳ nơi đâu cần lập trình hệ thống như các browser engines.
- Blockchain
Những đặc điểm nổi trội của ngôn ngữ Rust
Quản lý bộ nhớ
Nếu bạn muốn lập trình hệ thống, bạn cần điều khiển bộ nhớ ở mức thấp. So với các ngôn ngữ lập trình khác, Rust có khả năng điều khiển bộ nhớ khi xử lý lệnh một cách dễ dàng. Rust sở hữu những tính năng cũng như công cụ chuyên biệt để quản lý bộ nhớ cấp phát. Đặc biệt, trong lập trình hệ thống, Rust giúp giảm thiểu tối đa việc gặp lỗi khi thực thi lệnh. Hệ thống quyền sở hữu của Rust phân tích việc quản lý bộ nhớ của chương trình tại thời điểm biên dịch, đảm bảo rằng lỗi do quản lý bộ nhớ kém sẽ không thể xảy ra và việc thu thập rác là không cần thiết
Quản lý đồng thời dễ dàng
Với tính năng borrow checker, Rust có thể ngăn chặn các cuộc đua dữ liệu tại thời điểm biên dịch. Các cuộc chạy đua dữ liệu xảy ra khi hai luồng truy cập vào cùng một bộ nhớ cùng một lúc và chúng có thể dẫn đến một số hành vi khó đoán, khó lường. Rất may, Rust có thể ngăn chặn các hành vi không xác định này.
Zero-cost abstractions
Với Zero-cost abstractions, Rust đảm bảo rằng không có runtime overhead cho các 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. Điều này cực kỳ quan trọng nếu biết rằng hơn 70% các vấn đề do Microsoft phải xử lý là liên quan đến các lỗi bộ nhớ. Tương tự với Google Chrome.
Một số tính năng nổi trội của ngôn ngữ lập trình Rust
Borrow checker
Như trên đã đề cập, borrow checker trong Rust ngăn chặn các cuộc chạy đua dữ liệu tại thời điểm biên dịch. Các cuộc đua dữ liệu xảy ra khi cùng một bộ nhớ được truy cập bởi hai luồng cùng một lúc. Rust ngăn chặn các loại hành vi không xác định này.
Ownership
Không giống như một số ngôn ngữ khác tìm kiếm bộ nhớ không được sử dụng trong khi chương trình đang chạy, Rust quản lý thông qua một hệ thống quyền sở hữu (ownership). Nó bao gồm một tập hợp các quy tắc được kiểm tra bởi trình biên dịch.
Mỗi giá trị trong Rust có một biến được gọi là owner (chủ sở hữu). Chỉ có thể có một owner tại một thời điểm. Quyền sở hữu bị loại bỏ khi biến vượt ra ngoài phạm vi, về cơ bản có nghĩa là làm sạch bộ nhớ được cấp phát cho một heap khi biến không thể được truy cập nữa.
Các quy tắc sở hữu cung cấp các lợi ích như an toàn bộ nhớ kèm theo kiểm soát tốt hơn đối với bộ nhớ, khác với các ngôn ngữ lập trình khác.
Lifetime
Trình biên dịch Rust sử dụng Lifetime để theo dõi tính hợp lệ của các tham chiếu. “Reeference” của một biến là một con trỏ trỏ đến một biến cụ thể. Bạn có thể sử dụng chú thích Lifetime để thông báo cho người kiểm tra mượn về thời gian các tham chiếu sẽ có hiệu lực. Borrow checker có thể suy ra lifetime chính xác trong nhiều trường hợp nhưng đôi khi có thể cần sự trợ giúp của các developers. Tất cả các tính năng này giúp tối ưu hóa việc quản lý bộ nhớ bằng Rust. Điều này làm cho nó trở thành ngôn ngữ lập trình được lựa chọn cho đám mây.
Cài đặt Rust
Sử dụng rustup (recommended)
Kết Luận
- Rust là một ngôn ngữ lập trình mà bạn nên tìm hiểu. Rust có những tính năng và cách vận hành đặc biệt hấp dẫn khiến cho nhiều lập trình viên trên thế giới yêu thích. Nếu bạn đang tìm một ngôn ngữ lập trình dự án của mình với yêu cầu code nhanh và hiệu quả, an toàn hơn thì có lẽ bạn nên xem xét Rust. Rust hiện tại đang nổi lên như là một ngôn ngữ cho tương lai phục vụ cho web3 còn web3 là gì bài sau mình sẽ chia sẻ mọi người sau nhé. See ya!