Thử tài viết code Rust của DeepSeek

Hôm nay mình thử tài DeepSeek về một số ngôn ngữ lập trình mới. Đề bài là: Hãy cho một ví dụ để cho thấy comptime trong ngôn ngữ Zig đem lại trải nghiệm lập trình tốt hơn macro của Rust.

Câu trả lời đầu tiên của DeepSeek bị mình bác bỏ (code trong hình 1), vì nó cho rằng trong Zig có thể dùng comptime để tạo cấu trúc generics trong khi Rust phải dùng macro.

DS-generics

Mình vặn rằng trong trường hợp này dùng thẳng generics có sẵn trong Rust cho idiomatic chứ ai lại đi dùng macro, và sửa cho nó bằng code ở hình 2.

My counter - generics

DeepSeek nói thôi để tớ cho ví dụ khác, lần này nó bảo trong Zig có thể dùng comptime để "inspect and generate code based on the fields of a struct" với đoạn code để biến một truct thành chuỗi, và bảo rằng với ví dụ này thì Rust phải dùng macro, cho code như hình 3.

DS-tostring

Mình vặn tiếp, lại chưa đúng rồi, với ví dụ này thì Rust chỉ cần implement trait Display chứ dùng macro chi, với code như hình 4, ngắn hơn nhiều.

My counter - tostring

Vì thấy câu trả lời của DeepSeek không ưng ý nên mình mớm cho nó: But there is one valid point that Zig comptime code can iterate over struct fields, that Rust code cannot do, unless we use Rust "procedural macro".

Mình chưa biết bình luận gì về DeepSeek trong cuộc hội thoại này.