• Jobs
  • Phát triển nghề nghiệp
    • Remote work
    • Kỹ năng làm việc IT
    • Developer
    • Data Science – Machine Learning – AI
    • IT gurus
    • Business Analyst
    • Project Manager
    • Thiết kế UIUX
    • IT trong công ty non-tech
  • Kỹ năng tìm việc
    • Tìm việc IT cần biết
    • Phỏng vấn IT
    • Câu hỏi phỏng vấn
    • CV xin việc
    • Đàm phán lương
    • Mô tả công việc
  • Công nghệ
    • Công nghệ ứng dụng IT
    • Ngôn ngữ lập trình
    • Kiến thức công nghệ
  • Lương-Xu hướng
    • Lương bổng phúc lợi
No Result
View All Result
  • Jobs
  • Phát triển nghề nghiệp
    • Remote work
    • Kỹ năng làm việc IT
    • Developer
    • Data Science – Machine Learning – AI
    • IT gurus
    • Business Analyst
    • Project Manager
    • Thiết kế UIUX
    • IT trong công ty non-tech
  • Kỹ năng tìm việc
    • Tìm việc IT cần biết
    • Phỏng vấn IT
    • Câu hỏi phỏng vấn
    • CV xin việc
    • Đàm phán lương
    • Mô tả công việc
  • Công nghệ
    • Công nghệ ứng dụng IT
    • Ngôn ngữ lập trình
    • Kiến thức công nghệ
  • Lương-Xu hướng
    • Lương bổng phúc lợi
No Result
View All Result
No Result
View All Result
  • Jobs
  • Phát triển nghề nghiệp
  • Kỹ năng tìm việc
  • Công nghệ
  • Lương-Xu hướng

Rust là gì và tại sao ngôn ngữ lập trình này được yêu thích đến vậy?

Hà Vân by Hà Vân
October 5, 2021
in Developer, Ngôn ngữ lập trình
0
0
Ngôn ngữ lập trình Rust là gì
0
SHARES
9.4k
VIEWS
Share on FacebookShare on Twitter

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.

Nhưng nếu bạn chưa sử dụng Rust, bạn có thể sẽ tự hỏi: Rust là gì? tại sao nó lại đặc biệt và điều gì khiến nó trở nên phổ biến đối với các developer? Tại sao gần đây Rust lại được sử dụng nhiều trong các lĩnh vực khoa học? Liệu tôi có nên học nó? Bài viết dưới đây sẽ mang đến cho bạn câu trả lời.

Ngôn ngữ lập trình 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 một cách đơn giản, Rust là ngôn ngữ lập trình cấp thấp (low level), định kiểu tĩnh (statically typed), là ngôn ngữ lập trình đa dụng (multi-paradigm), tập trung vào sự an toàn và hiệu suất.

Rust giải quyết các vấn đề mà C / C ++ đã phải vật lộn trong một thời gian dài, chẳng hạn như lỗi bộ nhớ và xây dựng các chương trình đồng thời.

Trên StackOverflow blog, Jake Goulding người đang đang có đóng góp hàng đầu về Rust (top Rust contributor) trên nền tảng này cho biết: “câu trả lời ngắn gọn (là tại sao mọi người yêu thích Rust) là Rust giải quyết những vấn đề (pain points)  tồn tại trong rất nhiều ngôn ngữ lập trình khác, có sự phát triển vững chắc và có ít hạn chế”.

Lịch sử phát triển ngôn ngữ lâp trình Rust
Lịch sử phát triển ngôn ngữ lâp trình Rust với 5 năm liền là ngôn ngữ lập trình được yêu thích. Ảnh Evrone

Những lĩnh vực ứng dụng Rust

Vậy Rust thích hợp cho những lĩnh vực nào? Rust là một ngôn ngữ cấp thấp (low level), nó hữu ích khi bạn cần khai thác nhiều hơn các tài nguyên mà bạn có. Vì Rust là ngôn ngữ lập trình statically typed, nó sẽ ngăn chặn một số lớp lỗi nhất định trong quá trình biên dịch. Một số lĩnh vực có thể sử 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.

Ngày có nhiều công ty sử dụng Rust cho các sản phẩm của họ. Có thể kể một số dự án hay sản phẩm tiêu biểu:

  • Amazon phát triển công nghệ ảo hóa Firecracker sử dụng Rust.
  • Các công ty như Dropbox, Yelp, Coursera hay Cloudflare dùng Rust cho các sản phẩm của họ.
  • Một số hệ điều hành được xây dựng bằng Rust: Redox, intermezzOS, QuiltOS, Rux, Tock
  • Bạn có thể xem trên thêm các dự án dùng Rust tại đây

Những đặc điểm nổi trội của ngôn ngữ lập trình Rust

1.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. Thật không may, quản lý thủ công đi kèm với rất nhiều vấn đề trong các ngôn ngữ như C. Mặc dù có sự hiện diện của các công cụ như Valgrind, việc nắm bắt các vấn đề về quản lý bộ nhớ rất khó. Rust ngăn chặn những vấn đề này. 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. Hơn nữa, nếu bạn muốn thực hiện việc tối ưu hóa theo cách giống như C, bạn có thể làm điều đó trong khi tách chúng ra khỏi phần còn lại của code bằng unsafe keyword.

2.Quản lý đồng thời (concurrency) 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.

3. 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.

Bạn có thể xem thêm các ưu điểm của Rust trên blog Kipalog

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ác framework của Rust

Các framework chính của Rust ecosystem bao gồm:

  • actix-web;
  • rocket;
  • tide;
  • warp.

Bạn có thể xem sự so sánh các các framework này trên blog của Luca Palmieri, khá chi tiết.

Lộ trình phát triển của ngôn ngữ lập trình Rust

Các kế hoạch phát triển của Rust trong năm 2021 có thể tìm thấy trên Rust Blog

Cũng trên blog này bạn cũng có thể xem kết quả khảo sát về ngôn ngữ lập trình Rust trong năm vừa qua

Nguồn tài liệu tìm hiểu về ngôn ngữ lập trình Rust

Tài liệu tham khảo về Rust

  • Học Rust: https://www.rust-lang.org/learn
  • Sách The Rust Programming Language của Steve Klabnik and Carol Nichols.
  • Tour of Rust: các kiến thức cơ bản về Rust
  • Exercism Rust track. Nếu bạn muốn có thêm kinh nghiệm về ngôn ngữ và cú pháp của nó, thì Exercism là một lựa chọn tốt..
  • Rust by example. Tập hợp các bài tập về Rust.
  • Rust cheat sheet. Nếu bạn muốn xem nhanh các khái niệm quan trọng nhất của Rust thì vào trang này.
  • Rustlings. Một bộ sưu tập các bài tập Rust.
  • Rust external web APIs: The definitive guide

Kết luận

Bất kể bạn đang quen thuộc và đang yêu thích ngôn ngữ lập trình nào, hoặc đang chọn một ngôn ngữ lập trình để học, 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 liệu Rust có phải là ngôn ngữ lập trình tiếp theo của bạn không!

Tài liệu tham khảo cho bài viết này:

  • https://stackoverflow.blog/2020/06/05/why-the-developers-who-use-rust-love-it-so-much/
  • https://doc.rust-lang.org/book/
  • https://serokell.io/blog/rust-guide

Bạn đánh giá bài viết thế nào?

Average rating 4.8 / 5. Vote count: 18

No votes so far! Be the first to rate this post.

Tags: ngôn ngữ lập trìnhngôn ngữ lập trình rustRust là gì
Previous Post

Cơ sở dữ liệu NoSQL là gì và tất cả những gì cần biết về NoSQL Database

Next Post

21 dự đoán về xu hướng phát triển phần mềm năm 2021

Hà Vân

Hà Vân

Related Posts

serverless developer

Serverless là gì và học gì để làm việc với serverless?

June 2, 2022
mục tiêu nghề nghiệp kỹ sư phần mềm

Làm thế nào để kỹ sư phần mềm xây dựng mục tiêu nghề nghiệp hiệu quả

January 11, 2022
Stack Overflow

Mọi người sao chép và dán từ Stack Overflow thường xuyên như thế nào?

January 9, 2022
10 Python framework hàng đầu để phát triển web năm 2022

10 Python framework hàng đầu để phát triển web năm 2022

December 28, 2021
PyTorch và TensorFlow: nên chọn framework nào trong năm 2022?

PyTorch và TensorFlow: nên chọn framework nào trong năm 2022?

December 20, 2021
Code refactoring - Tái cấu trúc mã nguồn

Code refactoring là gì và những kỹ thuật để tái cấu trúc mã nguồn

April 18, 2022
Next Post
21 dự đoán về xu hướng phát triển phần mềm năm 2021

21 dự đoán về xu hướng phát triển phần mềm năm 2021

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

About ITGuru.vn

  • Trang Chủ ITguru.vn
  • Về chúng tôi
  • Thỏa thuận sử dụng
  • Quy định bảo mật
  • Quy chế hoạt động
  • Liên hệ ITguru

Nhà tuyển dụng

  • Đăng tuyển
  • Bảng giá dịch vụ

Người tìm việc

  • Công ty
  • Việc làm IT
  • Đăng hồ sơ
  • Top IT Jobs
  • About ITguru Blog
  • Viết bài cùng ITguru

© 2022 ITguru.vn - Web site tuyển dụng và phát triển nghề nghiệp IT

No Result
View All Result
  • About ITguru Blog
  • Viết bài cùng ITguru

© 2022 ITguru.vn - Web site tuyển dụng và phát triển nghề nghiệp IT

Welcome Back!

Login to your account below

Forgotten Password?

Retrieve your password

Please enter your username or email address to reset your password.

Log In