Jarred Sumner ผู้สร้างและหัวหน้าผู้พัฒนาแพลตฟอร์ม JavaScript ฝั่งเซิร์ฟเวอร์ Bun ได้ประกาศว่าการทดลองเขียนโปรเจ็กต์ใหม่จาก Zig และ Rust โดยใช้ผู้ช่วย AI อย่าง Claude Code นั้นประสบความสำเร็จ และได้ตัดสินใจย้าย Bun ไปใช้ Rust การเขียนโค้ดใหม่ด้วย Rust ได้รับการยอมรับเข้าสู่คลังหลักของโปรเจ็กต์แล้ว และโค้ด Zig จะถูกลบออก ผู้เขียน Bun ยังประกาศการจ้างพนักงานสนับสนุนที่มีประสบการณ์ด้านการพัฒนา C/C++ และ Rust มากกว่าห้าปีอีกด้วย
ปัจจุบัน มีการนำภาษา Zig มาเขียนเป็นภาษา Rust โดยตรงแล้ว ซึ่งรวมถึงโค้ดที่ไม่ปลอดภัยหลายส่วน และใช้สถาปัตยกรรม โครงสร้างข้อมูล และไลบรารีภายนอกที่มีอยู่เดิม เวอร์ชัน Rust นี้ผ่านชุดทดสอบที่มีอยู่บนทุกแพลตฟอร์มเรียบร้อยแล้ว นอกจากนี้ยังได้แก้ไขปัญหาการรั่วไหลของหน่วยความจำและความล้มเหลวในการทดสอบหลายรายการด้วย
หลังจากสร้างเวอร์ชัน Rust แล้ว ไฟล์ปฏิบัติการมีขนาดเล็กกว่าเวอร์ชัน Zig ประมาณ 3-8 MB ในการทดสอบประสิทธิภาพ เวอร์ชัน Rust เร็วกว่าหรือเทียบเท่ากัน อย่างไรก็ตาม ตามที่ Jarred กล่าว ข้อได้เปรียบที่สำคัญที่สุดของเวอร์ชัน Rust คือความสามารถในการตรวจจับและป้องกันข้อผิดพลาดด้านหน่วยความจำ ซึ่งเป็นงานที่ใช้เวลานานมากสำหรับนักพัฒนา Bun ในช่วงหลายปีที่ผ่านมา
ก่อนหน้านี้มีการกล่าวถึงเหตุผลในการเขียนโค้ดใหม่เป็นภาษา Rust ว่าเป็นเพราะต้องการแก้ไขปัญหาใน Bun ที่เกิดจากหน่วยความจำรั่วไหล ความขัดแย้งกับผู้เขียน Zig เกี่ยวกับการใช้ AI ในการเขียนโค้ด และนโยบายของ Zig เกี่ยวกับการยอมรับการเปลี่ยนแปลงภาษาที่ทำให้ความเข้ากันได้เสียไป ซึ่งเป็นสิ่งที่ยอมรับไม่ได้สำหรับโครงการขนาดใหญ่
แพลตฟอร์ม JavaScript ชื่อ Bun กำลังถูกพัฒนาขึ้นเพื่อเป็นทางเลือกที่มีประสิทธิภาพสูงกว่า Node.js และ Deno โครงการนี้ได้รับการพัฒนาโดยคำนึงถึงความเข้ากันได้กับแอปพลิเคชันเซิร์ฟเวอร์ Node.js และรองรับ API ส่วนใหญ่ของ Node.js แพลตฟอร์มนี้ประกอบด้วยชุดเครื่องมือสำหรับการสร้างและเรียกใช้แอปพลิเคชัน JavaScript และ TypeScript รวมถึงรันไทม์สำหรับการเรียกใช้แอปพลิเคชัน JavaScript โดยไม่ต้องใช้เบราว์เซอร์ ตัวจัดการแพ็กเกจ (ใช้งานร่วมกับ NPM ได้) เครื่องมือทดสอบ ตัวสร้างแพ็กเกจแบบครบวงในตัว และเลเยอร์สำหรับการฝังแฮนด์เลอร์ที่เขียนด้วยภาษา C ในแง่ของประสิทธิภาพ Bun มีประสิทธิภาพเหนือกว่า Deno และ Node.js อย่างมาก (ในการทดสอบบนเฟรมเวิร์ก React Bun มีประสิทธิภาพเหนือกว่า Deno ถึง 2 เท่า และเหนือกว่า Node.js เกือบ 5 เท่า) การเรียกใช้ JavaScript ได้รับการสนับสนุนโดยเอนจิน JavaScriptCore และส่วนประกอบ WebKit พร้อมแพตช์เพิ่มเติม
ที่มา: opennet.ru
