
ถ้าพูดถึงเครื่องมือทำมาหากินของเรา เหล่า developer ก็แน่นอนอยู่แล้วว่าจะขาด code editor คู่ใจไปไม่ได้ วันนี้ผมจะมาแนะนำตัวแก้ไขโค้ดตัวใหม่ที่ออกมาได้ซักระยะนึงแล้ว อย่าง “Zed” ซึ่งเป็น editor ที่ถูกออกแบบมาเพื่อความเร็วและประสิทธิภาพในการทำงาน โดยมีฟีเจอร์ที่น่าสนใจมากมายที่ทำให้การเขียนโค้ดของเราง่ายและสนุกยิ่งขึ้น
ทำความรู้จักกับ Zed
Zed เป็น code editor ที่ถูกพัฒนาโดยทีมงานที่เคยสร้าง Atom Editor ของ Github มาก่อน โดยมีเป้าหมายที่จะสร้างเอดิเตอร์ที่เร็วกว่าและมีประสิทธิภาพมากกว่าเดิม ด้วยการใช้ภาษา Rust ในการพัฒนา ทำให้ Zed มีความเร็วในการทำงานที่น่าประทับใจ เรามาดูกันดีกว่าครับว่าอะไรทำให้ Zed เร็วขึ้นกว่า editor อื่นๆ
- ขับเคลื่อนด้วย Rust
- ใช้ Tree-sitter ในการ parse syntax
ทำไมต้องเป็น Rust
- Zed ถูกพัฒนาด้วยภาษา Rust ซึ่งเป็นภาษาที่เน้นความปลอดภัยและความเร็ว ทำให้ Zed มีประสิทธิภาพในการทำงานที่สูงและใช้ทรัพยากรน้อย
- ความเร็วของ Rust เป็นที่ประจักษ์กันอยู่แล้วว่าแรงเป็นเบอร์ต้นๆ ความแรงเป็นน้องๆ รองจากภาษา C เลยทีเดียว
อะไรคือ Tree-sitter
- Zed ใช้ Tree-sitter ในการช่วยทำ syntax parsing ซึ่งเป็นส่วนหนึ่งของ การทำ syntax highlighting และยังช่วยทำ navigate code ส่งผลให้ทั้ง 2 features นี้มีความแม่นยำและรวดเร็ว สามารถอัพเดทได้แบบ real time
- การทำ syntax highlighting ปกติจะรันด้วย RegEx ในการจำแนกส่วนต่างๆของ code ซึ่ง dev อย่างเราๆก็รู้กันอยู่แล้วว่า RegEx ไม่เหมาะที่จะรันใน code ที่ซับซ้อน หรือยาวมากๆ
- codebase ยิ่งซับซ้อนเท่าไหร่ ก็ยิ่งทำให้ Editor รันช้าเท่านั้น
- Tree-sitter จะทำการ parse ไฟล์ code เป็น Abstract Syntax Tree (AST) แล้ว Tree-sitter จะคอย track change ต่างๆที่เกิดขึ้น แล้วรัน RegEx เฉพาะจุดที่มีการแก้ไขเท่านั้น ทำให้ลดจำนวนข้อความที่ต้องทำการรัน RegEx ไปได้มาก

นอกจากนี้ code editor สมัยใหม่ที่เป็นที่นิยม จะขาด feature เหล่านี้ไม่ได้ ซึ่ง Zed ก็มีมาให้เหมือนกัน
- รองรับ LSP เป็น First-Party
- รองรับ AI Assistant
ทำไมต้องรองรับ LSP เป็น First-Party
- Zed รองรับ Language Server Protocol (LSP) อย่างเต็มรูปแบบ ทำให้ Zed สามารถช่วยนักพัฒนาในด้านต่างๆ เช่น การเติมโค้ดอัตโนมัติ (auto-completion), การตรวจสอบข้อผิดพลาด (error checking), และ code navigation ได้อย่างราบรื่นตามแต่ server ของแต่ละภาษาจะรองรับ
- การรองรับ LSP แบบ First-Party หมายความว่า Zed ได้รวมการทำงานของ LSP เข้ามาเป็นส่วนหนึ่งของตัว editor เลย ทำให้การใช้งานง่ายและมีประสิทธิภาพมากยิ่งขึ้น สะดวกต่อการ config เพิ่มเติม
รองรับ GitHub Copilot
- Zed รองรับการใช้งาน GitHub Copilot ซึ่งเป็นเครื่องมือ AI ที่ช่วยแนะนำโค้ดอัตโนมัติ ทำให้การเขียนโค้ดของเรารวดเร็วและง่ายยิ่งขึ้น
- Copilot ช่วยแนะนำโค้ดที่เหมาะสมตามบริบทของ code ทำให้เราสามารถเขียนโค้ดได้โดยไม่ต้องเสียเวลาถามอากู๋
ทำไมต้องเลือก Zed?
- ความเร็ว: Zed ถูกออกแบบมาเพื่อความเร็วในการทำงาน ทำให้คุณสามารถเขียนโค้ดได้อย่างลื่นไหล
- ประสิทธิภาพ: ด้วยการใช้ Rust และ Tree-sitter ทำให้ Zed มีประสิทธิภาพในการจัดการโค้ดที่ซับซ้อน
- ฟีเจอร์ทันสมัย: Zed มาพร้อมกับฟีเจอร์ที่ช่วยให้การเขียนโค้ดง่ายและสนุกยิ่งขึ้น เช่น การรองรับ LSP และ GitHub Copilot
- การพัฒนาอย่างต่อเนื่อง: Zed ยังอยู่ในช่วงพัฒนาและมีการอัพเดทฟีเจอร์ใหม่ๆ อย่างต่อเนื่อง
ข้อเสียของ Zed
- extension หรือ plugin ยังน้อยกว่าเจ้าอื่น: เนื่องจากยังเป็น editor ที่ใหม่ทำให้ยังมีคนพัฒนา extension น้อยมาก
- ยังมีบัคประปรายในบางภาษา: จากประสบการณ์ส่วนตัว language server ของ groovy ยังมีบัคที่กินทรัพยากรเครื่องอย่างมาก เนื่องจาก 1 tab ที่เปิด code groovy จะสร้าง 1 language server
- ยังไม่รองรับ Windows: Zed ยังรองรับใน macos และ linux เท่านั้น สำหรับนักพัฒนาที่ใช้งาน Windows อาจจะต้องรอไปก่อน
Zed เป็น code editor ที่น่าสนใจสำหรับนักพัฒนาที่ต้องการความเร็ว ประสิทธิภาพ และ feature ที่ครบครัน หากคุณกำลังมองหา editor ตัวใหม่ที่ช่วยให้การเขียนโค้ดของคุณง่ายและสนุกยิ่งขึ้น Zed เป็นหนึ่งตัวเลือกที่คุณไม่ควรพลาด
ลองใช้งาน Zed ได้ที่: https://zed.dev/download
อ่านเพิ่มเติม: