Zedis โคลน Redis ที่เขียนด้วย Zig จุดประกายการถ่ายเทเรื่องโค้ดที่สร้างด้วย LLM และความเสถียรของภาษา

ทีมชุมชน BigGo
Zedis โคลน Redis ที่เขียนด้วย Zig จุดประกายการถ่ายเทเรื่องโค้ดที่สร้างด้วย LLM และความเสถียรของภาษา

ฐานข้อมูลในหน่วยความจำที่เข้ากันได้กับ Redis ตัวใหม่ชื่อ Zedis ได้เกิดขึ้นจากชุมชนนักพัฒนา แต่กลับสร้างการพูดคุยเกี่ยวกับแนวทางการเขียนโค้ดด้วยความช่วยเหลือของ AI มากกว่าคุณค่าทางเทคนิค โครงการนี้ที่สร้างขึ้นโดยใช้ภาษาโปรแกรมมิ่ง Zig ได้กลายเป็นจุดระเบิดที่ไม่คาดคิดในการถกเถียงอย่างต่อเนื่องเกี่ยวกับความแท้จริงของโค้ดและความเป็นผู้ใหญ่ของภาษา

คุณสมบัติหลักของ Zedis :

  • ความเข้ากันได้กับ Redis Protocol (RESP)
  • คำสั่งพื้นฐาน: GET, SET, INCR, DECR, DEL, EXISTS, TYPE
  • ประเภทข้อมูลหลากหลายพร้อมการแปลงอัตโนมัติ
  • การเก็บข้อมูลถาวรบนดิสก์แบบ RDB
  • ระบบส่งข้อความ Pub/Sub
  • การจัดการการเชื่อมต่อแบบ Multi-threaded

ชุมชนตั้งคำถามเรื่องความแท้จริงของโค้ด

เอกสารประกอบและโครงสร้างที่ขัดเกลาของโครงการนี้ได้ทำให้นักพัฒนาที่มีประสบการณ์เกิดความสงสัยที่สงสัยว่ามีการใช้โมเดลภาษาขนาดใหญ่อย่างหนักในการสร้างมัน สมาชิกในชุมชนหลายคนชี้ไปที่สัญญาณเตือนที่พวกเขาเชื่อมโยงกับเนื้อหาที่สร้างด้วย AI รวมถึงรูปแบบการจัดรูปแบบเฉพาะและโครงสร้างเอกสารที่ตรงกับสิ่งที่เครื่องมืออย่าง Claude มักจะผลิตออกมา

การพูดคุยนี้เผยให้เห็นความตึงเครียดที่เพิ่มขึ้นในชุมชนนักพัฒนาเกี่ยวกับความโปร่งใสรอบการช่วยเหลือของ AI นักพัฒนาบางคนกังวลเกี่ยวกับโครงการที่อาจสัญญาฟีเจอร์ที่พวกเขาไม่ได้ส่งมอบจริง ในขณะที่คนอื่นๆ โต้แย้งว่าคุณภาพของผลลัพธ์สุดท้ายสำคัญกว่าเครื่องมือที่ใช้ในการสร้างมัน

ความกังวลเรื่องความเสถียรของภาษา Zig โผล่ขึ้นมา

โครงการนี้ยังได้จุดประกายการสนทนาเกี่ยวกับความพร้อมของ Zig สำหรับการใช้งานจริง แม้จะได้รับความนิยมเพิ่มขึ้น แต่ Zig ยังไม่ได้เข้าถึงเวอร์ชัน 1.0 และยังคงแนะนำการเปลี่ยนแปลงที่ทำลายที่ต้องการการปรับโครงสร้างใหม่อย่างมาก นักพัฒนา Zedis ยืนยันว่าได้ประสบกับสิ่งนี้โดยตรง โดยระบุว่าการเปิดตัว Zig 0.15 ระหว่างการพัฒนาต้องการการเขียนการรวมไลบรารี IO ทั้งหมดใหม่

ไลบรารีมาตรฐานกำลังเปลี่ยนแปลงมากเกินไปตามความจริง ระหว่างการพัฒนาไลบรารี Zig 0.15 ได้เปิดตัวและเปลี่ยนไลบรารี Io ทั้งหมด

ความไม่เสถียรนี้ได้นำไปสู่การที่สมาชิกชุมชนบางคนแนะนำให้รอ Zig 1.0 ก่อนที่จะมุ่งมั่นกับโครงการใหญ่ แม้ว่าคนอื่นๆ จะชี้ไปที่ระบบการผลิตที่ประสบความสำเร็จอย่าง TigerBeetle และ Ghostty เป็นหลักฐานว่า Zig สามารถจัดการกับปริมาณงานที่จริงจังได้ในปัจจุบัน

ข้อกำหนดเวอร์ชันของ Zig :

  • เวอร์ชันต่ำสุด: 0.15.1
  • การเปลี่ยนแปลงที่ทำลายความเข้ากันได้ระหว่างเวอร์ชันต้องมีการปรับโครงสร้างใหม่
  • Standard library ยังคงพัฒนาอยู่
  • เวอร์ชัน 1.0 ยังไม่ได้เปิดตัว

ความท้าทายในการนำไปใช้ทางเทคนิค

นอกเหนือจากการพูดคุยเมตา คำถามทางเทคนิคได้เกิดขึ้นเกี่ยวกับฟีเจอร์ที่อ้างว่ามีของ Zedis บางอย่าง เอกสารประกอบกล่าวถึงรูปแบบ RAII สำหรับความปลอดภัยของหน่วยความจำ ซึ่งทำให้ผู้เชี่ยวชาญ Zig งุนงงเนื่องจากภาษานี้ขาด destructors ซึ่งเป็นข้อกำหนดพื้นฐานสำหรับ RAII ที่แท้จริง ความแตกต่างนี้เน้นช่องว่างที่อาจเกิดขึ้นระหว่างการอ้างสิทธิ์ทางการตลาดและการนำไปใช้จริง

โครงการนี้แสดงให้เห็นทางเลือกทางเทคนิคที่น่าสนใจบางอย่าง รวมถึงการออกแบบที่หลีกเลี่ยงการจัดสรรหน่วยความจำระหว่างการดำเนินการคำสั่งเพื่อความสามารถในการคาดเดาประสิทธิภาพที่ดีขึ้น อย่างไรก็ตาม นักพัฒนายอมรับว่าต่อสู้กับการนำ async IO ไปใช้โดยใช้เทคนิคสมัยใหม่อย่าง io_uring และ kqueue แทนที่จะเลือกใช้แนวทางแบบ multi-threaded

โครงการ Zedis แม้จะถูกวางตำแหน่งเป็นแบบฝึกหัดการเรียนรู้ แต่ได้กลายเป็นกระจกที่สะท้อนความกังวลในอุตสาหกรรมที่กว้างขึ้นเกี่ยวกับแนวทางการพัฒนา ความเป็นผู้ใหญ่ของภาษา และบทบาทที่พัฒนาของ AI ในการสร้างซอฟต์แวร์โดยไม่ตั้งใจ ว่าการพูดคุยเหล่านี้จะมีอิทธิพลต่อวิธีที่นักพัฒนาเข้าหาโครงการที่คล้ายกันหรือไม่ยังคงต้องติดตาม

อ้างอิง: Redis in Zig