- Turborepo เป็นระบบบิลด์ประสิทธิภาพสูงสำหรับ JavaScript / TypeScript
- พยายามปรับปรุงประสิทธิภาพด้วย incremental build, การรันแบบขนาน, remote cache (ใช้โครงสร้างพื้นฐานของ Vercel) เป็นต้น
- ช่วงแรกถูกสร้างขึ้นโดยมี esbuild ซึ่งแสดงประสิทธิภาพที่ดีมากเป็นต้นแบบ
- ด้วยแพ็กเกจ Turbo ทำให้ codebase ถูกรวมเข้ากับ Turbopack ที่เขียนด้วย Rust
- รู้สึกว่าจุดแข็งที่ภาษา Go แสดงให้เห็นในการพัฒนาเซิร์ฟเวอร์นั้นต่างจากสิ่งที่ต้องการเมื่อสร้างเครื่องมือบิลด์
- Go: เน้นที่โมเดล goroutine, Context API และ standard library ของโครงสร้างพื้นฐานฝั่งเซิร์ฟเวอร์
- Rust: การจัดการ process, filesystem, แนวคิด OS ระดับล่าง, การแจกจ่ายไปยังคอมพิวเตอร์ของผู้ใช้
- มี ecosystem ที่แข็งแกร่ง และมี crate (แพ็กเกจ) ที่หลากหลายและดีอยู่แล้วจำนวนมาก
- การนำไลบรารี C/C++ มาใช้ทำได้ง่ายและเร็วกว่าเมื่อเทียบกับ Go
- หากใช้ codebase เดียวกับ Turbopack ก็มีข้อดีด้านการบำรุงรักษาและการแชร์โค้ด
- Rust ทำให้นักพัฒนามีความสุขมากขึ้น และส่งผลเชิงบวกหลายอย่างตามมา
- ปัจจุบันใช้งานในโครงสร้าง “Rust-Go-Rust” แต่จะเดินหน้าทำ migration ต่อไป
4 ความคิดเห็น
ชอบ Rust
แต่บางครั้งก็รู้สึกเหมือนมันยากเกินความจำเป็นเหมือนกัน
ถ้ามองจากเส้นทางอาชีพหรือความเชื่อมโยงของสแตก
ดูเหมือนว่า Js มักจะลงเอยที่ rust กันเยอะนะครับ
ส่วน Go ก็ดูเหมือนจะย้ายไปทางงานอินฟรากันเยอะ...
ผมเองก็แปลกเหมือนกันที่ไม่ค่อยดึงดูดกับ Go แต่รู้สึกชอบ Rust มากกว่า.. (ตอนนี้แพลตฟอร์มหลักคือ Node.js)
อาจเป็นเพราะทีม Mozilla ที่ทำเบราว์เซอร์เป็นคนปล่อยออกมาด้วยหรือเปล่า..
เห็นได้ชัดเลยว่าทีม SRE ชอบ Go กันนะครับ