Một kho dữ liệu trong bộ nhớ tương thích với Redis có tên Zedis đã xuất hiện từ cộng đồng lập trình viên, nhưng nó đang tạo ra nhiều thảo luận về các thực hành lập trình có sự hỗ trợ của AI hơn là về những ưu điểm kỹ thuật của nó. Dự án được xây dựng bằng ngôn ngữ lập trình Zig , đã trở thành một điểm nóng bất ngờ trong các cuộc tranh luận đang diễn ra về tính xác thực của mã nguồn và độ trưởng thành của ngôn ngữ lập trình.
Các Tính Năng Cốt Lõi của Zedis :
- Tương thích với giao thức Redis (RESP)
- Các lệnh cơ bản: GET, SET, INCR, DECR, DEL, EXISTS, TYPE
- Nhiều kiểu dữ liệu với khả năng chuyển đổi tự động
- Lưu trữ bền vững trên đĩa RDB
- Hệ thống nhắn tin Pub/Sub
- Xử lý kết nối đa luồng
Cộng đồng đặt câu hỏi về tính xác thực của mã nguồn
Tài liệu và cấu trúc được trau chuốt của dự án đã khiến các lập trình viên có kinh nghiệm nghi ngờ về việc sử dụng nhiều các mô hình ngôn ngữ lớn trong quá trình tạo ra nó. Một số thành viên cộng đồng đã chỉ ra những dấu hiệu đặc trưng mà họ liên kết với nội dung được tạo bởi AI, bao gồm các mẫu định dạng cụ thể và cấu trúc tài liệu khớp chặt chẽ với những gì các công cụ như Claude thường tạo ra.
Cuộc thảo luận này tiết lộ một căng thẳng ngày càng tăng trong cộng đồng phát triển về tính minh bạch xung quanh sự hỗ trợ của AI. Một số lập trình viên lo lắng về các dự án có thể hứa hẹn những tính năng mà chúng thực sự không cung cấp, trong khi những người khác lại cho rằng chất lượng của kết quả cuối cùng quan trọng hơn các công cụ được sử dụng để tạo ra nó.
Những lo ngại về tính ổn định của ngôn ngữ Zig nổi lên
Dự án này cũng đã làm bùng phát lại các cuộc trò chuyện về sự sẵn sàng của Zig cho việc sử dụng trong sản xuất. Mặc dù ngày càng phổ biến, Zig vẫn chưa đạt đến phiên bản 1.0 và tiếp tục giới thiệu những thay đổi đột phá đòi hỏi việc tái cấu trúc đáng kể. Nhà phát triển Zedis đã xác nhận trải nghiệm này một cách trực tiếp, lưu ý rằng việc ra mắt Zig 0.15 trong quá trình phát triển đã đòi hỏi phải viết lại toàn bộ tích hợp thư viện IO.
Thư viện chuẩn đang thay đổi quá nhiều thành thật mà nói. Trong quá trình phát triển thư viện, Zig 0.15 đã ra mắt và thay đổi toàn bộ thư viện Io.
Sự bất ổn này đã khiến một số thành viên cộng đồng khuyến nghị chờ đợi Zig 1.0 trước khi cam kết với các dự án lớn, mặc dù những người khác chỉ ra các hệ thống sản xuất thành công như TigerBeetle và Ghostty làm bằng chứng cho thấy Zig có thể xử lý các khối lượng công việc nghiêm túc ngày hôm nay.
Yêu cầu phiên bản Zig :
- Phiên bản tối thiểu: 0.15.1
- Những thay đổi đột phá giữa các phiên bản đòi hỏi phải tái cấu trúc
- Thư viện chuẩn vẫn đang phát triển
- Phiên bản 1.0 chưa được phát hành
Thách thức triển khai kỹ thuật
Ngoài các thảo luận meta, những câu hỏi kỹ thuật đã nổi lên về một số tính năng được tuyên bố của Zedis . Tài liệu đề cập đến các mẫu RAII cho an toàn bộ nhớ, điều này đã làm bối rối các chuyên gia Zig vì ngôn ngữ này thiếu destructors - một yêu cầu cơ bản cho RAII thực sự. Sự khác biệt này làm nổi bật những khoảng trống tiềm tàng giữa các tuyên bố marketing và triển khai thực tế.
Dự án thực sự thể hiện một số lựa chọn kỹ thuật thú vị, bao gồm một thiết kế tránh phân bổ bộ nhớ trong quá trình thực thi lệnh để có khả năng dự đoán hiệu suất tốt hơn. Tuy nhiên, nhà phát triển đã thừa nhận gặp khó khăn với việc triển khai async IO bằng các kỹ thuật hiện đại như io_uring và kqueue, cuối cùng chọn phương pháp đa luồng thay thế.
Dự án Zedis , mặc dù được định vị như một bài tập học tập, đã vô tình trở thành một tấm gương phản ánh những mối quan tâm rộng lớn hơn của ngành công nghiệp về các thực hành phát triển, độ trưởng thành của ngôn ngữ lập trình, và vai trò đang phát triển của AI trong việc tạo ra phần mềm. Liệu những thảo luận này có ảnh hưởng đến cách các lập trình viên tiếp cận các dự án tương tự hay không vẫn còn phải xem.
Tham khảo: Redis in Zig