OpenAI ได้ประกาศการเขียนใหม่ครั้งใหญ่ของเครื่องมือ Codex CLI โดยเปลี่ยนจาก TypeScript เป็น Rust การเปลี่ยนแปลงนี้ได้จุดประกายการอภิปรายอย่างเข้มข้นในชุมชนนักพัฒนาเกี่ยวกับเทรนด์ที่กำลังเกิดขึ้นในการเขียนเครื่องมือซอฟต์แวร์ใหม่ด้วยภาษาโปรแกรมระบบ โดยเฉพาะ Rust และ Go
Codex CLI เป็นเครื่องมือ agentic harness ที่เรียกใช้โมเดล AI แบบวนซ้ำเพื่อช่วยเหลือในงานเขียนโค้ด เดิมสร้างด้วย TypeScript และ React-based ink สำหรับส่วนติดต่อผู้ใช้บนเทอร์มินัล OpenAI ตัดสินใจสร้างฟังก์ชันหลักใหม่ด้วย Rust เพื่อแก้ไขปัญหาทางเทคนิคหลายประการ
สถาปัตยกรรมทางเทคนิค:
- เดิม: TypeScript กับ React-based ink สำหรับ terminal UI
- ใหม่: Rust core กับ wire protocol สำหรับ multi-language extensions
- Extensions ที่รองรับ: TypeScript, JavaScript, Python, MCPs
- การจัดจำหน่าย: Native binary compilation
แรงผลักดันสู่ประสิทธิภาพแบบ Native
OpenAI ให้เหตุผลหลัก 4 ประการสำหรับการเขียนใหม่: การกำจัดความต้องการ dependency ของ Node.js การใช้งาน native security bindings การเพิ่มประสิทธิภาพผ่านการลดการใช้หน่วยความจำ และการสร้างโปรโตคอลที่ขยายได้สำหรับการรองรับหลายภาษา บริษัทได้ส่งมอบคอมโพเนนต์ Rust สำหรับ Linux sandboxing แล้ว ทำให้การเปลี่ยนแปลงนี้เป็นวิวัฒนาการตามธรรมชาติมากกว่าการเปลี่ยนแปลงโดยสิ้นเชิง
การเพิ่มประสิทธิภาพ แม้จะอาจมีน้อยสำหรับเครื่องมือที่ทำหน้าที่หลักในการเรียก API แต่ก็แก้ไขปัญหาที่ผู้ใช้เจอจริง ความล่าช้าในการเริ่มต้นที่เป็นปัญหาใน Node.js เวอร์ชันได้ถูกกำจัดไป และรอยเท้าหน่วยความจำได้ลดลงอย่างมีนัยสำคัญด้วยการไม่ต้องใช้ JavaScript runtime environment
ประโยชน์หลักของการเขียนใหม่ด้วย Rust:
- การติดตั้งแบบไม่ต้องพึ่งพาอะไร (ขจัดความต้องการ Node.js v22+)
- การเชื่อมโยงความปลอดภัยแบบเนทีฟสำหรับ Linux sandboxing
- ประสิทธิภาพที่ปรับให้เหมาะสมโดยไม่มี garbage collection
- โปรโตคอลแบบขยายได้ที่รองรับหลายภาษา
- การใช้หน่วยความจำที่ต่ำกว่า
- เวลาเริ่มต้นที่เร็วกว่า (~0ms เทียบกับ >100ms)
ปฏิกิริยาชุมชนแบ่งออกเป็นสองฝ่ายเรื่องความจำเป็น
การประกาศนี้ได้แบ่งชุมชนนักพัฒนาออกเป็นสองฝ่าย ฝ่ายวิพากษ์วิจารณ์โต้แย้งว่านี่เป็นเทรนด์ Rewritten in Rust (RIIR) ที่ไม่จำเป็น โดยตั้งคำถามว่าประโยชน์ด้านประสิทธิภาพคุ้มค่ากับความพยายามในการพัฒนาหรือไม่สำหรับเครื่องมือที่ใช้เวลาส่วนใหญ่ในการรอการตอบสนองจาก API ระยะไกล พวกเขาชี้ให้เห็นว่า Node.js มี single executable application packaging อยู่แล้วที่สามารถแก้ปัญหา dependency ได้โดยไม่ต้องเขียนใหม่ทั้งหมด
อย่างไรก็ตาม ผู้สนับสนุนเน้นย้ำถึงประโยชน์เชิงปฏิบัติที่เกินกว่าประสิทธิภาพดิบ การกำจัดความล่าช้าในการเริ่มต้น การแจกจ่ายที่ง่ายขึ้นผ่าน native binaries และการลดการใช้ทรัพยากรระบบ สร้างประสบการณ์ผู้ใช้ที่ดีขึ้นอย่างเห็นได้ชัด ผู้แสดงความเห็นคนหนึ่งสังเกตว่าเครื่องมือ CLI ที่เขียนด้วยภาษา interpreted สามารถประสบปัญหาความล่าช้าในการเริ่มต้นอย่างมีนัยสำคัญที่ native compilation สามารถกำจัดได้อย่างสิ้นเชิง
รูปแบบที่กว้างขึ้นของอุตสาหกรรม
การเขียนใหม่นี้สะท้อนการเปลี่ยนแปลงที่ใหญ่กว่าของอุตสาหกรรมไปสู่ภาษาโปรแกรมระบบ การอภิปรายเผยให้เห็นรูปแบบวัฏจักรในการเลือกใช้เทคโนโลยี โดยลูกตุ้มแกว่งจากภาษา interpreted กลับไปสู่โซลูชันแบบ compiled และ native นักพัฒนาให้ความสำคัญกับความเรียบง่ายในการ deploy และประสิทธิภาพทรัพยากรมากกว่าความเร็วในการพัฒนามากขึ้น
เทรนด์นี้ขยายไปเกินกว่าเครื่องมือแต่ละตัวไปสู่ระบบนิเวศทั้งหมด บริษัทต่างๆ กำลังประเมินว่าความสะดวกของภาษา interpreted คุ้มค่ากับ overhead หรือไม่เมื่อมีทางเลือกอื่นอย่าง Rust ที่เสนอประสบการณ์การพัฒนาที่เทียบเคียงได้พร้อมคุณลักษณะ runtime ที่เหนือกว่า
มองไปข้างหน้า
OpenAI วางแผนที่จะรักษาทั้งสองเวอร์ชันในช่วงการเปลี่ยนผ่าน โดยจะยังคงแก้ไขบั๊กสำหรับ TypeScript implementation ในขณะที่นำ Rust เวอร์ชันให้มีฟีเจอร์เทียบเคียงกัน บริษัทยังขยายทีมงานเพื่อทำงานในการพัฒนา Rust และความสามารถ agentic coding ใหม่ๆ
การเขียนใหม่นี้เป็นมากกว่าการตัดสินใจทางเทคนิค แต่เป็นสัญญาณของการยอมรับในวงกว้างของอุตสาหกรรมว่าการแลกเปลี่ยนระหว่างความสะดวกในการพัฒนาและประสิทธิภาพ runtime ได้เปลี่ยนไป เมื่อต้นทุนการ deploy และการดำเนินงานมีความสำคัญมากขึ้น ความน่าสนใจของเครื่องมือแบบ native ที่มีประสิทธิภาพทรัพยากรยังคงเติบโต แม้สำหรับแอปพลิเคชันที่ไม่ได้มีความสำคัญด้านประสิทธิภาพแบบดั้งเดิม
อ้างอิง: Codex CLI is Going Native #1174