needhelp
← Back to blog

Bun เขียน 960K บรรทัดจาก Zig เป็น Rust ใน 6 วัน — AI ทำงานหนักแทน

by needhelp
bun
rust
zig
ai-codegen
javascript-runtime

เมื่อวันที่ 14 พฤษภาคม 2026 Jarred Sumner ผู้สร้าง Bun ได้ merge PR #30412 — branch ขนาดใหญ่ที่มี 6755 commits ที่เขียน core ของ Bun ใหม่จาก Zig เป็น Rust branch ชื่อ claude/phase-a-p... ถูกสร้างเกือบทั้งหมดโดย Claude AI agents ของ Anthropic

ตัวเลขนั้นน่าตกใจ:

Metric ค่า
Commits 6,755
Code ที่แปล ~960K บรรทัด Zig → Rust
ระยะเวลา 6 วัน
Test compatibility 99.8% (Linux x64 glibc)
Source branch claude/phase-a-p...

เกิดอะไรขึ้นจริงๆ

Bun ถูกเขียนด้วย Zig ภาษา systems programming ที่ออกแบบโดย Andrew Kelley Zig ทำให้ Bun เร็ว — แต่มันก็จำกัดกลุ่มผู้มีส่วนร่วม Rust ตรงกันข้าม มี ecosystem ขนาดใหญ่, tooling ที่ mature, และการ integrate กับ LLVM ที่ลึก

หลัง Anthropic ซื้อ Bun ทีมทดลองใช้ Claude agents เพื่อแปล Zig codebase ทั้งหมดเป็น Rust การทดลองรัน 6 วันบน cluster ของ high-memory nodes ให้ผลลัพธ์ 6755 commits

ผลลัพธ์: Rust codebase ที่ผ่าน 99.8% ของ test suite เดิมของ Bun บน Linux x64 glibc

AI-Driven Migration ใน Scale

นี่คือหนึ่งในการสาธิต AI-driven codebase migration ครั้งใหญ่ที่สุดครั้งแรก วิธีการ:

  1. Source analysis: Claude วิเคราะห์รูปแบบโค้ด Zig, memory management idioms, และ public API surface
  2. Incremental translation: แต่ละ Zig file ถูกแปลเป็น Rust แบบ incremental รักษาพฤติกรรมผ่าน property-based testing
  3. Parallel execution: Claude agent instances หลายตัวทำงานแบบ parallel ทั่ว codebase
  4. CI validation: แต่ละโมดูลที่ถูกแปลตรวจสอบกับ test suite เดิมของ Bun

ความขัดแย้ง

การ merge ได้จุดประเดนถกเถียงอย่างดุเดือดทั่วชุมชน开发者:

ชุมชน Zig

Bun คือโปรเจกต์ flag ship ของ Zig — การ deploy จริงที่ใหญ่ที่สุดและชัดเจนที่สุดของภาษา Loris Cro สมาชิก Zig Software Foundation เคยอธิบาย LLM contributions ต่อ Zig ว่า “ส่วนใหญ่เป็นลบ” การย้ายครั้งนี้ถูกมองโดยบางคนว่าเป็นการทรยศต่อภาษาที่ทำให้ Bun เป็นไปได้

คำวิจารณ์ “Vibe Porting”

บน Lobste.rs开发者บัญญัติคำ “vibe porting” — AI-driven translation ที่ทำงานเชิงสถิติแต่ขาดความเข้าใจลึกซึ้ง นักวิจารณ์ argue ว่า Rust code ที่สร้างโดย AI ตามรูปแบบผิวเผินและพลาด idiomatic Rust

ท่าทีระวังของ Jarred

ใน HN comments ก่อนหน้านี้ Sumner เน้น: “เรายังไม่ commit ที่จะ rewrite มีโอกาสสูงมากที่โค้ดทั้งหมดนี้จะถูกโยนทิ้ง” แต่การ merge ไปยัง main บ่งบอกว่าการทดลองเกินความคาดหมาย — หรือว่ากลยุทธ์เปลี่ยนไป

นี่หมายถึงอะไร

สำหรับผู้ใช้ Bun

ระยะสั้น: ไม่มีอะไรเปลี่ยน Rust port รักษา API compatibility ระยะยาว: กลุ่มผู้มีส่วนร่วมใหญ่ขึ้น, integration กับ Rust ecosystem ดีขึ้น (crates อย่าง tokio, hyper, reqwest), และอาจ iteration เร็วขึ้น

สำหรับ Zig

Zig เสียโปรเจกต์ flag ship ของมัน แต่ภาษายังคงพัฒนา — และ Bun port อาจดึงดูดผู้ที่อยากทำงานบน Rust-based runtime

สำหรับ AI Code Migration

นี่คือ watershed moment ถ้า runtime ระดับ systems ขนาด 960K บรรทัดสามารถถูกพอร์ตใน 6 วันโดย AI เศรษฐศาสตร์ของ software rewrites เปลี่ยนไปโดยพื้นฐาน การบำรุงรักษา, legacy migration, และ language porting — ซึ่งเดิมแพงและเสี่ยง — กลายเป็นเรื่องที่ทำได้

ปฏิกิริยาจากชุมชน

แหล่ง ความรู้สึก
Hacker News แบ่งครึ่ง — ประทับใจในความสามารถ AI, สงสัยใน code quality
Lobste.rs วิพากษ์ — การถกเถียง “vibe porting”, กังวลเรื่อง idiomatic Rust
Stork.ai analysis บทวิเคราะห์เชิงกลยุทธ์ของ Zig vs Rust dynamics
DevClass รายงานเป็นกลาง, ชี้ว่าพอร์ตยัง “half-baked”
CosmicJS รายงาน 99.8% test compatibility

มองไปข้างหน้า

Bun Rust rewrite ยังไม่เสร็จ — 99.8% ไม่ใช่ 100% และผู้ review ชี้จุดที่ AI translation ยังไม่ถึง แต่ว่าการทดลองนี้ถึง main ได้เลย ส่งสัญญาณบทใหม่ไม่ใช่แค่สำหรับ Bun แต่สำหรับวิธีที่เราคิดเกี่ยวกับ software rewrites

ดังที่ commenter คนหนึ่งบน HN กล่าว: “คำถามเก่าคือ ‘เราควร rewrite เป็น Rust ไหม’ คำถามใหม่คือ ‘เราควรให้ AI rewrite เป็น Rust ให้เราไหม’”

อ้างอิง

Share this page