Graydon Hoare là lập trình viên của công ty phát triển trình duyệt web mã nguồn mở Firefox vào năm 2006. Hoare nhận thấy thang máy chung cư bị hỏng do lỗi phần mềm khi anh trở về nhà sau ngày làm việc tại Vancouver (Canada). Đó không phải lần đầu tiên tình trạng trên xảy ra.
"Thật lố bịch. Những người chuyên về máy tính như chúng ta không thể hỗ trợ thang máy hoạt động mà không bị hỏng, Hoare thốt lên.
Hoare, một lập trình viên, biết sự cố do lỗi bộ nhớ gây ra. Phần mềm vận hành thang máy thường được viết bằng C hoặc C++. Các ngôn ngữ lập trình nói trên dễ dẫn đến lỗi tràn bộ nhớ, mặc dù cho phép tạo mã nhanh và tinh gọn.
khắc phục nhược điểm của Java, C và C++
Hoare đã chọn tạo ra Rust từ thang máy hỏng. Để giảm bớt các sự cố gây khó chịu như trên, đây là một ngôn ngữ lập trình linh hoạt, thân thiện và ít lỗi. Tên của Rust được đặt theo một loại bệnh thực vật cụ thể do nấm cực kỳ mạnh gây ra.
Rust đã phát triển thành một trong những ngôn ngữ lập trình được sử dụng rộng rãi nhất khi còn là một đứa trẻ sau 17 năm. Ngôn ngữ lập trình được sử dụng rộng rãiMIT Technology ReviewKhoảng 2,8 triệu lập trình viên sử dụng Rust. Ngay cả các công ty như Amazon và Microsoft đã coi đây là ngôn ngữ lập trình của tương lai.
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++, đặc biệt là lỗi tràn bộ nhớ, so với các ngôn ngữ lập trình khác.
Tấm bảng phấn có thể được so sánh với bộ nhớ của máy tính. Khi phần mềm khởi chạy, dữ liệu được ghi vào bảng để kiểm tra, sau đó nếu không còn cần, đi.
logo ngôn ngữ lập trình Rust. Ảnh:Bleeping Computer. |
Các ngôn ngữ lập trình khác nhau có các cách quản lý bộ nhớ khác nhau. C hoặc 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. Tuy nhiên, điều đó có một số nhược điểm.
Cụ thể, việc 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. Phần mềm có thể ghi lên vùng đã chứa dữ liệu nếu phần mềm vô tình quên dọn dẹp.
Các ngôn ngữ lập trình như Java, JavaScript hoặc 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, để giảm rủi ro tràn bộ nhớ.
Nhiều tài nguyên phải được sử dụng để vận hành các tính năng trên. Do đó, Hoare đã tạo ra một 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ớ.
Rust sẽ tự động tìm kiếm vị trí chứa dữ liệu cần dọn dẹp, không giống như Java hoặc Python. Tuy nhiên, lập trình viên cần làm quen với các nguyên 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, các đoạn mã Rust sẽ khó viết nhưng an toàn với bộ nhớ vì chúng 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 vào cùng một vị trí bộ nhớ, điều này có thể dẫn đến các lỗi khác.
Được hậu thuẫn từ sớm
Hoare đã làm việc trong lĩnh vực phần mềm mười năm tại thời điểm thiết kế Rust. Ban đầu, Rust chỉ là một dự án phụ tại Mozilla. Khi đưa đồng nghiệp ra thử nghiệm, Hoare nhận được phản ứng trái ngược. Một số người nói rằng Rust rất hào hứng, trong khi những người khác nói rằng nó không thể được.
Tuy nhiên, dàn lãnh đạo Mozilla đã nhận ra tiềm năng của Rust. Do đó, Firefox là một trình duyệt phức tạp với các rủi ro tràn bộ nhớ có thể xảy ra bất cứ lúc nào.
Một trong những người ủng hộ Rust là Patrick Walton, lập trình viên tại Mozilla. Nhóm phát triển sau đó bổ sung nhiều thành viên mới, bao gồm kỹ sư phần mềm Felix Matsakis và Felix Klock, những người có nhiều kinh nghiệm trong lĩnh vực nghiên cứu bộ nhớ và ngôn ngữ lập trình.
Các nhà lãnh đạo của Mozilla đã tham gia phát triển Rust, từ trái sang: Manish Goregaokar, Niko Matsakis, Felix Klock và Patrick Walton. Ảnh:MIT Technology Review. |
Là một dự án mã nguồn mở, Mozilla đã đầu tư cho Rust vào năm 2009. Để phát triển Rust toàn thời gian trong 10 năm tiếp theo, Mozilla đã tuyển dụng thêm hàng chục kỹ sư.
Cộng đồng lập trình viên toàn cầu đã cung cấp hỗ trợ cho Rust vào đầu những năm 2010. Các kỹ sư tại Mozilla và cộng đồng đã tập trung thiết kế khả năng quản lý bộ nhớ của Rust trong giai đoạn đầu, phát triển hệ thống "quyền sở hữu" để dữ liệu chỉ được sử dụng bởi một biến, giảm khả năng tràn bộ nhớ.
Rust đã loại bỏ trình dọn dẹp từ năm 2013 khi hệ thống quản lý bộ nhớ được cải thiện. Cộng đồng phát triển Rust tiếp tục mở rộng và được đánh giá cao nhờ "quy tắc ứng xử" của Hoare.
Trước khi phát hành phiên bản "ổn định" của ngôn ngữ này vào năm 2015, nhóm phát triển Rust đã phải đối mặt với áp lực. Trong khi lập trình viên Steve Klabnik viết đến 45 trang tài liệu trong 2 tuần, Walton nhớ lại thời gian cắm cúi vào laptop trong nhiều giờ.
Phiên bản ổn định đầu tiên của Rust được phát hành vào ngày 15 tháng 5 năm 2015. Công cụ trình duyệt được viết bằng Rust được Mozilla giới thiệu Servo vào năm 2016.
Một năm sau, Rust được thêm vào trình hiển thị CSS của Firefox để tăng tốc hoạt động.
Trên Dropbox, Discord
Nhiều phần mềm nổi tiếng đã sử dụng Rust theo thời gian. Với thành phần xử lý file được viết bằng Rust, Dropbox đã giới thiệu công cụ đồng bộ mới vào năm 2020. Trên Discord, việc sử dụng Rust cho các hệ thống quan trọng mang lại hiệu năng nhanh gấp 10 lần so với ngôn ngữ lập trình Go.
Ngay cả các kỹ sư phần mềm tại Amazon Web Services cũng tin rằng Rust có thể tăng tốc mã chạy. Theo nghiên cứu, mã viết bằng Rust mang lại hiệu quả ngang ngửa nhưng chỉ tiêu thụ một nửa năng lượng so với Java.
Màn hình máy tính có phần mềm lập trình. Ảnh:TechSpot. |
Độ phổ biến của Rust có tác động đến đội ngũ phát triển. Sự quan tâm của các hãng công nghệ lớn có thể có tác động đến quá trình cải tiến ngôn ngữ. Ngoài ra, một số vị trí tại Rust chỉ làm việc vì đam mê chứ không được trả lương.
Các hãng công nghệ lớn đã thành lập Rust Foundation, trị giá20.000 USDđể trả tiền cho các tình nguyện viên phát triển Rust. Để đảm bảo hoạt động liên tục và lưu trữ mã nguồn của Rust, quỹ này cũng tài trợ cho máy chủ.
Rust đã trở thành ngôn ngữ lập trình được đánh giá cao sau 17 năm phát triển. Các lãnh đạo Microsoft thậm chí thậm chí đã đề xuất sử dụng rộng rãi Rust để viết phần mềm hoàn toàn mới thay cho C và C++.
Tất nhiên, C và C++ sẽ không biến mất trong nhiều thập kỷ tới. Rust sẽ được sử dụng nhiều hơn để tạo ra các phần mềm mới trong tương lai với ưu điểm nhanh chóng, đơn giản, thân thiện và an toàn.
Giải mã bí ẩn của Thung lũng Silicon
Cuốn sáchgiúp chúng ta hiểu rõ hơn về Thung lũng Silicon từ góc độ của người trong cuộc và đưa ra những đề xuất để hỗ trợ các doanh nghiệp khởi nghiệp đi đúng hướng.
Cập nhật tin tức công nghệ mới nhất tại fanpage Công nghệ & Cuộc sống