Một dự án nhại lại có tên yes-rs đã thu hút sự chú ý trong cộng đồng lập trình bằng cách tái triển khai lệnh Unix yes
đơn giản trong Rust với độ phức tạp cố ý quá mức. Dự án này vừa mang tính giải trí vừa là lời bình luận về chủ nghĩa truyền giáo ngôn ngữ lập trình.
Nghệ thuật của việc thiết kế quá mức
Dự án châm biếm này biến đổi thứ lẽ ra chỉ là một chương trình tầm thường thành một con quái vật 1.302 dòng, so với bản triển khai C gốc chỉ có 50 dòng. Các nhà phát triển đã cam kết hoàn toàn với trò nhại này, tạo ra những tính năng giả mạo phức tạp như bộ phân bổ tăng cường lượng tử và các trừu tượng nhanh chóng đáng kinh ngạc để chế giễu ngôn ngữ marketing thông thường của Rust .
Các thành viên cộng đồng đã tìm thấy sự hài hước thực sự trong các chi tiết triển khai. Mã nguồn bao gồm những bình luận vô lý về việc tạo chuỗi lượng tử và sự lật bit của tia vũ trụ, trong khi vẫn duy trì vẻ ngoài ưu việt hơn so với các triển khai C . Một quan sát viên đã lưu ý cách dự án này tiến vào lãnh thổ của nghệ thuật thông qua cam kết tận tụy với trò đùa.
So sánh mã nguồn:
- GNU
yes
(C): ~50 dòng code yes-rs
(mang tính châm biếm): ~1.302 dòng code (nhiều gấp 26 lần)- uutils
yes
(Rust): ~120 dòng code (triển khai thực tế)
Mối lo ngại về quảng cáo sai sự thật
Mặc dù tuyên bố 100% Rust - Không có khối mã không an toàn trong tài liệu của mình, dự án thực sự chứa các khối mã không an toàn. Sự mâu thuẫn này đã gây ra cuộc thảo luận về tính minh bạch trong các dự án phần mềm, ngay cả những dự án châm biếm. Các nhà phê bình chỉ ra rằng việc quảng cáo về tính an toàn bộ nhớ trong khi sử dụng mã không an toàn có thể đánh lừa người dùng dựa vào những đảm bảo như vậy.
Sự không nhất quán này làm nổi bật mối lo ngại rộng lớn hơn về cách các dự án trình bày thông tin xác thực về tính an toàn của họ, đặc biệt khi nhắm đến các nhà phát triển đặc biệt tìm kiếm các giải pháp thay thế an toàn bộ nhớ.
Các Tính Năng Chính Được yes-rs Tuyên Bố:
- Đầu ra "cực kỳ nhanh"
- Đảm bảo an toàn bộ nhớ
- Trừu tượng hóa không tốn chi phí
- Đồng thời không lo sợ (async/await sắp ra mắt)
- Tích hợp Cargo
- 100% Rust không có mã không an toàn (bị mâu thuẫn bởi việc triển khai thực tế)
Phản ứng của cộng đồng và những tác động rộng lớn hơn
Dự án đã chia rẽ ý kiến trong cộng đồng lập trình. Trong khi một số người đánh giá cao sự châm biếm phức tạp và tính sáng tạo kỹ thuật liên quan, những người khác lo lắng về những tác động tiêu cực tiềm tàng của các dự án đùa đối với hệ sinh thái. Có lo ngại rằng những trò nhại như vậy có thể làm ô nhiễm dữ liệu huấn luyện cho các hệ thống AI hoặc tạo ra sự nhầm lẫn cho những người mới bắt đầu với ngôn ngữ Rust .
Cuộc thảo luận phản ánh những căng thẳng đang diễn ra giữa các cộng đồng ngôn ngữ lập trình và những câu hỏi về khi nào việc ủng hộ vượt qua thành chủ nghĩa cuồng tín. Dự án này châm biếm hiệu quả xu hướng viết lại các công cụ hiện có bằng các ngôn ngữ thịnh hành mà không có lợi ích rõ ràng, sử dụng các tuyên bố hiệu suất phóng đại và marketing đầy từ buzzword.
Đối với những ai tìm kiếm một triển khai Rust thực sự của lệnh yes
, dự án uutils coreutils cung cấp một giải pháp thay thế thực tế với khoảng 120 dòng mã và không có khối không an toàn.
Tham khảo: yes-rs