Viết lại Rust
- Ngôn ngữ lập trình Rust mang lại cảm giác như một sản phẩm thế hệ đầu tiên
- Sức hấp dẫn ban đầu của Rust: kiểu đại số, an toàn bộ nhớ, không suy giảm hiệu năng, trình quản lý gói hiện đại
- Sau 4 năm sử dụng, Rust không phải lúc nào cũng hoàn hảo
- Sự phát triển của ngôn ngữ đã chậm lại rất nhiều
- Nhiều tính năng không ổn định chưa được đưa vào Rust ổn định
Một ngôn ngữ tuyệt vời
- Muốn fork trình biên dịch Rust và tạo một edition mới tên là "seph"
- Có thể giữ lại các tính năng hiện có của Rust đồng thời bổ sung tính năng mới
Trait của hàm (hiệu ứng)
- Rust định nghĩa trait cho struct, nhưng cũng cần định nghĩa trait cho hàm
- Có thể biểu thị nhiều đặc tính khác nhau của hàm
- Hàm có gây panic hay không
- Hàm có kích thước stack cố định hay không
- Hàm chạy đến hết hay dừng chờ ở giữa
- Hàm có thuần hay không
- Hàm có thực thi mã unsafe hay không
- Hàm có đảm bảo kết thúc hay không
Tính năng thời điểm biên dịch
- Nhiều dự án Rust sử dụng rất nhiều crate bên thứ ba
- Những crate này làm tăng rủi ro chuỗi cung ứng
- Đề xuất thêm tính năng buộc phải cho phép rõ ràng các lời gọi hàm nhạy cảm về bảo mật
- Muốn gọi các chức năng như
fs_write thì phải cho phép một cách tường minh
Pin, Move và mượn struct
Pin là một cách vá phức tạp để giải quyết vấn đề của borrow checker trong Rust
- Thay vì
Pin, dùng marker trait Move sẽ hợp lý hơn
- Đề xuất thêm cú pháp để có thể đánh dấu field của struct đang ở trạng thái được mượn
- Đề xuất đưa vào marker trait
Move và trait Mover
Thời điểm biên dịch
- Đưa tính năng
comptime của Zig vào để thay thế ngôn ngữ macro của Rust
- Thêm một trình thông dịch nhỏ có thể chạy mã ở thời điểm biên dịch
- Dùng chính Rust thay cho ngôn ngữ macro của Rust
Các chỉnh sửa nhỏ
- Sửa
impl<T: Copy> for Range<T>
- Sửa
derive với associated type
- Hỗ trợ toán tử AND logic trong biểu thức
if-let
- Cải thiện khả năng sử dụng của con trỏ thô
- Thêm đối số
Allocator cho mọi kiểu collection dựng sẵn
Suy nghĩ kết thúc
- Tính năng bất đồng bộ cũng cần được cải thiện, nhưng cần một bài viết riêng
- Phần lớn các thay đổi này không tương thích với Rust hiện tại
- Có thể sẽ cần một edition Rust mới
- Đang cân nhắc fork trực tiếp trình biên dịch thay vì tiếp tục mệt mỏi với quy trình RFC trên GitHub
Tóm tắt của GN⁺
- Rust không phải lúc nào cũng hoàn hảo dù có sức hấp dẫn ban đầu
- Sự phát triển của ngôn ngữ đang chậm lại và nhiều tính năng không ổn định chưa vào được Rust ổn định
- Có nhiều đề xuất như trait cho hàm, tính năng thời điểm biên dịch, và cải tiến Pin cùng Move
- Những đề xuất này có thể cải thiện đáng kể khả năng sử dụng của Rust
- Một ngôn ngữ khác có các tính năng tương tự là Zig
1 bình luận
Ý kiến trên Hacker News
Ý kiến về quy trình Rust RFC
Vấn đề phụ thuộc của Rust
Tình trạng hiện tại của Rust
Ý kiến về việc viết lại Rust
Bất mãn với quá trình ra quyết định của Rust
Bình luận của Josh Triplett
Ý kiến về độ phức tạp của Rust
Ý kiến về tốc độ của Rust
Ý kiến về việc cải thiện Mutex
Ý kiến về tốc độ phát triển tính năng của Rust
Ý kiến về thiết kế tính năng của Rust
Vấn đề borrow checker của Rust
Các tính năng compile-time của Rust
Các tính năng không ổn định của Rust
Ý kiến về tốc độ phát triển của Rust