Trong nhiều thập kỷ, các lập trình viên đã viết các hệ thống quan trọng bằng C và C++. Và giờ đây, họ đang dần chuyển sang Rust. Có mặt trong hầu hết các hệ thống lõi của Microsoft, Facebook, Amazon, Dropbox, Discord, Cloudflare,… Rust còn là ngôn ngữ được yêu thích nhất trên Stack Overflow trong bốn năm liên tiếp.
Ra đời năm 2010, Rust là ngôn ngữ lập trình hiện đại được phát triển bởi Mozilla. Tập trung vào các mục đích thiết yếu trong lập trình: Hiệu suất, An toàn và Quản lý bộ nhớ, do đó Rust được sử dụng để phát triển các ứng dụng nâng cao như phần mềm game (game engine), hệ điều hành và trình duyệt yêu cầu khả năng mở rộng.
Nhiều dự án phần mềm xuất hiện bởi vì ở đâu đó ngoài kia — một lập trình viên nào đó gặp phải một vấn đề cá nhân cần giải quyết. Và đây chính là điều đã xảy ra với Graydon Hoare.
Năm 2006, Hoare là một lập trình viên máy tính 29 tuổi làm việc cho Mozilla, công ty trình duyệt mã nguồn mở. Trở về căn hộ của mình ở Vancouver, anh thấy thang máy bị hỏng; phần mềm của nó đã ngừng hoạt động. Đây cũng không phải là lần đầu tiên nó xảy ra.
Hoare sống ở tầng 21, và khi leo lên cầu thang, anh cảm thấy khó chịu. “Thật lố bịch,” anh nghĩ, “rằng những người lập trình như chúng ta chẳng lẽ không thể tạo ra một chiếc thang máy hoạt động mà không gặp sự cố sao! ” Hoare biết rằng nhiều sự cố như vậy là do các vấn đề về cách chương trình sử dụng bộ nhớ.
Phần mềm bên trong các thiết bị như thang máy thường được viết bằng các ngôn ngữ như C++ hoặc C, vốn nổi tiếng vì cho phép các lập trình viên viết mã chạy rất nhanh và khá nhỏ gọn. Vấn đề là những ngôn ngữ đó cũng khiến bạn dễ gây ra lỗi bộ nhớ—những lỗi sẽ gây ra sự cố. Microsoft ước tính rằng 70% lỗ hổng trong mã của họ là do lỗi bộ nhớ từ mã được viết bằng các ngôn ngữ này.
Hầu hết chúng ta, nếu thấy mình lê bước lên 21 tầng cầu thang, sẽ tức giận và bỏ mặc nó ở đó. Nhưng Hoare đã quyết định làm một điều gì đó. Anh ấy mở máy tính xách tay của mình và bắt đầu thiết kế một ngôn ngữ máy tính mới, ngôn ngữ mà anh ấy hy vọng sẽ giúp viết mã nhỏ, nhanh mà không bị lỗi bộ nhớ. Anh ấy đặt tên cho nó là Rust, theo tên của một nhóm nấm cực kỳ khỏe mạnh, theo anh ấy, “được thiết kế quá mức để tồn tại.”
Mười bảy năm sau, Rust đã trở thành một trong những ngôn ngữ mới hấp dẫn nhất hành tinh—có lẽ là ngôn ngữ nóng nhất. Hiện có 2,8 triệu lập trình viên viết bằng Rust và các công ty từ Microsoft đến Amazon coi đó là chìa khóa cho tương lai của họ.
Nền tảng Discord đã sử dụng Rust để tăng tốc hệ thống của nó, Dropbox sử dụng nó để đồng bộ hóa các tệp với máy tính của bạn và Cloudflare sử dụng nó để xử lý hơn 20% tổng lưu lượng truy cập internet.
Khi diễn đàn Stack Overflow tiến hành cuộc thăm dò hàng năm các nhà phát triển trên khắp thế giới, Rust đã được đánh giá là ngôn ngữ lập trình “được yêu thích” nhất trong bảy năm hoạt động.
Ngay cả chính phủ Hoa Kỳ cũng đang quảng cáo rầm rộ phần mềm trong Rust như một cách để giúp các quy trình của họ an toàn hơn. Ngôn ngữ này, giống như nhiều dự án mã nguồn mở thành công, đã trở thành một kho tài nguyên: hiện có hàng trăm người đóng góp hết mình, nhiều người trong số họ là tình nguyện viên.
Bản thân Hoare đã từ bỏ dự án vào năm 2013, rất vui khi được giao nó cho những kỹ sư khác, bao gồm cả nhóm nòng cốt tại Mozilla.
Không có gì lạ khi ai đó tạo ra một ngôn ngữ máy tính mới. Rất nhiều lập trình viên luôn tạo ra những cái nhỏ như những dự án phụ. Nhưng thật hiếm khi một ngôn ngữ nào đó trở thành một ngôn ngữ nổi tiếng như JavaScript hoặc Python hoặc Java. Rust đã làm điều đó như thế nào?
Để hiểu được điều gì làm cho Rust trở nên hữu ích như vậy, bạn nên xem qua cách các ngôn ngữ lập trình và cách chúng xử lý bộ nhớ máy tính.
Bạn có thể hình dung bộ nhớ động trong máy tính như một bảng đen. Khi một phần mềm chạy, nó liên tục ghi các mẩu dữ liệu nhỏ vào bảng đen, theo dõi xem cái nào ở đâu và xóa chúng khi không còn cần thiết.
Tuy nhiên, các ngôn ngữ máy tính khác nhau quản lý việc này theo những cách khác nhau. Một ngôn ngữ cũ hơn như C hoặc C++ được thiết kế để cung cấp cho lập trình viên nhiều quyền hơn về cách thức và thời điểm phần mềm sử dụng bảng đen.
Điều này rất hữu ích: với quyền can thiệp sâu đối với bộ nhớ động, một lập trình viên có thể làm cho phần mềm chạy rất nhanh. Đó là lý do tại sao C và C++ thường được sử dụng để viết mã “bare metal”, loại mã tương tác trực tiếp với phần cứng.
Các máy không có hệ điều hành như Windows hay Linux, bao gồm mọi thứ từ máy lọc máu đến máy tính tiền, đều chạy trên mã đó.
“Rust là ngôn ngữ tuyệt vời. Bạn cảm thấy mình giống như một nhà ảo thuật, và điều đó không bao giờ xảy ra với các ngôn ngữ khác.”, Parker Timmerman, kỹ sư phần mềm nói.
Nhưng với tốc độ nhanh như vậy, các ngôn ngữ như C và C++ đi kèm với sự đánh đổi. Chúng yêu cầu người viết mã phải theo dõi cẩn thận xem bộ nhớ nào đang được ghi và khi nào thì xóa bộ nhớ đó.
Và nếu bạn vô tình quên xóa một thứ gì đó? Bạn có thể gây ra sự cố: phần mềm sau này có thể sử dụng một khoảng trống trong bộ nhớ mà nó cho là trống, trong khi thực sự có thứ gì đó ở đó.
Hoặc bạn có thể vô tình tạo ra các lỗ hổng kỹ thuật để một ai đó có thể tấn công hệ thống. Một tin tặc có thể phát hiện ra rằng nếu một chương trình không dọn sạch bộ nhớ đúng cách—thông tin lẽ ra phải bị xóa (như mật khẩu, thông tin tài chính) vẫn còn tồn tại—và lén lấy thông tin dữ liệu đó. Khi một đoạn mã C hoặc C++ ngày càng lớn, ngay cả những lập trình viên cẩn thận nhất cũng có thể mắc nhiều lỗi bộ nhớ, khiến phần mềm đầy lỗi.
Mara Bos, đồng sáng lập công ty máy bay không người lái Fusion Engineering và trưởng nhóm thư viện của Rust cho biết: “Trong C hoặc C++, bạn luôn lo sợ rằng mã của bạn sẽ có thể sẽ xuất hiện bất cứ lúc nào.
Vào những năm 90, một số ngôn ngữ mới như Java, JavaScript và Python trở nên phổ biến. Các ngôn ngữ này đã có những cách tiếp cận rất khác nhau. Để giảm khó khăn cho các lập trình viên, họ đã tự động quản lý bộ nhớ bằng cách sử dụng garbage collector (bộ gom rác), các thành phần sẽ dọn dẹp bộ nhớ theo định kỳ khi một phần mềm đang chạy.
Presto: Bạn có thể viết mã không có lỗi bộ nhớ nhưng bạn sẽ mất rất nhiều thời gian để kiểm soát chúng. Các chương trình của bạn cũng hoạt động chậm hơn (vì việc thu gom rác trong bộ nhớ rất quan trọng và tốn nhiều thời gian). Và tất nhiên, phần mềm được viết bằng các ngôn ngữ này sử dụng nhiều bộ nhớ hơn.
Vì vậy, thế giới lập trình đã bị chia cắt thành hai trường phái khác nhau. Nếu muốn phần mềm cần chạy nhanh hoặc trên một con chip nhỏ trong thiết bị nhúng, thì nhiều khả năng phần mềm đó sẽ được viết bằng C hoặc C++.
Với Rust, Hoare muốn tạo ra một ngôn ngữ khác biệt với các cách tiếp cận hiện có. Nó sẽ không yêu cầu các lập trình viên phải tự tìm ra vị trí mà họ đang đặt dữ liệu trong bộ nhớ. Rust sẽ đảm nhận điều đó. Nhưng nó sẽ áp đặt nhiều quy tắc nghiêm ngặt về cách dữ liệu có thể được sử dụng hoặc sao chép bên trong một chương trình.
Bạn sẽ phải học những quy tắc viết mã đó, những quy tắc này sẽ khó hơn những quy tắc trong Python hoặc JavaScript. Mã của bạn sẽ khó viết hơn, nhưng nó sẽ “an toàn với bộ nhớ”— và không sợ rằng bạn đã vô tình gặp các lỗi bộ nhớ chết người.
Điều quan trọng, Rust cũng sẽ cung cấp “concurrency safety” (an toàn đồng thời). Để sử dụng tối ưu phần cứng, các chương trình hiện đại thường thực hiện nhiều việc cùng một lúc (đồng thời). Nói cách khác đôi khi các luồng mã khác nhau truy cập và sửa đổi cùng một vùng bộ nhớ cùng lúc. Hệ thống bộ nhớ của Rust sẽ ngăn chặn xảy ra điều này.
Hoare đã có thâm niên 10 năm trong lĩnh vực phần mềm, làm việc toàn thời gian tại Mozilla. Ban đầu, Rust chỉ là một dự án phụ. Hoare miệt mài nghiên cứu nó trong vài năm, và khi ông giới thiệu nó cho các lập trình viên khác thì có nhiều phản ứng trái ngược nhau. Có rất nhiều người đảo mắt và và nói “Cái này sẽ không bao giờ hoạt động được” hoặc “Cái này sẽ không bao giờ sử dụng được”.
Tuy nhiên, các giám đốc điều hành tại Mozilla thì tỏ ra rất thích thú. Họ nhận ra rằng Rust có thể giúp họ xây dựng một công cụ trình duyệt tốt hơn. Trình duyệt nổi tiếng là phần mềm phức tạp với nhiều nguy cơ xảy ra các lỗi bộ nhớ nguy hiểm.
Một nhân viên đã tham gia là Patrick Walton, người đã gia nhập Mozilla sau khi quyết định rời bỏ nghiên cứu tiến sĩ về ngôn ngữ lập trình. Anh ấy nhớ Brendan Eich, người phát minh ra JavaScript, đã kéo anh ấy vào một cuộc họp tại Mozilla: “Anh ấy nói, ‘Tại sao anh không vào phòng này để chúng ta sẽ thảo luận về các thiết kế cho Rust?’”
Walton nghĩ rằng Rust có tính khả thi rất cao. Và thật tuyệt vời, anh ấy đã tham gia cùng Hoare và một nhóm kỹ sư đang phát triển để phát triển ngôn ngữ này. Nhiều người, chẳng hạn như kỹ sư Mozilla Niko Matsakis và cả Felix Klock, người đã có nhiều kinh nghiệm học thuật và nghiên cứu về bộ nhớ và ngôn ngữ lập trình.
Các giám đốc điều hành tại Mozilla nhận ra rằng Rust có thể giúp họ xây dựng một công cụ trình duyệt tốt hơn và họ đã đưa một số kỹ sư vào dự án.
Nhóm phát triển bao gồm Patrick Walton (1), người đã gia nhập Mozilla sau khi quyết định bỏ nghiên cứu tiến sĩ về ngôn ngữ lập trình; Niko Matsakis (2) và Felix Klock (3), cả hai đều có kinh nghiệm nghiên cứu về bộ nhớ và ngôn ngữ lập trình; và Manish Goregaokar (4), người hiện đang điều hành nhóm công cụ dành cho nhà phát triển của Rust.
Năm 2009, Mozilla quyết định tài trợ chính thức cho Rust. Ngôn ngữ này sẽ là nguồn mở và chỉ những người tạo ra nó mới chịu trách nhiệm giải trình, nhưng Mozilla sẵn sàng khởi động nó bằng cách trả tiền cho các kỹ sư. Nhóm phát triển Rust đã tiếp quản một phòng họp tại công ty.
Dave Herman, đồng sáng lập của Mozilla Research, gọi nó là “the nerd cave” (những khu vực kín tách biệt thế giới bên ngoài dành cho những kẻ mọt sách) và dán một tấm biển bên ngoài cửa. Trong 10 năm tiếp theo, Hoare ước tính Mozilla đã tuyển dụng hơn chục kỹ sư làm việc toàn thời gian cho Rust.
Walton nhớ lại: “Mọi người thực sự cảm thấy như họ đang làm việc trên một thứ gì thực sự to lớn. Sự phấn khích đó cũng lan truyền ra cả bên ngoài tòa nhà của Mozilla. Vào đầu những năm 2010, Rust đã thu hút các tình nguyện viên từ khắp nơi trên thế giới, từ mọi ngóc ngách của công nghệ. Một số làm việc cho các công ty công nghệ lớn.
Một thành viên tên Eich, có đóng góp chính là một học sinh trung học ở Đức, cũng là một trong số đó. Tại một hội nghị của Mozilla ở British Columbia vào năm 2010, Eich đã đứng lên phát biểu rằng, “sẽ có một buổi bàn luận về một ngôn ngữ này và đừng tham dự trừ khi bạn là một người mê ngôn ngữ lập trình thực sự”.
Vào đầu những năm 2010, các kỹ sư của Mozilla và các tình nguyện viên của Rust trên toàn thế giới đã dần mài giũa phần lõi của Rust — cách thức mà nó được thiết kế để quản lý bộ nhớ. Họ đã tạo ra một hệ thống “phân quyền sở hữu” để một phần dữ liệu chỉ có thể được tham chiếu bởi một biến; điều này làm giảm đáng kể khả năng xảy ra các vấn đề về bộ nhớ.
Trình biên dịch của Rust — lấy các dòng mã bạn viết và biến chúng thành mã chạy trên máy tính—và thực thi một cách chặt chẽ các quy định về quyền sở hữu. Nếu một lập trình viên vi phạm các quy tắc, trình biên dịch sẽ từ chối biên dịch mã và chạy chương trình.
Manish Goregaokar, người điều hành nhóm công cụ dành cho nhà phát triển của Rust và làm việc cho Mozilla trong những năm đầu tiên, cho biết: “Nhiều thủ thuật mà Rust sử dụng không phải là ý tưởng mới: “Chúng chủ yếu là nghiên cứu đã có từ hàng thập kỷ trước”. Nhưng các kỹ sư của Rust đã thành thạo trong việc tìm kiếm những khái niệm đã được mài dũa kỹ càng này và biến chúng thành những tính năng thực tế, có thể sử dụng được.
Khi nhóm cải thiện hệ thống quản lý bộ nhớ, Rust ngày càng ít cần đến garbage collector để kiểm soát bộ nhớ của mình—và đến năm 2013, nhóm đã loại bỏ nó. Các chương trình được viết bằng Rust giờ đây thậm chí còn chạy nhanh hơn: không bị trì hoãn mỗi khi máy tính tiến hành dọn dẹp.
Hoare cho biết, một số kỹ sư phần mềm lập luận rằng Rust vẫn sở hữu các đặc điểm hơi giống với garbage collector — đó là “reference counting system” (hệ thống đếm tham chiếu), một thành phần quan trọng trong cơ chế quản lý bộ nhớ.
Nhưng dù bằng cách nào, hiệu suất của Rust đã đem lại hiệu quả rõ rệt. Nó tiến gần với phần cứng hơn, như C và C++ — nhưng vẫn an toàn về bộ nhớ.
Steve Klabnik, một lập trình viên đã tham gia vào Rust vào năm 2012 và viết tài liệu cho nó trong 10 năm tiếp theo, cho biết việc loại bỏ garbage collector đã giúp ngôn ngữ trở nên gọn gàng và xúc tích hơn.
Đồng thời, cộng đồng Rust cũng đang xây dựng một văn hóa nổi tiếng là thân thiện và cởi mở hơn với những người mới. Nell Shamrell-Harrington, một kỹ sư chính của Microsoft, người vào thời điểm đó đã làm việc với Rust tại Mozilla, cho biết: “Không ai gọi bạn là kẻ mới, không có câu hỏi nào được coi là một câu hỏi ngu ngốc”.
Cô ấy nói, một phần của là do Hoare đã sớm đưa ra một “quy tắc ứng xử” mà bất kỳ ai đóng góp cho Rust đều phải tuân thủ. Cộng đồng đã chấp nhận nó. Các thành viên cộng đồng Rust lâu năm cho biết, đã thu hút những người lập trình đồng tính và chuyển giới tham gia vào Rust với tỷ lệ cao hơn so với các ngôn ngữ khác.
Ngay cả các thông báo lỗi mà trình biên dịch tạo ra khi người viết mã mắc lỗi cũng rất nghiêm trọng; họ mô tả lỗi và cũng lịch sự gợi ý cách khắc phục. “Với các trình biên dịch C và C++, khi mắc lỗi, tôi cảm thấy mình là một người tồi tệ. Trình biên dịch Rust giống như hướng dẫn bạn viết mã siêu an toàn”, Shamrell-Harrington nói.
Đến năm 2015, nhóm bị ám ảnh bởi việc cuối cùng phải phát hành một phiên bản “ổn định” của Rust, một phiên bản đủ tin cậy để các công ty sử dụng để tạo phần mềm cho khách hàng thực sự.
“Đã sáu năm kể từ khi Mozilla tiếp quản Rust, và trong suốt thời gian dài phát triển đó, các lập trình viên đã háo hức dùng thử các phiên bản demo, mặc dù trình biên dịch rất hay bị lỗi. Nhưng bây giờ là lúc giới thiệu bản “1.0” ra thế giới”, Goregaokar nói.
Walton nhớ mình đã dành hàng giờ cắm cúi bên chiếc máy tính của mình. Klabnik đã viết khoảng 45 trang tài liệu trong hai tuần. Vào ngày 15 tháng 5 năm 2015, nhóm cuối cùng đã phát hành phiên bản đầu tiên và các nhóm Rust khác cũng đã tụ tập để tổ chức các bữa tiệc để ăn mừng trên toàn thế giới.
Khoản đầu tư của Mozilla sớm bắt đầu được đền đáp. Vào năm 2016, một nhóm Mozilla đã phát hành Servo, một công cụ trình duyệt mới được xây dựng bằng Rust. Năm tiếp theo, một nhóm khác đã sử dụng Rust để viết lại một phần của Firefox để hiển thị CSS, ngôn ngữ được sử dụng để chỉ định giao diện của các trang web.
Sự thay đổi đã giúp trình duyệt tăng hiệu suất đáng kể. Công ty cũng đã sử dụng Rust để viết lại mã xử lý các tệp đa phương tiện MP4 và có nguy cơ nhiễm mã độc hoặc không an toàn.
Các nhà phát triển Rust — “Rustaceans,” như họ tự gọi mình — chẳng bao lâu sau cũng nghe tin các công ty khác đang thử ngôn ngữ mới của họ.
Các lập trình viên của Samsung nói với Klock, người đang làm việc tại văn phòng của Mozilla ở Pháp, rằng họ đã bắt đầu sử dụng nó. Facebook (sau này được gọi là Meta) đã sử dụng Rust để thiết kế lại phần mềm mà các lập trình viên của họ sử dụng để quản lý mã nguồn nội bộ của họ. Walton, hiện đang làm việc cho Meta, cho biết: “Thật khó để mô tả tầm quan trọng của nó”.
Chẳng mấy chốc, Rust đã xuất hiện ở phần cốt lõi của một số phần mềm cực kỳ quan trọng. Vào năm 2020, Dropbox đã tiết lộ phiên bản mới của “công cụ đồng bộ hóa” —phần mềm chịu trách nhiệm đồng bộ hóa các tệp giữa máy tính của người dùng và bộ lưu trữ đám mây của Dropbox — mà các kỹ sư đã viết lại bằng Rust. Hệ thống ban đầu được mã hóa bằng Python, nhưng hiện tại nó đang xử lý hàng tỷ tệp (và hàng nghìn tỷ tệp được đồng bộ hóa trực tuyến).
Parker Timmerman, một kỹ sư phần mềm vừa rời Dropbox, cho biết Rust giúp việc xử lý các tác vụ phức tạp trở nên dễ dàng hơn—thậm chí là dễ chịu.
“Thật thú vị khi viết Rust, nói điều này nghe có vẻ kỳ lạ nhưng nó chỉ là ngôn ngữ tuyệt vời. Nó rất thú vị. Bạn cảm thấy mình giống như một nhà ảo thuật, và điều đó không bao giờ xảy ra với các ngôn ngữ khác,” anh nói. “Chúng tôi chắc chắn đã đặt cược lớn – đó là một công nghệ mới.”
Một số công ty phát hiện ra rằng Rust đã xoa dịu nỗi sợ hãi của họ về các lỗi bộ nhớ; Mara Bos đã sử dụng Rust để viết lại hoàn toàn phần mềm điều khiển máy bay không người lái của công ty của cô, phần mềm ban đầu được viết bằng C++.
Những người khác cũng đang rất vui mừng vì đã loại bỏ việc sử dụng garbage collector. Tại Discord, các kỹ sư từ lâu đã cảm thấy khó chịu vì trình thu gom rác trong bộ nhớ của Go—ngôn ngữ mà họ đã sử dụng để xây dựng các phần quan trọng trong phần mềm của mình—sẽ làm mọi thứ chậm lại.
Phần mềm Go của họ sẽ thực hiện quy trình này khoảng hai phút một lần, mặc dù các kỹ sư của Discord đã viết mọi thứ cẩn thận đến mức không có rác để thu thập. Vào năm 2020, họ đã viết lại hệ thống đó bằng Rust và phát hiện ra rằng nó hiện chạy nhanh hơn gấp 10 lần.
Ngay cả các giám đốc điều hành và kỹ sư tại Amazon Web Services, nền tảng điện toán đám mây của gã khổng lồ công nghệ, ngày càng tin rằng Rust có thể giúp họ viết mã an toàn hơn, nhanh hơn. “Rust có vị trí độc nhất để mang lại những lợi thế mà tôi không thể có được từ các ngôn ngữ khác.
Nó mang lại cho bạn nhiều siêu năng lực trong một ngôn ngữ,” Shane Miller, người đã thành lập nhóm Rust tại AWS trước khi rời công ty vào năm ngoái, cho biết.
Có lẽ điều quan trọng nhất đối với gã khổng lồ điện toán đám mây là một nghiên cứu về mã dựa trên Rust cho thấy nó chạy hiệu quả đến mức sử dụng một nửa lượng điện năng so với một chương trình tương tự được viết bằng Java, một ngôn ngữ thường được sử dụng tại AWS.
Miller nói: “Vì vậy, tôi có thể tạo một trung tâm dữ liệu chạy gấp đôi khối lượng công việc mà tôi có hiện nay. Hoặc thực hiện công việc tương tự trong một trung tâm dữ liệu có kích thước chỉ bằng một nửa, cho phép bạn đặt một trung tâm vào thành phố thay vì đặt nó ở một cánh đồng ngoại ô.
Một số người đóng góp lâu năm đã hơi lo lắng trước thành công của Rust. Khi những gã khổng lồ công nghệ áp dụng ngôn ngữ này, họ cũng sẽ có nhiều ảnh hưởng hơn đối với nó. Họ có đủ tiền để trả cho các kỹ sư làm việc toàn thời gian trong việc phát triển Rust; chẳng hạn, một số lãnh đạo của nhóm Rust là nhân viên của Amazon và Microsoft.
Những người có đóng góp giá trị khác phải làm công việc phát triển Rust của họ trong thời gian rảnh rỗi; Ví dụ, Bos làm việc theo hợp đồng bằng Rust cho Huawei, ngoài việc điều hành công ty khởi nghiệp máy bay không người lái của cô ấy, nhưng vai trò trưởng nhóm thư viện của Rust vẫn không được trả lương.
Bos nói rằng đó là một động lực phổ biến với các dự án nguồn mở: các công ty lớn có thể đủ khả năng tham gia nhiều hơn và họ có thể thúc đẩy dự án hướng tới giải quyết các vấn đề mà họ quan tâm nhưng các công ty nhỏ hơn thì không.
Cô ấy nói: “Nó đem lại cho họ một số ảnh hưởng. Nhưng cho đến nay, cô ấy nói, không có công ty nào làm bất cứ điều gì đáng phải cảnh báo. Klabnik, người đã tỏ ra lo ngại về sự tham gia của Amazon vào Rust, đồng ý.
“Tôi có lo lắng về nó không? Vâng. Tôi nghĩ rằng nó đặc biệt tồi tệ hoặc ở một vị trí tồi tệ hơn nhiều nơi khác không? Câu trả lời là KHÔNG”.
Vào năm 2021, các công ty công nghệ lớn đã trả tiền để thành lập một tổ chức phi lợi nhuận Rust Foundation để hỗ trợ các lập trình viên tình nguyện.
Được dẫn dắt bởi Miller trong hai năm đầu tiên, nó cung cấp khoản trợ cấp 20.000 đô la cho các lập trình viên muốn phát triển một số tính năng chính của Rust và khoản trợ cấp “khó khăn” cho những người đóng góp có nhu cầu tài chính ngắn hạn.
Quỹ cũng tài trợ cho các máy chủ lưu trữ mã nguồn của Rust và trả tiền cho một công ty công nghệ luôn sẵn sàng để đảm bảo rằng chúng hoạt động 24/7.
Theo phong cách nguồn mở cổ điển, công việc đó trước đây được thực hiện bởi “hai tình nguyện viên, những người đã làm việc và cống hiến 50% trong cuộc đời của họ, Một trong số họ là sinh viên ở Ý”, Miller nói
Ngôn ngữ đã lớn lên một cách ngẫu nhiên và nhanh chóng. Nếu Rust được sinh ra vào năm 2006, thì bây giờ nó đang bước ra khỏi tuổi vị thành niên và trưởng thành.
Các công ty ô tô đang áp dụng Rust để xây dựng mã quan trọng chạy trên ô tô; các công ty hàng không vũ trụ cũng đang sử dụng nó. “Nó sẽ được sử dụng ở mọi nơi,” Timmerman của Dropbox dự đoán.
Các giám đốc điều hành của Microsoft thậm chí đã đề xuất công khai điều mà nhiều công ty công nghệ khác có thể đang cân nhắc: rằng họ sẽ ngày càng sử dụng Rust nhiều hơn cho mã mới — và ngày càng ít sử dụng C và C++. Cuối cùng có lẽ không bao giờ.
Tất cả các mã C và C++ cũ đang hoạt động sẽ không biến mất; nó sẽ vẫn được sử dụng, có thể trong nhiều thập kỷ.
Nhưng khi Rust trở nên phổ biến để viết các mã cần tốc độ xử lý và đơn giản, chúng ta có thể thấy rằng môi trường phần mềm sẽ ngày càng trở nên đáng tin cậy hơn: ít xảy ra sự cố hơn, ít bất an hơn.
(Theo QuaClive Thompson)
Trang bị kỹ năng với những Khóa học lập trình Rust được yêu thích nhất bởi các học viên trên toàn thế giới. Tham gia cộng đồng lập trình Rust với sự hỗ trợ nhiệt tình từ các lập trình viên nhiều kinh nghiệm.
1/ Ultimate Rust Crash Course (Cơ bản)
- Tham gia khóa học thực hành cấp tốc với Nathan Stocks để học ngôn ngữ lập trình Rust.
- Khóa học này sẽ giúp bạn vượt qua con đường học tập dốc của Rust và cung cấp những nguyên tắc cơ bản.
- Có bài tập và dự án để áp dụng kiến thức tổng hợp của bạn.
- Khám phá cách sử dụng Rust cho việc sử dụng hàng hóa, tạo dự án, viết và chạy mã.
- Khóa học được cập nhật khi Rust có các tính năng mới hoặc phiên bản chính.
- Rust là ngôn ngữ lập trình hệ thống loại bỏ lỗi và lỗ hổng bảo mật, hấp dẫn cho lập trình viên hệ thống.
- Rust thu hút sự chú ý trong các lĩnh vực như công cụ trò chơi, máy tính hiệu năng cao, thiết bị nhúng và lập trình web.
- Học cách viết mã hiệu suất cao mà không lo sự cố hoặc lỗ hổng bảo mật.
- Thông tin chi tiết: Xem tại đây
2/ Ultimate Rust 2: Intermediate Concepts (Nâng cao)
- Khóa học thứ hai trong series Ultimate Rust, một khám phá sâu hơn về ngôn ngữ lập trình Rust.
- Khóa học này tập trung vào việc thực hành, với các bài tập và dự án thực tế.
- Xây dựng các nguyên mẫu trò chơi chơi được bằng Rusty Engine, một công cụ phát triển đặc biệt cho khóa học này.
- Rust loại bỏ lỗi và lỗ hổng bảo mật, có tính trừu tượng không tốn kém, và rất thú vị khi lập trình.
- Rust được ưa chuộng trong các lĩnh vực công cụ trò chơi, máy tính hiệu năng cao, thiết bị nhúng và lập trình web.
- Học cách viết mã hiệu suất cao mà không phải lo lắng về lỗi hoặc lỗ hổng bảo mật.
- Thông tin chi tiết: Xem tại đây
Về giảng viên
-
4.6 Đánh giá cho giảng viên
-
7.217 Đánh giá
-
35.787 Sinh viên
-
3 khóa học
Nathan Stocks là một nhà phát triển phần mềm trong hơn 20 năm. Anh ấy yêu Rust vào năm 2016 và bắt đầu dạy nó vào năm sau. Anh ấy thử nghiệm phát triển Trò chơi Indie ở Rust.
Nathan thích dạy Rust, đặc biệt là trực tiếp tại các hội nghị và chương trình huấn luyện của công ty.
Nếu phải chọn những mục yêu thích của mình, Nathan sẽ chọn: Rust, Python, PostgreSQL, Linux (máy chủ), macOS (máy tính để bàn), vim và emacs, bất kỳ IDE nào có hỗ trợ Rust tốt nhất.
Đại học Harvard sẽ sử dụng AI để giảng dạy khóa học Khoa học Máy tính
Xem thêm bài viết:
Mojo Lang: Ngôn ngữ lập trình mới với tốc độ gấp hàng chục ngàn lần Python