Ngôn ngữ lập trình được tạo ra do chiếc thang máy hỏng(P1)

NamDev

Guest
Khắc phục nhược điểm của Java, C và C++
Từ chiếc thang máy hỏng, Hoare quyết định tạo ra Rust. Đây là ngôn ngữ lập trình linh hoạt, thân thiện và ít lỗi, nhằm giảm thiểu các sự cố gây khó chịu như trên. Tên gọi Rust được đặt theo loại bệnh thực vật gây ra bởi nấm cực kỳ khỏe mạnh.

Sau 17 năm, Rust trở thành một trong những ngôn ngữ lập trình phổ biến dù còn non trẻ. Theo MIT Technology Review, có khoảng 2,8 triệu lập trình viên sử dụng Rust. Các công ty như Amazon hay Microsoft thậm chí xem đây là ngôn ngữ lập trình của tương lai.

So với ngôn ngữ lập trình khác, Rust được đánh giá cao khi giải quyết một số vấn đề phổ biến trên các ngôn ngữ như C và C++, nổi bật là lỗi tràn bộ nhớ.

Có thể ví bộ nhớ máy tính như tấm bảng phấn. Khi phần mềm hoạt động, dữ liệu được ghi vào bảng để kiểm tra, sau đó xóa đi nếu không còn cần thiết.

Những ngôn ngữ lập trình có cách quản lý bộ nhớ khác nhau. C hay C++ cho phép lập trình viên kiểm soát linh hoạt cách thức và thời điểm phần mềm ghi dữ liệu. Dù vậy, điều đó tạo ra một số nhược điểm.

Cụ thể, sự kiểm soát yêu cầu lập trình viên theo dõi cẩn thận vùng bộ nhớ được ghi và thời điểm cần dọn dẹp dữ liệu. Nếu vô tình quên dọn dẹp, phần mềm có thể ghi lên vùng đã chứa dữ liệu.

Để giảm rủi ro tràn bộ nhớ, các ngôn ngữ lập trình như Java, JavaScript hay Python trang bị thành phần Garbage Collector, có thể tìm kiếm và dọn dẹp định kỳ các thành phần mà chương trình không còn dùng đến.

Tính năng trên yêu cầu nhiều tài nguyên để vận hành. Do đó, Hoare đã thiết kế ngôn ngữ cân bằng giữa mức tiêu thụ tài nguyên và dọn dẹp bộ nhớ.

Khác với Java hay Python, Rust sẽ tự động tìm kiếm vị trí chứa dữ liệu cần dọn dẹp. Tuy nhiên, lập trình viên cần làm quen với quy tắc viết mã nghiêm ngặt, về cách sử dụng và sao chép dữ liệu trong phần mềm.

Nói cách khác, những đoạn mã trong Rust sẽ khó viết, nhưng an toàn với bộ nhớ do không thể gây lỗi. Ngoài ra, Rust có thể ngăn chặn việc nhiều luồng mã cùng truy cập một vị trí bộ nhớ, có thể gây lỗi khác.
 
Bên trên