- ตั้งแต่ Claude Code v2.1.181 ได้ฝัง Bun ที่พอร์ตมาเป็น Rust ทำให้ความเร็วเริ่มต้นบน Linux เร็วขึ้น 10% แต่ผู้ใช้ส่วนใหญ่แทบไม่สังเกตเห็นความเปลี่ยนแปลง
- เมื่อตรวจสอบสตริงในไฟล์รัน จะพบว่าเป็น Bun v1.4.0 ที่ยังไม่มีแท็กทางการ และยังเห็นพาธไฟล์ซอร์สของ Rust ได้ด้วย
- พบ ชื่อไฟล์
.rs จำนวน 563 ไฟล์ ใน ~/.local/bin/claude รวมถึง src/runtime/bake/dev_server/mod.rs เป็นต้น
- สามารถตรวจสอบได้อีกทางว่าเวอร์ชันที่ฝังอยู่คือ 1.4.0 โดยใช้
BUN_OPTIONS พรีโหลดไฟล์ TypeScript แล้วพิมพ์ Bun.version
- เวอร์ชัน Rust ถูกเผยแพร่ในรูปแบบ Bun canary และตอนนี้รันใช้งานจริงผ่าน Claude Code บนอุปกรณ์ หลายล้านเครื่อง แล้ว
Bun บน Rust ที่ฝังอยู่ใน Claude Code
- ตาม Rewriting Bun in Rust ระบุว่า ตั้งแต่ Claude Code v2.1.181 ที่ออกเมื่อวันที่ 17 มิถุนายน ได้เปลี่ยนมาใช้ Rust port
- ความเร็วเริ่มต้นบน Linux ดีขึ้น 10%
- นอกเหนือจากนั้น ผู้ใช้แทบไม่สังเกตเห็นความแตกต่าง และ Jarred Sumner ประเมินเรื่องนี้ว่า “Boring is good”
- ตอนนี้รันใช้งานจริงผ่าน Claude Code บนอุปกรณ์หลายล้านเครื่องแล้ว
- สามารถหา เวอร์ชัน Bun ที่ฝังอยู่ ได้จากสตริงในไฟล์รันของ Claude
strings ~/.local/bin/claude | grep -m1 'Bun v1'
- บน macOS arm64 จะได้ผลลัพธ์
Bun v1.4.0 (macOS arm64)
- ขณะนั้นรีลีสทางการล่าสุดบน GitHub คือ Bun v1.3.14 เมื่อวันที่ 12 พฤษภาคม ดังนั้น Claude Code จึงเท่ากับฝัง พรีวิว v1.4.0 ที่ยังไม่ออกตัวจริงไว้
- เวอร์ชัน Rust ถูกเผยแพร่เป็น Bun canary และติดตั้งได้ด้วย
bun upgrade --canary
การตรวจสอบซอร์ส Rust และเวอร์ชัน
strings ~/.local/bin/claude | grep -Eo 'src/[[:alnum:]_./-]+\.rs'
src/runtime/bake/dev_server/mod.rs
src/runtime/bake/production.rs
src/bundler/bundle_v2.rs
- วิธีที่ Ajan Raj แชร์ไว้คือใช้
BUN_OPTIONS พรีโหลดไฟล์ TypeScript เพื่อพิมพ์ค่า Bun.version ที่ฝังอยู่ใน Claude Code ออกมาโดยตรง
cat > /tmp/bun-version.ts <<'EOF'
console.log("embedded bun:", Bun.version);
process.exit(0);
EOF
BUN_OPTIONS="--preload=/tmp/bun-version.ts" claude --version
- คำสั่งนี้ก็แสดง
1.4.0 เช่นกัน
- ใน คอมมิตวันที่ 17 พฤษภาคม ได้มีการเปลี่ยนเวอร์ชัน
package.json เป็น 1.4.0 และคงไว้เช่นนั้นตั้งแต่นั้นมา แต่ยังไม่ถูกรวมอยู่ในแท็กรีลีสนอกจาก canary
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
เข้าใจยากว่าทำไม TUI ต้องผ่าน JavaScript แล้วไปรันบน React สำหรับเทอร์มินัล ข้อเท็จจริงที่ว่า Anthropic ถึงกับซื้อ runtime เพื่อปรับปรุง TUI ยิ่งทำให้สงสัยใน คุณภาพด้านวิศวกรรม มากขึ้น ถ้าการเขียนใหม่ทำได้ง่ายขนาดนั้น การย้าย Claude Code ไปเป็นภาษา native น่าจะถูกกว่ามาก
การเขียนใหม่ไม่ใช่เรื่องง่ายแม้แต่สำหรับ Bun และเครื่องมือพัฒนาที่ไม่ใช่ UI ซึ่งมีสัญญา API และการทดสอบชัดเจน ก็ยังเชื่อถือได้หลังเขียนใหม่ง่ายกว่าเครื่องมือ UI ที่ฟีเจอร์คลุมเครือและมีการทดสอบไม่เพียงพอ
โค้ดฝั่งที่ผู้ใช้สัมผัสและเลเยอร์ UX ที่เปลี่ยนเร็ว มีแนวโน้มจะไปอยู่ในระบบ dynamic ที่รองรับ การพัฒนาแบบวนซ้ำได้รวดเร็ว ส่วนเลเยอร์โครงสร้างพื้นฐานมีแนวโน้มย้ายไปสภาพแวดล้อมระบบที่ปลอดภัยอย่าง Rust Java/C# อยู่กึ่งกลาง แต่ต่อไปสำหรับ UX ใช้ TypeScript/Python ก็พอแล้ว ส่วนงานระบบ Rust เหมาะกว่า ทำให้พื้นที่ของ Java/C# น่าจะลดลง
https://avi.press/posts/2026-07-10-after-7-years-in-producti...
https://github.com/openai/codex/discussions/1174
ถ้าดูต้นฉบับของ Jarred เหตุผลในการย้ายดูชัดเจนว่า ส่วนที่ต้องทำเองด้วยมือใน Zig ถูกทำให้เป็นอัตโนมัติใน Rust ทั้งมนุษย์และ agent ต่างก็ไม่ deterministic ดังนั้นถ้าต้องติดตาม lifetime ของหน่วยความจำและการ free แบบ explicit ใน Zig ด้วยมือ บั๊กตกหล่นจะสะสมยาว แต่ Rust กำจัดบั๊กประเภทนี้ได้ จึงเป็นจุดประนีประนอมที่ดีในแง่การจัดการงานวิศวกรรม
โดยเฉพาะ ข้อผิดพลาดจาก compiler คือราวกันตกแบบ deterministic ที่จำเป็นสำหรับ coding agent และถ้าให้ Claude มีวิธีทดสอบความถูกต้องพร้อมเป้าหมายว่า “ทำให้ compile ได้” ก็จะทำงานได้ดี แนวทางทั่วไปที่เปลี่ยนผลลัพธ์เชิงความน่าจะเป็นให้เป็นการรับประกันที่แน่นอนด้วยการทดสอบแบบ deterministic ผมสรุปไว้ที่ https://michael.roth.rocks/blog/verification-surface/
ถ้าทำแบบนั้น Zig ก็ทนทานได้พอ ๆ กับ Rust แต่ถ้าต้องการรูปแบบ allocation แบบภาษา managed ที่ LLM ชอบ Zig ก็ไม่เหมาะ
unsafeอยู่มาก ยังน่าสงสัยว่าจะพูดได้ไหมว่ากำจัดบั๊กประเภทนั้นโดยอัตโนมัติ: https://news.ycombinator.com/item?id=48967630unsafeทั้งหมด ดังนั้นมีความเป็นไปได้สูงว่าจะไม่ได้กำจัดปัญหาดังกล่าวโดยอัตโนมัติไม่ว่าการประเมินของ Jarred หรือ Simon Willison จะเป็นอย่างไร ผมมองเรื่องนี้ค่อนข้างลบ ปัญหาที่ใหญ่กว่าการที่ Anthropic ซื้อ Bun หรือการเขียนใหม่ด้วย AI คือวิธีดำเนินการที่ยังไม่เป็นผู้ใหญ่ เริ่มจากท่าทีว่า “ก็แค่ branch ของฉันเอง และคนอื่น overreact” แล้ว merge PR กว่า 1 ล้านบรรทัด ภายในไม่ถึงเดือน
การสื่อสารทำได้แย่มากจนบั่นทอนความเชื่อมั่นและเพิ่มความแตกแยก และก็สงสัยว่าการทำตามแนวทางที่ทีม TypeScript ใช้ใน 7.0 มันยากขนาดนั้นเลยหรือ
Bun v1.4.0 ที่รวมอยู่ใน Claude ดูเหมือนจะเป็นเวอร์ชัน preview ที่ยังไม่เผยแพร่ ถ้าอย่างนั้นก็เหมือนโปรเจกต์ FOSS อย่าง Bun ถูกเปลี่ยนเป็นอีกสิ่งหนึ่งอย่างเงียบ ๆ ดีแล้วที่ตอนนั้นแค่ทิ้ง TODO ไว้ว่าจะตรวจสอบและยังไม่ได้นำมาใช้
หาเอกสาร governance ของ Bun ไม่เจอ เลยสงสัยว่าตอนนี้ในทางปฏิบัติ Anthropic เป็นผู้ตัดสินใจทั้งงานที่จะทำและว่าจะ merge หรือไม่ใช่หรือเปล่า
ไม่เข้าใจว่าทำไมต้องจัดการเรื่อง Bun ให้ซับซ้อนขนาดนี้ ถ้าเอเจนต์สามารถย้าย Zig ไปเป็น Rust ได้ Claude Code ก็น่าจะ เขียนใหม่เป็น Rust โดยตรง จาก JavaScript เพื่อกำจัดการพึ่งพารันไทม์และเพิ่มประสิทธิภาพได้
Bun น่าจะมีผู้ใช้ทั้งภายนอกและภายใน Anthropic นอกเหนือจาก Claude Code และช่วยให้มี JavaScript runtime กับระบบนิเวศเครื่องมือที่โมเดลเขียนโค้ดอาจชอบใช้ได้ ในอนาคต Anthropic อาจให้บริการคลาวด์ที่เชี่ยวชาญด้านการรันและจัดการแอปแบบนี้ได้ด้วย และแค่ได้ชุมชนนักพัฒนามา ก็สร้างอิทธิพลได้มากกว่าการย้าย Claude Code ตัวเดียวไปเป็น Rust อย่างมาก
ถ้าตัดการคาดเดาและอารมณ์ออกไป สิ่งที่อยากรู้คือคุณภาพการรันจริง ต้องตรวจสอบไม่ใช่แค่ความเร็วตอนเริ่มต้น แต่รวมถึงการใช้ RAM·CPU และปัญหา loop ไม่รู้จบหรือ deadlock ด้วย หากเท่าเดิมหรือดีกว่าเดิมก็น่าประทับใจมาก
ในฐานะนักพัฒนา ผมไม่ชอบความเป็นไปได้ที่ AI จะมาแย่งงาน แต่ถ้าใครๆ ก็สามารถสร้างซอฟต์แวร์ที่ต้องการได้ด้วยความต้องการง่ายๆ โลกก็อาจดีขึ้นได้ ถ้าไม่ชอบการเก็บข้อมูลของ Microsoft ก็ให้ AI สร้างระบบปฏิบัติการให้ ถ้าไม่ชอบการดักฟังของ Google ก็ให้ AI สร้างโทรศัพท์มือถือให้ การ พึ่งพาตนเองทางเทคโนโลยี แบบนี้อาจเป็นไปได้ และเมื่อเทียบกับสิ่งนั้น ความมั่นคงในงานของปัจเจกบุคคลก็ดูเป็นเรื่องเล็ก
ดังนั้นการทำให้เทคโนโลยียังคงเป็นโอเพนซอร์สจึงยิ่งสำคัญ ไม่เช่นนั้นเราจะทำซ้ำโครงสร้างผูกขาดเดิม พร้อมกับสูญเสียงานไปด้วย
ช่วงหลังผมใช้ Claude Code ในแท็บ Kitty แล้วเจอ segmentation fault จากนั้นทั้งแท็บก็ไม่ตอบสนองต่ออินพุตอีก มีลิงก์รายงานปรากฏขึ้น แต่คลิกไม่ได้และถูกเข้ารหัสไว้ จึงตรวจสอบไม่ได้ว่าจะส่งข้อมูลอะไรไปบ้าง
Segmentation faultก็มีโอกาสสูงว่าไม่ใช่ segmentation fault แต่เป็นอาการค้าง หากเป็นข้อผิดพลาดจริง หลังกลับมาที่เชลล์แล้ว แม้จะมองไม่เห็นบนหน้าจอ ก็พิมพ์resetเพื่อกู้แท็บกลับมาได้unsafeRust ทีละบรรทัด โค้ดที่เป็นสาเหตุก็จะยังคงอยู่เหมือนเดิม ปัญหาคงไม่หายจนกว่าจะ refactor เป็น Rust ที่เป็น idiomatic และ ปลอดภัยด้านหน่วยความจำคนเหล่านี้ดูเหมือนวิศวกรที่อธิบายปัญหาเก่งและมีงบ token ไม่จำกัด ประสบความสำเร็จอย่างมากแต่ฝีมือวิศวกรรมแย่ ถ้าต้องจ่ายค่า token เอง ก็น่าจะมีแรงจูงใจทางการเงินให้เพิ่มประสิทธิภาพซอฟต์แวร์
ความจริงที่ซ่อนอยู่ของศูนย์ข้อมูล AI คือแม้ประสิทธิภาพคลัสเตอร์ GPU จะมีแค่ 40~60% ก็ใช้เงินซื้ออุปกรณ์เพิ่มมาชดเชยได้ เหตุผลที่กลัวคู่แข่งจีนอาจเป็นเพราะพวกเขาไม่มีเงินเหลือพอให้สิ้นเปลืองแบบนั้น
งานครั้งนี้คือ transpile และคุณภาพก็ไม่ดี โค้ดที่สร้างออกมาห่างไกลจาก Rust แบบ idiomatic จนเรียกได้ว่าอัปลักษณ์
โดยปกติการเขียนใหม่จะสะท้อนบทเรียนที่ได้จาก codebase เดิม แต่ถ้าให้เอเจนต์พอร์ตทีละไฟล์ก็ไม่ได้ประโยชน์นั้น ไม่ว่าจะทางไหนก็จะเป็นการแปลที่ไม่ idiomatic แต่ถ้าใช้ LLM ก็เพิ่มทั้งความไม่กำหนดแน่นอนและต้นทุนมหาศาลเข้ามาด้วย
ช่วงหลัง Claude Code ไม่เสถียรกว่าเดิมมาก และมักเกิด ข้อผิดพลาดการเรนเดอร์ TUI จนประวัติการสนทนาเสียหาย
ถ้าส่งไปทำงานเบื้องหลัง แล้วรัน
resetจากนั้นดึงกลับมา foreground ก็จะหาย พอขอให้ Claude ช่วยวินิจฉัย มันบอกว่าตัวเองไม่มีบั๊กแบบนั้นและเป็นความผิดของโปรแกรมอื่น แต่ตอนนั้นรันอยู่แค่ tmux กับ Claude หากเพิ่งใช้เวอร์ชัน Rust ก็สอดคล้องคร่าวๆ กับช่วงเวลาที่คุณภาพแย่ลง